VB调用DLL报内存出错问题!

aptyu 2003-08-11 09:42:36
各位大虾,我这里碰到一个调用DLL出错的情况,烦请一看。

VC++编写一个DLL负责处理一个大小为Long以下的字符串,并要将结果返回VB。
现在,我首先在VB中开辟一个比结果要大的String空间,并将其地址传给VC++。
但是,在程序运行后,首次调用时候并不出错。首次运行后,退出时报“内存某地址不能为written”。如果不退出,继续调用DLL,会在不确定的某一次报同样错误。

敬请赐教。
谢谢!
...全文
22 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
aptyu 2003-08-11
  • 打赏
  • 举报
回复
ZouMorn兄,在下正是用了 CString。
现在改为char*,已经OK了。

谢谢
ZouMorn 2003-08-11
  • 打赏
  • 举报
回复
提醒你注意几点:

调用约定, dll 最好使用 __stdcall
参数类型, vb 调用,则 dll 里面最好使用 const char*

dll 最好不要用 mfc 函数,特别是你还没有搞清楚原理的时侯,例如 CString,写时拷贝

15,471

社区成员

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

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