请问:【DLL中资源泄漏,为什么???】+【参与有分】
很简单的一个myAbout.dll
如下:
#include "uAbout.h" //.cpp中仅一个form+closebutton
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
//
extern "C" void __declspec(dllexport) __stdcall DllShowAbout(void)
{
try {
fmAbout = new TfmAbout(NULL);
}
catch(Exception &e) {
Application->MessageBox( e.Message.c_str(), NULL, MB_ICONSTOP|MB_OK );
fmAbout = NULL;
}
fmAbout->ShowModal();
delete fmAbout;
fmAbout=NULL;
}
//另外一个程序中如下调用:
void __fastcall TfmMain::actAboutExecute(TObject *Sender)
{
HINSTANCE hd = LoadLibrary("myAbout.dll");
(void *)DllShowAbout = GetProcAddress(hd,"DllShowAbout");
DllShowAbout();
FreeLibrary(hd);
}
运行时正常,关闭程序时CodeGuard提示resource leak
:有一段SysGetMem分配的内存未释放
环境:w2k+sp3+BCB5
请问为什么?