用delphi写了个dll,pb调用它时时正常的,可是退出时总报错! 用delphi写了个dll,pb调用它时时正常的,可是退出时总报错!经我反复试验发现只要我的dll中的adoconnection有连接,pb退出时就会报错。而且错误在pb执行到“disconnect using sqlca"程序就退出。怀疑是我的ado未释放。可是我都调用了adoconnection.free了啊?困扰几天了。望大家帮帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码如下:入口:uses sharemem, SysUtils, Classes, Forms, activex, Unit1 in 'Unit1.pas' {frmUserMain};{$R *.res} procedure UserManage; stdcall; begin coinitialize(nil); frmUserMain := TfrmUserMain.Create(Application) ; frmUserMain.Show; end; exports UserManage;beginend.唯一的窗口:procedure TfrmUserMain.FormClose(Sender: TObject; var Action: TCloseAction);beginADOConnection1.Close;adoconnection1.Free;adoquery1.Free;DataSource1.Free;action:=cafree;frmusermain:=nil; end;就这些代码。窗口里面被我精简的只剩下一个adoconnection,adoquery,datasouce,和一个grid了。在窗口关闭时写了一下释放代码。 重新建个工程,然后把代码重新贴一边可能就没事了Orz 你试试 ADOConnection1是动态创建的么?如果不是,不用手工释放。另外,对象释放的代码应该放在 窗体的 onDestroy事件中; 楼主考虑这样试试看 有些东西释放时有顺序的procedure TfrmUserMain.FormClose(Sender: TObject; var Action: TCloseAction); begin DataSource1.Free; adoquery1.Free; ADOConnection1.Close; adoconnection1.Free; action:=cafree; frmusermain:=nil; 别用Free,用FreeAndNil销毁创建的对象。 请教:如何在一个网站搜索中自动输入关键词并获得返还结果 如何创建多个控制台窗口 哪位大侠有做过读写24cxx芯片的delphi实例啊 delphi 控制 Excel 问题 如何使用DynamicSkinForm的skinbuilder 我想与条形码扫描连接如何做(delphi7)? 在线等待(任意形状的图象剪切、粘贴问题)请指教 求救!!socket中buffer问题,在线等待 在公司成立初期如何分配项目股和技术股的比例? 请教一个用delphi5做的录入图片的程序 向网页中的控件edit中发送字符问题。 一个sql错误,大家看看
入口:
uses
sharemem,
SysUtils,
Classes,
Forms,
activex,
Unit1 in 'Unit1.pas' {frmUserMain};{$R *.res}
procedure UserManage; stdcall;
begin
coinitialize(nil);
frmUserMain := TfrmUserMain.Create(Application) ;
frmUserMain.Show;
end;
exports
UserManage;
begin
end.唯一的窗口:procedure TfrmUserMain.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ADOConnection1.Close;
adoconnection1.Free;
adoquery1.Free;
DataSource1.Free;
action:=cafree;
frmusermain:=nil; end;
就这些代码。窗口里面被我精简的只剩下一个adoconnection,adoquery,datasouce,和一个grid了。在窗口关闭时写了一下释放代码。
另外,对象释放的代码应该放在 窗体的 onDestroy事件中;
procedure TfrmUserMain.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DataSource1.Free;
adoquery1.Free;
ADOConnection1.Close;
adoconnection1.Free;
action:=cafree;
frmusermain:=nil;