用VC写了一个Dll, 导出一个函数, 功能是把输入缓冲区数据 经过转换后 通过输出缓冲区回 传给调用者.
VC下函数原型是 extern "C" __declspec(dllexport) int __stdcall MEID2PESN(BYTE* pSrc, int nSrcSize, BYTE * pdest, int nDestSize)
返回值为 (nSrcSize + nDestSize)
写def文件, 导出函数名为 MEID2PESN
我用VC写了一个测试端, 结果正常.
但用VB2005 写测试端就不正常.
这是我在VB2005中的代码.
--------------------
Private Declare Function MEID2PESN Lib "d.dll" (ByVal pSrc As Byte, ByVal nSrcSize As Long, ByRef pdest As Byte, ByVal nDestSize As Long) As Long
Private Sub Command1_Click()
Dim s(7) As Byte
Dim d(4) As Byte
Dim nRet as long
d(0) = d(1) = d(2) = d(3) = 0
s(0) = 0
...
s(6) = 6
'调用导出函数
nRet = MEID2PESN(s(0), 7, d(0), 4)
End Sub
-------------------
就是得不到 想要的结果. 请各位高手, 看怎么修改这个VB2005的代码, 或者连Dll的导出函数也修改了也行. 只要实现这个功能就可以.
VC下函数原型是 extern "C" __declspec(dllexport) int __stdcall MEID2PESN(BYTE* pSrc, int nSrcSize, BYTE * pdest, int nDestSize)
返回值为 (nSrcSize + nDestSize)
写def文件, 导出函数名为 MEID2PESN
我用VC写了一个测试端, 结果正常.
但用VB2005 写测试端就不正常.
这是我在VB2005中的代码.
--------------------
Private Declare Function MEID2PESN Lib "d.dll" (ByVal pSrc As Byte, ByVal nSrcSize As Long, ByRef pdest As Byte, ByVal nDestSize As Long) As Long
Private Sub Command1_Click()
Dim s(7) As Byte
Dim d(4) As Byte
Dim nRet as long
d(0) = d(1) = d(2) = d(3) = 0
s(0) = 0
...
s(6) = 6
'调用导出函数
nRet = MEID2PESN(s(0), 7, d(0), 4)
End Sub
-------------------
就是得不到 想要的结果. 请各位高手, 看怎么修改这个VB2005的代码, 或者连Dll的导出函数也修改了也行. 只要实现这个功能就可以.
需要CopyMemory把这块内容拷贝出来。