1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
static AFX_EXTENSION_MODULE TDUDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("TDU.DLL Initializing!\n");
// Extension DLL one-time initialization
if (!AfxInitExtensionModule(TDUDLL, hInstance))
return 0;
new CDynLinkLibrary(TDUDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0("TDU.DLL Terminating!\n");
// Terminate the library before destructors are called
AfxTermExtensionModule(TDUDLL);
}
return 1; // ok
}
// implémentation de la classe interface
CMyTDUInterface::CMyTDUInterface()
{
...
}
void CMyTDUInterface::ShowVisual()
{
CDialogVisualTDU *dvt = new CDialogVisualTDU(); // CDialogVisualTDU hérite de CDialog.
if(dvt != NULL)
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState()); //ceci plante a la compile
//HINSTANCE hInstOld = AfxGetResourceHandle(); //ceci plante car currentResourceHandle = NULL
AfxSetResourceHandle(TDUDLL.hModule);
BOOL ret = dvt->Create(IDD_DIALOG_VISUAL_TDU);
if(!ret) //Create failed.
AfxMessageBox("Error creating Dialog");
dvt->ShowWindow(SW_SHOW);
// AfxSetResourceHandle(hInstOld); // restore the old resource chain
}
else
AfxMessageBox("Error Creating Dialog Object");
} |
Partager