怎样释放DLL?

2312 2003-09-19 01:29:02
我用静态方法调用了DLL:
function tm2kp_Init():bool; external 'tm2kplus.dll';
function tm2kp_Uninit():bool; external 'tm2kplus.dll';
在这儿进行初始化:
procedure TF_Yhshch_Shxj.FormShow(Sender: TObject);
begin
tm2kp_init();
if not tm2kp_init()
then
begin
// MessageBox(Application.handle,'²É¼¯¿¨³õʼ»¯Ê§°Ü!','Ìáʾ',MB_ok+ MB_DEFBUTTON1+MB_ICONExclamation);
showmessage('初始化失败');
N12.Enabled:=false;
k1.Enabled:=false;
bsSkinButton1.Enabled:=false;
bsSkinButton3.Enabled:=false;
tm2kp_uninit;
///tm2kp_init;
end;

end;
在这儿进行释放:
procedure TF_Yhshch_Shxj.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
tm2kp_uninit;
My10Moons2KPlus1.Free;
end;

出现的情况有:
1.第一次初始化以后的二次运行次窗体时候就报‘初始化失败’,怀疑没有真正释放DLL
2.在DELPHI里面调试的时候就出现这种情况,关闭DELPHI,脱离情况下执行就没有这种情况。

怎么回事?我怀疑关闭窗体时候没有真正释放DLL,怎样释放DLL,最好有实例。
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
2312 2003-09-19
  • 打赏
  • 举报
回复
to:aiirii
if not tm2kp_init()
已經執行了兩次了!!!

//这儿是我后来调试的时候加上去的,,应该没有关系,原来是这样子的:

procedure TF_Yhshch_Shxj.FormShow(Sender: TObject);
begin
tm2kp_init();
end;
aiirii 2003-09-19
  • 打赏
  • 举报
回复
tm2kp_init();
if not tm2kp_init()
已經執行了兩次了!!!
具體要看你釋放的代碼,可能問題在那!

5,379

社区成员

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

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