Ich habe das Ziel Dialoge als Plugins zu verwenden und später über LoadLibary() nachzunutzen. Dazu machte ich bislang folgendes:
... und dann rauchts.
in der Dialog-Klasse steht ja
diese IDD ist in der resource.h definiert. Wenn ich resource.h einbinde wird das Projekt erfolgreich kompiliert.
Anschließend erstelle ich mir eine mfc-dialog-app und will diesen Dialog wie folgt sichtbar machen:
in der Zeile dlg->DoModal(); ist nun endgültig feierabend mit der Fehlermeldung:
. in der Zeile darüber sehe ich beim Debuggen, dass pNewViewClass->m_lpszClassName meiner selbstgeschriebenen Klasse entspricht. Ich vermute, dass es irgendwas mit den Ressourcen zu tun hat aber sicher bin ich mir auch nicht.
Hier gibts ein Beispielprojekt mit dem Problem:
Brauche Dringend Eure Hilfe.
Danke, Emu
- anlegen einer Erweiterungs-Dll
- anlegen eines Dialoges in der Ressourcenansicht
- anlegen einer Klasse für den Dialog mit dem Klassenassistenten
- anpassen der Klasse für die DLL (siehe http://www.codeproject.com/KB/docview/sdicviewdll.aspx)
... und dann rauchts.
in der Dialog-Klasse steht ja
C++:
// Dialogfelddaten
enum { IDD = IDD_DIALOG1 };
diese IDD ist in der resource.h definiert. Wenn ich resource.h einbinde wird das Projekt erfolgreich kompiliert.
Anschließend erstelle ich mir eine mfc-dialog-app und will diesen Dialog wie folgt sichtbar machen:
C++:
typedef UINT ( * LPDLLFUNC)(CRuntimeClass**);
LPDLLFUNC lpfnDllFunc = NULL;
HINSTANCE hDLL = NULL;
CDialog *dlg;
hDLL = LoadLibrary("FX1.dll");
if(hDLL)
{
lpfnDllFunc = (LPDLLFUNC)::GetProcAddress(hDLL,"Init");
if (!lpfnDllFunc)
{
AfxMessageBox("Function not found in DLL");
FreeLibrary(hDLL);
return;
}
CRuntimeClass* pNewViewClass;
lpfnDllFunc(&pNewViewClass);
ASSERT(pNewViewClass);
dlg = (CDialog*)pNewViewClass;
dlg->DoModal();
}
else
{
AfxMessageBox("Dll not found!");
}
in der Zeile dlg->DoModal(); ist nun endgültig feierabend mit der Fehlermeldung:
C:
Zugriffsverletzung bei lesen an Position sowieso
Hier gibts ein Beispielprojekt mit dem Problem:
Brauche Dringend Eure Hilfe.
Danke, Emu