如何释放动态连接库

diecode 2004-11-29 04:34:15
procedure dlltest;
var
libhandle : THandle ;
begin
libhandle := LoadLibrary('test.dll');
Freelibrary(libhandle);
end;

程序报如下错:
raised too many consecutive exceptions :'
access violation at 0x00000000
read of address 0x00000000'
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
da18a 2004-11-30
  • 打赏
  • 举报
回复
dll 里面如果创建了 form 或者其他 对象 请先释放掉 然后再 Freelibrary
diecode 2004-11-30
  • 打赏
  • 举报
回复
beyondtkl(大龙驹<*step by step:Cpp&&Crack*>)
程序崩了,执行不到except段,就难在这里啊

richard_ouyang(爱象刀上的苹果)
所有单元都加了
richard_ouyang 2004-11-29
  • 打赏
  • 举报
回复
我看不是你这里的问题而是你的动态链接库的问题。你在动态链接库里面的释放有问题,而且你可能调用的方法有问题。
在调用string参数的时候需要特别加一个单元,请查找一下
beyondtkl 2004-11-29
  • 打赏
  • 举报
回复
procedure dlltest;
var
libhandle : THandle ;
begin
libhandle := LoadLibrary('test.dll');
if libhandle <> 0 then
begin
try
Freelibrary(libhandle);
except
ShowMessage(IntToStr(GetLastError())); // 看看。。。错误代码是多少。。
end;
end;
end;
diecode 2004-11-29
  • 打赏
  • 举报
回复
楼上的兄弟
问题依旧啊
diecode 2004-11-29
  • 打赏
  • 举报
回复
是在Freelibrary(libhandle)的时候报错
beyondtkl 2004-11-29
  • 打赏
  • 举报
回复
access violation at 0x00000000 ...
看提示信息 为0地址呀 这是不能访问的
你应该
procedure dlltest;
var
libhandle : THandle ;
begin
libhandle := LoadLibrary('test.dll');
if libhandle <> 0 then
begin
Freelibrary(libhandle);
end;
end;
1. 学会看提示信息
2. 要安全性的编程
......
zzWind 2004-11-29
  • 打赏
  • 举报
回复
你是在LoadLibrary('test.dll')的时候报错?
如果是这样你要看看动态库中的方法有没有导出。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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