相当无语的一个bug。又是关于DLL中接口的释放

简介: procedure TFormMain.btn1Click(Sender: TObject); begin //加载dll TReportConsoleLibWrapper.checkInitialize; try //创建一个接口,由DLL创建 with TReportConsoleLibWrapper.
procedure TFormMain.btn1Click(Sender: TObject);
begin
  //加载dll
  TReportConsoleLibWrapper.checkInitialize;
  try
    //创建一个接口,由DLL创建
    with TReportConsoleLibWrapper.createReportConsole(createDefaultOperator) do
    try
      //调用接口方法,显示窗体
      ShowConsole;
    finally
      //调用接口方法,释放窗体
      FreeConsole;
    end;
  finally
    //释放dll
    TReportConsoleLibWrapper.checkFinalization;
  end;
end;

以上代码点击按钮运行完后出错

 

 

稍微修改一下

procedure TFormMain.btn1Click(Sender: TObject);
begin
  //加载dll
  TReportConsoleLibWrapper.checkInitialize;
  try
    //创建一个接口,由DLL创建
    lvReportConsole:=TReportConsoleLibWrapper.createReportConsole(createDefaultOperator);
    with lvReportConsole do
    try
      //调用接口方法,显示窗体
      ShowConsole;
    finally
      //调用接口方法,释放窗体
      FreeConsole;
    end;

    //设置nil,会调用接口对象的.relase方法 必须在释放dll之前释放
    //否则函数执行完成后释放领的接口对象时会出现异常.因为整个dll都释放了
    lvReportConsole := nil;
  finally
    //释放dll
    TReportConsoleLibWrapper.checkFinalization;
  end;
end;

仔细下来想想确实还是自己的问题。明明知道,还犯下了这样的错误,还我调了4个小时。头都晕了

 

目录
相关文章
|
9月前
怎么删除360base64.dll,这个方法百分百管用
怎么删除360base64.dll,这个方法百分百管用
225 0
|
6月前
|
数据库 C++
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
73 0
|
11月前
|
C++
地平线5打不开(找不到XINPUT1_3.dll,无法继续执行代码)
地平线5打不开(找不到XINPUT1_3.dll,无法继续执行代码)
204 0
地平线5打不开(找不到XINPUT1_3.dll,无法继续执行代码)
关于 qt程序退出出现“已停止工作”程序奔溃问题 的解决方法
关于 qt程序退出出现“已停止工作”程序奔溃问题 的解决方法
关于 qt程序退出出现“已停止工作”程序奔溃问题 的解决方法
|
监控 数据可视化 Java
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (2)
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (2)
80 0
|
监控 数据可视化 Java
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (1)
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (1)
105 0
|
Java 程序员
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (3)
我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。 (3)
101 0
|
安全 Windows
IAR故障解决:由于找不到mfc140u.dll,无法继续执行代码
IAR故障解决:由于找不到mfc140u.dll,无法继续执行代码
IAR故障解决:由于找不到mfc140u.dll,无法继续执行代码
|
程序员 Python
C调用PYTHON运行奇怪崩溃的一例及解决办法
C调用PYTHON运行奇怪崩溃的一例及解决办法
239 0
|
搜索推荐 Java 程序员
IDEA惊天bug:进程已结束,退出代码-1073741819 (0xC0000005)-2
IDEA惊天bug:进程已结束,退出代码-1073741819 (0xC0000005)
726 0
IDEA惊天bug:进程已结束,退出代码-1073741819 (0xC0000005)-2