在关闭主程序后,总是报内存出错.出错的源码下载地址:http://www.cngrandpower.com/tanyong/jozosoft/down/help.rar

解决方案 »

  1.   

    在你的 CreateForm(App: TApplication);Stdcall;中记录application:=app; 是对的,但是在释放的时候你应该还原该值,你出错的原因就在这里啦.
    这个值应该在 DLL的析构函数里面做.
      

  2.   

    怪哉!在我这里不出任何错误。有两个建议:
    1、最后在EXE和DLL的dpr的uses中将ShareMem作为第一个单元;
    2、CoInitialize/CoUninitialize 没有必要用这种罗嗦的方法,只需要在任何一个单元(也可以专门创建一个单元)的initialization和finalization中写上即可,要简单和有效得多。如:
    initialization
      CoInitialize(nil);
    finalization
      CoUninitialize;
    其它的DLL全局初始化和扫尾也可以这么做。
    另外,ExitDLL(DLL_PROCESS_ATTACH)应该不会调用到,你设断点试试。--
    http://www.agui.googlepages.com
    mailto: agui.cn(a)gmail.com
      

  3.   

    奇怪!真奇怪!
    同样的一个DLL窗体(MDI)在D7 下编译,运行时内存出错,主要是函数里的: Application:=app; 出错.
    但在D2006里编译后运行却没问题,这让我如何是好?