VB调用C函数时数组传参的问题

该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/post/2013/06/23/pass-array-from-vb-to-c/

其实这是对《VC++写DLL给VB使用》一文的补充,网易不让编辑太古老的文章……

今天有人找我问关于VB调用DLL里函数的问题,该函数如下:

1int __stdcall func1(char *pStr, mystruct mst[]);

在VB里声明如下:

1Private Declare Function func1 Lib "dll1.dll" (ByRef aStr As String, ByRef pMST As mystruct) As Long

调用方式为:

1Dim MSTs(100) As mystruct
2MsgBox func1(str1, MSTs(0))

这里解释下,ByRef MSTs(0) 其实就是取数组首地址,因此就是数组的引用传递了。

comments powered by Disqus