你的VB的定义有问题。应该是 Declare Function test Lib "datadll.dll" (byval str1 As String, Byval str2 As String) As long 建议你对照一下WINAPI 的原型和VB中的定义,也许会有所启发。
建议使用LoadLibrary和GetProcAddress来获得函数的地址。
如果你要传递字符串的指针给DLL中函数,可以这样做: dim strPtr as string strPtr=Space(255) call FuncInDll(...,byVal strPtr,...)如果你要传递结构(type)的指针,可以使用VarPtr()方法。 比如说,有些情况下你需要用SendMessage()把一个结构地址传递给某一个驱动程序,来获得一些关于驱动程序的信息,这时候你就可以用上这个方法了。在VB中操作指针比较麻烦,但还是有可能的。
str2=str1; 是错误的。
如果你想用VC写DLL给VB用,学好C/C++先。
Declare Function test Lib "datadll.dll" (byval str1 As String, Byval str2 As String) As long
建议你对照一下WINAPI 的原型和VB中的定义,也许会有所启发。
dim strPtr as string
strPtr=Space(255)
call FuncInDll(...,byVal strPtr,...)如果你要传递结构(type)的指针,可以使用VarPtr()方法。
比如说,有些情况下你需要用SendMessage()把一个结构地址传递给某一个驱动程序,来获得一些关于驱动程序的信息,这时候你就可以用上这个方法了。在VB中操作指针比较麻烦,但还是有可能的。