分享

VB调用DLL文件

 华灯初放l 2013-02-28
VB默认的传递方式就是传指针(ByRef,也就是把变量的地址传递给所调用的函数)。如果要传值(也就是把变量的值传递给所调用的函数)反要在参数声明前加ByVal。
1.如果你传递的参数是普通的数据类型,在参数前什么都不要加就行了。如C语言声明为:
    void __stdcall MyProc(short * nPara);
    则VB声明为:
    Declare Function MyProc Lib "MyDll.dll" (nPara As Integer)
    调用时同普通函数。
2.如果C语言中的指针是字符串指针,那么在VB声明时需要加上ByVal,这是个例外。如C语言声明为:
    void __stdcall MyProc(char * sPara);
    则VB声明为:
    Declare Function MyProc Lib "MyDll.dll" (ByVal sPara As String)
    调用时同普通函数。
3.如果C语言的指针是数组指针,则在VB中调用时应将数组的首元素传递给DLL。如C语言声明为:
    void __stdcall MyProc(int [] arrPara);
    则VB声明为:
    Declare Function MyProc Lib "MyDll.dll" (nPara As String)
    调用时为MyProc A(0)。
    注意:不能直接传递数组名,因为如果传递数组名,VB实际会传一个复杂的结构类型给DLL,这对编写C语言的DLL来说,处理这样的结构比较麻烦,所以通常都不支持这种方式。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多