当然不是D版的问题,在VB与VC的调用过程中,不能使用指针的,你可以通过别的方法来解决.

解决方案 »

  1.   

    参考<HardCore For VisualBasic 5.0>by Bruce Mickenny的第二章。MSDN里有E文版。
      

  2.   

    Try the functions: VarPtr(expression) Or StrPtr(expression).
      

  3.   

    你的C程序就有问题
    str2=str1; 是错误的。
    如果你想用VC写DLL给VB用,学好C/C++先。
      

  4.   

    你的VB的定义有问题。应该是
    Declare Function test Lib "datadll.dll" (byval str1 As String, Byval str2 As String) As long 
    建议你对照一下WINAPI 的原型和VB中的定义,也许会有所启发。
      

  5.   

    建议使用LoadLibrary和GetProcAddress来获得函数的地址。
      

  6.   

    如果你要传递字符串的指针给DLL中函数,可以这样做:
    dim strPtr as string
    strPtr=Space(255)
    call FuncInDll(...,byVal strPtr,...)如果你要传递结构(type)的指针,可以使用VarPtr()方法。
    比如说,有些情况下你需要用SendMessage()把一个结构地址传递给某一个驱动程序,来获得一些关于驱动程序的信息,这时候你就可以用上这个方法了。在VB中操作指针比较麻烦,但还是有可能的。