Hallo,
Ik heb hier een Visual Studio project dat een dll genereert en tot voor kort geen gebruik maakte van MFC . Nu wil ik echter een bepaalde methode een dialoogvenstertje doen tonen .
Als ik nu gewoon met de resource editor een dialoogvenstertje aanmaak en het volgende doe:
Dan krijg ik een ASSERT in afxwin1.inl:
En eigenlijk zowat alles wat ik probeer te doen ivm MFC triggert deze assert.
Ik heb al behoorlijk wat gezocht op deze fout, maar ik krijg ze niet opgelost...
Een eerste suggestie die ik heb tegengekomen is om de volgende regel toe te voegen aan het begin van de functie:
Dit veroorzaakt echter de onderstaande fout:
Géén idee wat die regel juist doet en waarom dit tot deze error leidt ...
Ik ben niet thuis in het het module state verhaal ...
Een tweede suggestie die ik heb tegengekomen is om een CWinApp object toe te voegen.
Aangezien mijn project echter een dll genereert is er geen WinMain methode die opgeroepen wordt om mijn CWinApp object te 'activeren' .
Bovendien lijkt me dit erg lastig te combineren met de huidige code ...
Is het sowieso mogelijk om MFC te gebruiken voor hetgeen ik wil?
Indien ja: kan er mij iemand in de richting helpen van hoe ik dit aanpak?
Bedankt!
Ik heb hier een Visual Studio project dat een dll genereert en tot voor kort geen gebruik maakte van MFC . Nu wil ik echter een bepaalde methode een dialoogvenstertje doen tonen .
Als ik nu gewoon met de resource editor een dialoogvenstertje aanmaak en het volgende doe:
code:
1
2
| TestDlg *test = new TestDlg(); test->DoModal(); |
Dan krijg ik een ASSERT in afxwin1.inl:
code:
1
2
3
| _AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle() { ASSERT(afxCurrentResourceHandle != NULL); return afxCurrentResourceHandle; } |
En eigenlijk zowat alles wat ik probeer te doen ivm MFC triggert deze assert.
Ik heb al behoorlijk wat gezocht op deze fout, maar ik krijg ze niet opgelost...
Een eerste suggestie die ik heb tegengekomen is om de volgende regel toe te voegen aan het begin van de functie:
code:
1
| AFX_MANAGE_STATE(AfxGetStaticModuleState( )); |
Dit veroorzaakt echter de onderstaande fout:
code:
1
2
3
| 1>Linking... 1>mfcs80d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in Blah.obj 1>mfcs80d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in Blah.obj |
Géén idee wat die regel juist doet en waarom dit tot deze error leidt ...
Ik ben niet thuis in het het module state verhaal ...
Een tweede suggestie die ik heb tegengekomen is om een CWinApp object toe te voegen.
Aangezien mijn project echter een dll genereert is er geen WinMain methode die opgeroepen wordt om mijn CWinApp object te 'activeren' .
Bovendien lijkt me dit erg lastig te combineren met de huidige code ...
Is het sowieso mogelijk om MFC te gebruiken voor hetgeen ik wil?
Indien ja: kan er mij iemand in de richting helpen van hoe ik dit aanpak?
Bedankt!