dll静态调用错误

favan 2003-09-15 05:37:03
我用C++写了一个DLL
在调用的时候不出错,但在调用过程执行完后出错:
read address of 0x00000001
请教怎么解决?
(动态调用时不出错,但我需要静态调用)
...全文
37 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjqyb 2003-09-16
  • 打赏
  • 举报
回复
sorry!!
DllExport int __stdcall EYC_Ent_ReadRec(int nDevID, ComStru Com, pEntRec pEr);
zjqyb 2003-09-16
  • 打赏
  • 举报
回复
DllExport int __sdtcall EYC_Ent_ReadRec(int nDevID, ComStru Com, pEntRec pEr);
favan 2003-09-16
  • 打赏
  • 举报
回复
C++动态连接库:
#define DllImport extern "C" __declspec(dllimport)
DllExport int EYC_Ent_ReadRec(int nDevID, ComStru Com, pEntRec pEr);
(实现部分有点长,是读取门禁记录的,不方便贴,我感觉不会错在里面)

Delphi里:
function EYC_Ent_ReadRec(nDevID: Integer; Com: ComStru; pEr: pEntRec): Integer; stdcall;external 'EYICCOM.dll' name 'EYC_Ent_ReadRec';

zjqyb 2003-09-15
  • 打赏
  • 举报
回复
可能参数约定不同,c++,delphi两边都要加stdcall
xdljf 2003-09-15
  • 打赏
  • 举报
回复
应该是访问了没有分配内存的单元。
year2000bug 2003-09-15
  • 打赏
  • 举报
回复
可能参数约定不同。
加个stdcall吧。
李赞红 2003-09-15
  • 打赏
  • 举报
回复
只有你自己知道错在哪里
outer2000 2003-09-15
  • 打赏
  • 举报
回复
也许调用的时候用CDECL的方式;
aiirii 2003-09-15
  • 打赏
  • 举报
回复
釋放出問題,檢查你的dll的釋放處理部分!!
ehom 2003-09-15
  • 打赏
  • 举报
回复
估计就是调用约定的问题了,加个stdcall,C和Pascal的参数默认压栈方式正好相反
delphi_xizhousheng 2003-09-15
  • 打赏
  • 举报
回复
调用方式的约定?
overtime 2003-09-15
  • 打赏
  • 举报
回复
你的参数是什么?
favan 2003-09-15
  • 打赏
  • 举报
回复
而且,原来用delphi写的dll不会出错的,这回用c++写了,用delphi调用就出错了。
favan 2003-09-15
  • 打赏
  • 举报
回复
代码都正常的不能再正常了,在一个过程里*静态*调用,调用不出错的,到调用过程运行到end的地方出错。
FrameSniper 2003-09-15
  • 打赏
  • 举报
回复
啥也没有,没有判断根据!
蓝色光芒 2003-09-15
  • 打赏
  • 举报
回复
会不会是共享内存出错,或者指针之类的没有初始化!!
Delphi_Li 2003-09-15
  • 打赏
  • 举报
回复
代码!!!你的代码在那里???
不贴代码,天知道你错在那里!!!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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