VC做动态连接库DLL文件,VB使用的问题?VC中,我写了一个函数,
void _static DATAIN (unsigned  char  *dataIn,int dataLen,unsigned  char  *dataOut)
{
//把dataIn的值进行运算,把结果
//赋值给unsigned  char  *dataOut
//这里赋值如何做?
}
VB中,如何取得到VC中dataOut的值?如何声明?如何取值,变量要怎么样的?有没有代码学习一下?声明我已经做好了,然后就是VC中,怎么给*dataOut赋值,VB中如何取得到?怎么声明变量?

解决方案 »

  1.   

    直接生成一个DLL工程把这个函数写进去,然后导出函数,这个DLL就可以用在VB6上了.
      

  2.   

    声明我已经做好了,然后就是VC中,怎么给*dataOut赋值,VB中如何取得到?怎么声明变量? 
      

  3.   

    如果想让别的语言引用,接口不要用  XXXX *。
    因为很多语言没有指针(VB/C#都没有)
      

  4.   

    要返回字符串,可以改用BSTR( 标准Win32数据类型 )才行
      

  5.   

    VC赋值:memcpyVB取:VB中需要初始化数组,传指针(VB中头字节就表示指针,记得是)
      

  6.   

    在VB里虽然没有明显的指针操作,但是也可以操作指针的!在你的这个函数中,dataOut 得到的是一个字符串的首地址,但是楼主没有注明这个字符串的长度所以最好把 DATAIN 改成有返回值的,返回的就是字符串长度!然后在VB中,使用 CopyMemory 函数把内存复制到字符串中(字符变量必须已经分配好足够的空间,否则使用 CopyMemory 函数的时候如果出错的话会整个VB退出的)。
    另一个办法:参考 GetXXXXText 等函数,把一个分配了足够长度的字符串传到函数里当然了,这样的话你在DLL中的函数必须得改一下了!
      

  7.   

    没有你想得那么麻烦,在VB中可以直接使用VC写的DLL不过前提是要用标准库写的Dll。就想1L说的,直接使用DLL的方法就可以。