VB调用DLL文件

  • 格式:docx
  • 大小:14.76 KB
  • 文档页数:1

VB调用DLL文件

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来说,处理这样的结构比较麻烦,所以通常都不支持这种方式。