精华内容
下载资源
问答
  • VC VB OCX传递参数郁闷记

    千次阅读 2015-10-22 11:14:17
    这两天,用VC做了一个OCX,其中有一个接口是需要传递出来一个内存文件的,很大,大概有2M左右,因为VB简单,就用VB来调试这个OCX,在传递参数的时候遇到了麻烦。 1.OCX的接口里头参数类型很奇怪,看了半天觉得...

    这两天,用VC做了一个OCX,其中有一个接口是需要传递出来一个内存文件的,很大,大概有2M左右,因为VB简单,就用VB来调试这个OCX,在传递参数的时候遇到了麻烦。

    1.OCX的接口里头参数类型很奇怪,看了半天觉得靠谱的估计也就是BSTR* VARIANT、VARIANT* 这3个,于是先决定使用BSTR*这个数据类型。

    在VB里头我定义了一个String类型的参数,VB的自动提示也是String,BSTR*在VB这里是提示String的,于是就这样传递进去了,但是在VC的OCX中使用memcpy老出错,后来发现原来是VC里头的这个指针有问题,把VC的参数前头加了一个*号,但是还是不行,后来才知道,VB中的字符串在VC里头就内存不足了,于是在VB里头还先得让这个字符串占领一定的位置,于是这样写

    dim a as string

    a="test"+space(6000000)    '6M的左右大小

    如果用这个还不行dim a as string * 1000

    因为这个大小有限制,根本不让你分配6M大小的空间

    好了现在空间也分了,指针地址也对了,这回总该行了吧,要不说搞IT就是折腾呢,还是不行

    为什么?

    首先啊,这个指针传递进去的数据值就不对,我发现这个值应该是unicode了,因为每个字符后头都跟了一个00,比如test吧,就变成了t.e.s.t.这个.就是00,因为我是需要把文件传递出来,说以我可以不管这个传进来的是什么东西,我就直接写吧,好了,等写好了,传递到VB里头一看,晕了,也转化成unicode了,我用了strconv这个函数,可惜转换不过来,一个小小的ocx就这么多问题,真是郁闷至极啊!!!!

    经过本人不屑的努力和研究,我使用VC做了一个测试程序,居然完全没有上述的问题,为什么VB你要做unicode转换呢,太让我伤心了

    展开全文
  • 作用: 将文件的每行放入lines()数组中; 行中是用空格分隔的,用split去除空格,放入arr()数组中 arr(1)为Signal名称,将其放入专门记录signal的数组SigArr和MsgArr中,并记录个数 ...调试时总是出错,比如: ...
  • Public Sub PrintArray(ArrayName() As Variant, Optional Object As Object, Optional Tabs As Long) Dim i As Integer, j As ...为什么Numeric (Integer)类型的数组不能传递给Variant类型的数组?请各位帮忙解决
  • [img=https://img-bbs.csdn.net/upload/201907/02/1562059217_926667.png][/img] 请高手看看 为什么我在 Start_Click() 里调用 Call Hanoi(n, T1, T2, T3)会报T1类型有问题
  • vb.net多线程传递参数,通过class类。可以实现超线程调用sub时,参数和变量的传递 vb.net多线程传递参数,通过class类。可以实现超线程调用sub时,参数和变量的传递
  • VB自定义类型参数传递

    千次阅读 2012-07-08 21:12:06
    VB自定义类型参数传递 2009-10-16 13:08 佚名 weaseek 我要评论(0) 字号:T | T 这里介绍VB自定义类型参数传递,用户自定义类型在VB中是一种重要的数据类型,它为编程者提供了很大的灵活性...

    谈VB自定义类型参数的传递

    2009-10-16 13:08 佚名 weaseek 我要评论(0) 字号:T | T
    一键收藏,随时查看,分享好友!

    这里介绍VB自定义类型参数的传递,用户自定义类型在VB中是一种重要的数据类型,它为编程者提供了很大的灵活性,使开发人员可以根据需要构造自己的数据结构。

    AD:

    本文向大家介绍VB自定义类型参数的传递,可能好多人还不了解VB自定义类型参数,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

    VB自定义类型参数的传递

    用户自定义类型在VB中是一种重要的数据类型,它为编程者提供了很大的灵活性,使开发人员可以根据需要构造自己的数据结构。它相当于C/C++中的结构类型(structure)。在VB中,允许程序员以传址的方式将自定义数据类型参数传入动态库,DLL过程也可以将修改后的参数返回VB程序。但是,在VB中仍然不支持以传值的方式传递VB自定义类型参数。

    传递VB自定义类型参数时,必须确保VB中的数据类型的成员与动态库中的结构成员是一一对应的,所占空间也必须严格一致。这里所说的一一对应,不仅是指VB 中的所有结构成员在动态库的结构中都必须有对应的元素,而且它们在数据结构中定义的顺序也必须严格一致,这是VB中使用的"数据结构成员对齐方式"决定的。在VB 中,数据结构使用双字对齐方式(4-byte alignment),因此,在用户自己生成用于VB调用的动态连接库时,也必须把编译选项"structure member alignment" 设为4字节(如前文所述)。

    所谓结构成员对齐方式是指一个数据结构内部,其成员的排列方式。譬如,在VB中,其对齐方式是4字节,这就好象在一个数据结构内部分成了很多个4字节大小的小单元,如果相邻两个或多个数据成员的大小可以放在一个单元中,那么就放在一起;否则这些小单元中可能 会出现未用的空字节。我们来看下面一个数据类型:

    1. Type TestType  
    2. m1 as Integer  
    3. m2 as Byte  
    4. m3 as Long  
    5. End Type 

    它的三个成员的大小加起来是2+1+4=7。但是,由于m1和m2的字节总长度是3,小于 4,它 们就存放于一个单元中;但该单元剩下的一个字节不足以放下一个Long型的成员m3,于是m3 就被放在下一个单元中,它们之间就有了一个未用的空字节;因此,整个结构所占实际长度是8 字节。同理,如果将m3和m2的位置交换一下,它所占的尺寸就变成了9字节。可见,成员在结构 中的声明顺序也是非常重要的。

    另外,在VB 中还可以把一个函数的指针传递到动态库中,方法也并不复杂。但笔者强烈建议最好不要这么做,因为这样一来VB 应用程序就几乎完全丧失了它所应有的安全性。如果 确实需要传递函数指针的话,那么还是编一个C/C++ 的程序来完成这项工作吧。以上介绍VB自定义类型参数的传递。

    展开全文
  • VB传递数组参数

    千次阅读 2008-01-10 01:08:00
    Public Sub 第一个工程() MsgBox "这是我的第一个过程" Dim arrND(0 To 1, 0 To 1) As Variant arrND(0, 0) = "Sample.vsd" arrND(0, 1) = "111" arrND(1, 0) = "222" arrND(1, 1) = "333" CreateDrawing (ar

    Public Sub 第一个工程()
        MsgBox "这是我的第一个过程"
        Dim arrND(0 To 1, 0 To 1) As Variant
        arrND(0, 0) = "Sample.vsd"
        arrND(0, 1) = "111"
        arrND(1, 0) = "222"
        arrND(1, 1) = "333"

        CreateDrawing (arrND())
    End Sub

    Public Sub CreateDrawing(arrNetData As Variant)
        MsgBox arrNetData(0, 1)
    展开全文
  • vb传递二维数组作为参数

    千次阅读 2018-01-03 09:55:00
    中一个二维数组给一个函数作为参数,您可以参考以下代码: Private Sub Command1_Click () Dim abc ( 1 , 2 ) As Integer abc ( 0 , 0 ) = 1 abc ( 0 , 1 ) = 2 abc ( 0 , 2 ) = 3 abc ( 1 , 0...

    关于在VB中一个二维数组给一个函数作为参数,您可以参考以下代码:

    Private Sub Command1_Click()

    Dim abc(1, 2) As Integer

    abc(0, 0) = 1

    abc(0, 1) = 2

    abc(0, 2) = 3

    abc(1, 0) = 4

    abc(1, 1) = 5

    abc(1, 2) = 6

    Test abc

    End Sub

    Sub Test(iarray() As Integer)

    Dim i As Integer, j As Integer

    For i = LBound(iarray, 1) To UBound(iarray, 1)

    For j = LBound(iarray, 2) To UBound(iarray, 2)

    MsgBox (iarray(i, j))

    Next

    Next

    End Sub

    - 微软亚洲技术中心 VB技术支持

    本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)

    转载于:https://my.oschina.net/fenglinwansu/blog/1600978

    展开全文
  • vb函数参数传递

    千次阅读 2007-09-24 17:29:00
    实际上,形参的完整的语法格式应该为:[[Optional][ByVal|ByRef]|ParamArray] > [()][As 类型>][=缺省值>]ByVal表示该参数按值传递,简称值参。此时形参与实参各占一个独立的存储空间,形参的存储空间是调用时才分配...
  • asp.net(vb) 传递参数

    2005-11-07 11:03:00
    1. 打开新的窗口并传送参数: 传送参数:response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>") 接收参数:string a = Request.QueryString("id...
  • Tips:欢迎公众号设置为星标,VB技术干货文章可以第一时间看到。如您在学习VB过程中有独特的见解或者想法...函数和过程的参数传递方式在调用过程时,过程中使用的是实际参数,它要与定义过程时的形式参数一一对应,...
  • VB几种函数参数传递方法,Variant,数组,Optional,ParamArray  一) 过程的参数被缺省为具有 Variant 数据类型。  1)ByRef按 地址传递参数在 VB 中是缺省的  按地址传递参数后,过程返回的也是地址,函数中...
  • VB EXE程序传递参数

    千次阅读 2008-02-16 15:11:00
    在CMD里输入 abc.exe /s 那么VB6中的全局变量 Command$里的值就是:/s试试以下代码你就明白了: Private Sub Form_Load() MsgBox Command$ End Sub 
  • 如何将报表中的参数传递VB

    千次阅读 2013-09-27 21:58:58
    在做机房收费系统周结账单的时候,需要将DTPicker中输入的日期变化的输入到GRDisplayviewer中,这时候需要在GRDisplayviewer中加入参数,并可以在VB中使用,下面展示一下过程: 在报表中右侧找到参数集合插入参数: ...
  • 委托调用多线程传递参数vb.net vb.net多线程通过Deletgrate委托调用传递参数 实现多线程调用中变量和参数的传入和传出。 原创代码,亲测有效!
  • vb.net 如何传递参数

    2013-04-03 22:33:28
    '例: public class form1 Private Sub Form_Load...'这个传递过来的变量是class类型的,不知道如何接受,像我上面的程序是有问题的。 '提示:错误“PictureBoxClick”不是“System.Windows.Forms.Form”的成员。
  • Web.Config中: <globalization requestEncoding= "GB2312" responseEncoding="UTF-8" uiCulture="zh-...解决了:传递参数乱码;接收参数乱码;ajaxpro动作传递的乱码。但出现的问题是保存到数据库的中文成...
  • 方法二:更好,但是还没完全看懂,网上搜了一下,都是有关VB.NET的编程 Public Class Form1 'Listbox之间项目拖动示例,左键移动,右键复制 Private Sub Form1_Load(ByVal sender As System.Object, ...
  • 本例子中实现在c#中调用由vb生成的dll文件(com调用)例子由两个主要步骤组成:一 为在vb中生成有参数和返回值的dll ;二 是在c#中引入步骤一中生成的dll,然后生成实例调用步骤一:首先在vb中新建一个ActiveX DLL ...
  • 文档中的开发说明对方法的描述: 原型 long Base64Decode(short * in, short * out, short len) ...但是这里的in和out是指针吧,VB这里应该怎么处理,in是传入参数,out是传出参数吧,那我怎么给传in和out呢 各位高人,求教
  • Application.Onkey"{Enter}","HanShu",使用这个语句实现当在特定单元格按下回车键时,可以调用模块HanShu,但我现在想要通过这个语句传递参数,比如我想写...但程序报错,请教各位大神这个应该靠什么功能实现参数传递
  • 关于VB的指针以及VB和C/C++间的参数传递

    千次阅读 多人点赞 2012-10-14 14:57:06
    首先,我们使用C/C++创建一个WIN32 DLL,这样VB才可以使用C/C++的代码。 此前我对DLL导出函数已有专文讲述,这里就不再赘述,当然为了各位能够去验证,我还是把步骤截图上来: 打开VC6,新建一个Win32 DLL工程...
  • 今天上午测试 vb 与 c(dll) 之间交互,传递参数的时候,没遇到什么太大的问题。 下午在asp中调用vb(activex dll)时, 在asp代码中传参数vb(dll)中时,遇到问题了。 上午写 vb 与 c(dll)的时候,vb参数到c...
  • Public Class Class1 Sub MySub(ByVal Val1 As String) MsgBox(Val1) End Sub ...过程Sub3开始把参数经过多个过程一级一级往下传递过去。大的程序中不会出问题吗? 有经验的程序员请指点。
  • 外部的DLL文件,用到一个结构体,如下: typedef struct _EXT_...2. 将VB.NET中已定义好的结构体传递给函数USBAdapterExtendSendAndReceive,具体该如何实现?? 3. 该结构体中有个数组变量,该如何处理??
  • VB里怎么将二维数组作为byval形参数传递?二维数组可以是函数的可选参数么?
  • vb中函数的调用与参数传递

    千次阅读 2016-11-04 14:07:17
    vb中函数的调用与参数传递  2010-12-14 20:44:59| 分类: 技术应用 | 标签: |举报 |字号大中小 订阅         用微信 “扫一扫” 将文章分享到朋友圈。  
  • 初学VB.NET, 用ByVal做参数传递, 但是变量值还是被修改了, 不知道是为啥. 下面是代码, 两个Debug.Print, 结果是不一样的, 第一次是1, 第二次是0, 麻烦大家帮我看一下哪里不对, 谢谢. Module Module1 Public ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 438
精华内容 175
关键字:

vb参数传递