VB调用dll(vc)出错,急,在线等!!

raincoax 2003-08-21 09:33:50
vc中函数声明如下:
WORD _stdcall RCDes(BYTE* DesObject,WORD ObjectLen,BYTE* DesResult,BOOL DesDo)
vb中这样写的:
Private Declare Function rcdesa Lib "D:\DesApp.dll" Alias "RCDes" (str As Long, strlength As Long, result As Long, ByVal flag As Boolean) As Long

error:‘内存不能written'
请问是那里错了?
...全文
32 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcx_csdn 2003-08-22
  • 打赏
  • 举报
回复
VB声明中默认为BYREF,如果是值参要用显式的BYVAL说明一下
功名半纸 2003-08-22
  • 打赏
  • 举报
回复
private declare rcdesa lib "DesApp.dll" (DesObject as BYTE, byval Objectlen as inteter, DesResult as BYTE , byval DesNo as long) as long

VB中调用API数组要使用第一个数组元素做传地址方式传入!!!

确定API是
extern "C" WORD _stdcall RCDes(BYTE* DesObject,WORD ObjectLen,BYTE* DesResult,BOOL DesDo)

并使用了DEF文件吗?
COOL099 2003-08-21
  • 打赏
  • 举报
回复
沒有分配內存吧.
傳遞的str和result先要分配內存.
farfh 2003-08-21
  • 打赏
  • 举报
回复
指针或者数组好象都要使用ByVal修饰,以前有位师兄好象这么说过,你用LONG来传地址肯定不成的。

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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