请教:VB.NET调用C写的DLL问题
C,原来是个LIB,加了_stdcall,def文件,EXPORTS四个sub
原型是这样的:
typedef unsigned long ulint;
typedef unsigned char uchr;
short _stdcall m_unpack(void*,ulint,void*,ulint*);
实现中有这么一句:
uchr *ibuf, *obuf;
ulint filesize;
short _stdcall m_unpack(void *src, ulint srclen, void *dst, ulint *dstlen)
{...
ibuf = src;
obuf = dst;
filesize = srclen;
...}
为了方便点,我直接定义成
short _stdcall m_unpack(char*,ulint,char*,ulint*);
short _stdcall m_unpack(char*src, ulint srclen, char*dst, ulint *dstlen)
VB.NET中
Declare Function m_unpack ...(ByRef srcStr As Byte(), ByVal srcLength As Long, ByRef dstStr As Byte(), ByRef dstLength As Long) As Short
传数据时候
ret2 = m_unpack(debuf, deLength, dstStr, filesize)
执行后debuf总是只取到数组中的第一个,各位还有什么办法没有,我弄拉很久拉