调用dll的问题,经典错误 退出程序的时候,提示错误信息:access violation at 0x77466892;write of address 0x00030fec自己写了一个dll文件,两天前用着一切正常;后安装过几个控件就出现了这个错误。但在测试程序中是正常的,能是什么原因?因开发的需要,那几个控件不能卸载。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 access violation at 0x77466892;write of address 0x00030fec这种原因最不好找了,尤其是dll中。 这个问题很常见的内存地址访问错误。一般是由于:使用了未实例化的变量。DLL有源码的话,在DLL里断点跟踪下,看看对象是否为NIL但又什么了它等情况,若没源码…… 这个问题我知道,就是在“退出”程序时,没有将那个DLL文件释放掉才出错的楼主加载DLL的方式肯定就是“静态”方式,建议楼主用“动态”方式或者在“退出”时,释放掉那个DLL文件 H:=LoadLibrary(PChar('mydll.dll')); if H<>0 then begin p:=GetProcAddress(H, PChar('func')); if Assigned(p) then uKey:=p(str); end; FreeLibrary(H);动态调用仍然出错,只是地址换了,现在成了0x76f56892 DLL中的func是不是用了string类型做参数了,改为PChar试试 主程序,OnClose中,写上ExitProcess(0),交给Windows回收一切,就行了 网络版系统开发问题 如何判断WORD巳关闭?? 大分等你哈 请问我学DELPHI7,该学Pascal言语的哪个版本? PE文件资源清理问题? 在delphi中如何判断一个线程是否已经终止?急!!!!!! mpg,rm播放控件 辣手的问题,请指教? 在delphi中如何处理32位无符号整数? 使用OBJ文件 如何进行数据调用?? Delphi7中数据库连接问题 firemonkey下,按钮上的图标在那里设置、。
这种原因最不好找了,尤其是dll中。
一般是由于:使用了未实例化的变量。DLL有源码的话,在DLL里断点跟踪下,看看对象是否为NIL但又什么了它等情况,若没源码……
楼主加载DLL的方式肯定就是“静态”方式,建议楼主用“动态”方式
或者在“退出”时,释放掉那个DLL文件
if H<>0 then
begin
p:=GetProcAddress(H, PChar('func'));
if Assigned(p) then
uKey:=p(str);
end;
FreeLibrary(H);动态调用仍然出错,只是地址换了,现在成了0x76f56892