Dialogboxen in DLL´s
-
Ich muss einige Dialoge in eine DLL auslagern um sie in mehreren Programmen nutzen zu können.
Dazu habe ich die entsprechenden Resourcen und Dialogproceduren in C entwickelt
getestet ob sie funktionieren und dann in eine DLL ausgelagert inclusive der *.rc einträge.Diese DLL läßt sich ohne Fehler komilieren und erstellen.
Wenn ich diese Dll in ein Testprogramm einbinde erfolgreich erzeuge, start
und dann einen Dialog aus der DLL aufrufe bekomme ich folgende Fehlermeldung über GetLastError
"Der angegebene Ressourcenname wurde nicht in der Image-Date gefunden"Die Funktion
peter=DialogBox(hInst, (LPCTSTR)(IDD_USERLOGIN), hWnd, (DLGPROC)Login);
hat einen return Wert von -1hInst, hWnd, haben sinnvolle Werte
Die (DLGPROC) existiert und ist im selben C++ File kodiert
IDD_USERLOGIN ist definiert im resource.h der dll
das Dialoglayout das zu IDD_USERLOGIN gehört ist im .rc file der DLL definiertTrotz suchen in MSDN stehe ich vor einem Rätsel
Kann jemand helfen
Danke
-
ist hInst auch das Handle der DLL?
-
Danke
hInst ist aus int APIENTRY WinMain(HINSTANCE hInstance,...Das könnte der Fshler sein, blos wie komme ich den richtigen ?
Pad
-
ja, dann kanns auch nicht gehen. mit LoadLibrary bekommst du das richtige Handle
-
Erstmal vielen Dank für die schnelle Hilfe
Schade, ich will diese DLL´s eigentlich nicht explizit mit LoadLibrary laden,
sondern bei Programmstart implizit in dem ich im Projekt das zugehörige .lib File einbinde.Gibt es keine Möglichkeit den DLL Handle nachträglich zu bekommen, ich kann mir auch eine Funktion alla GetThreadId innerhalb der DLL vorstellen die mir den
Handle liefert.PAD
-
du kannst es trotzdem per import-lib einbinden und mit LoadLibrary laden
-
Danke es funktioniert jetzt einwandfrei.
Ich werde dieses Forum weiterempfehlen
PAD
-
Oder du nimmst GetModuleHandle, würde ich dir eher empfehlen als ein LoadLibrary wenn die DLL schon durch die import lib geladen wird.
[ Dieser Beitrag wurde am 03.07.2003 um 12:27 Uhr von CMatt editiert. ]
-
danke