Dialog in DLL einbinden
-
Öhm, steht eigentlich auf Seite 1 ganz oben: VS .Net 2002, also VC++ 7.0 Ok, wäre colle wenn Du das mal nachvollziehen könntest, ich stehe hier nämlich trotz Buch irgendwie auf dem Schlauch.
-
Sorry, jetzt wirds vor Montag nix.
-
Zar schon alt aber
-
dlldialog ist ja vom Prinzip her genauso, wie ich es mache.
Objekt erzeugen, doModal() aufrufen und drauf hoffen das was angezeigt wird.
doModal() liefert aber bei mir immer -1 zurück, ohne was anzuzeigen, obgleich der Dialg durch den Konstruktor durchgeht.
-
Setz mal einen Breakpoint in DoDataExchange und OnInitDialog.
Kommt der da vorbei?
-
OnInitDialog gibts bei mir nicht, läßt sich auch nicht hinzufügen. Bei OnDataExchange kommt er nicht durch. Der Code zum Dialog sieht so aus, also noch nischt wildes:
#include "stdafx.h" #include "HKDLL.h" #include "XConfigDialog.h" // XConfigDialog-Dialogfeld IMPLEMENT_DYNAMIC(XConfigDialog, CDialog) XConfigDialog::XConfigDialog(CWnd* pParent /*=NULL*/) : CDialog(XConfigDialog::IDD, pParent) { Beep(100,10); // hier machts Beep } XNAPConfigDialog::~XNAPConfigDialog() { } void XConfigDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(XConfigDialog, CDialog) END_MESSAGE_MAP()
-
du must OnInitDialog() überladen. aber da nicht ankommt ist es eh egal. ruf mal GetLastError() nach xx.DoModal() auf
-
Ok, GetLastError() gibt
"Die angegebene Image-Datei enthält keinen Resourcenabschnitt."
zurück.
Anscheinend scheint er Probleme mit der Dialog-Resource zu haben. Was läuft da falsch?
-
-
Top, genau das wars!!!! Stand übrigens auch oben in der DLL, konnte ich bloß nicht korrekt zuordnen.
Hier noch das Bsp:
// DLL Funktion bool OpenBlockConfigDialog(int iID, void *pParams, int iParamSize) { //Wird diese DLL dynamisch an die MFC-DLLs gebunden, //muss bei allen von dieser DLL exportierten Funktionen, //die MFC-Aufrufe durchführen, das Makro AFX_MANAGE_STATE //direkt am Beginn der Funktion eingefügt sein. AFX_MANAGE_STATE(AfxGetStaticModuleState()); return theApp.AccessObj->OpenBlockConfigDialog(iID, pParams, iParamSize); }