关于VB2005调用vc dll的问题.

xiaodongdehome 2009-09-02 10:05:17
用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的导出函数也修改了也行. 只要实现这个功能就可以.
...全文
93 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaodongdehome 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tiger_zhao 的回复:]
pSrc 和 pdest 用 ByRef
[/Quote]

-----------
说的对, 谢谢!
Tiger_Zhao 2009-09-02
  • 打赏
  • 举报
回复
pSrc 和 pdest 用 ByRef
threenewbee 2009-09-02
  • 打赏
  • 举报
回复
BYTE* pSrc 这个错了
需要CopyMemory把这块内容拷贝出来。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧