MFC Dialog in DLL importieren ?

haemmer

Grünschnabel
Ich habe ein fertiges MFC Dialog Projekt.

Diesen Dialog möchte ich in eine in eine statische MFC DLL einfügen.
Die DLL existiert noch nicht.

Ich denke folgendes vorgehen führt zum Ziel
1. Mit dem MFC-Anwendungs -Assistenten (dll) eine „Erweiterund MFC-DLL ( nur mit anderen MFC-Anwendungen ) gernerieren.

2. und dann die Klassen des Dialoges in die DLL zu kopieren.

Aber wie ist es mit den Ressourcen?
Und was muss man hinein kopieren?
Kennt jemand ein Beispiel wie man das macht.

Danke Markus
 

Anhänge

Die Richtung ist schonmal gut du kopierst dann nochmal die Resource mit in das DLL Projekt und musst dann in der Dialog Klasse den Eintrag enum { IDD = NAMERESOURCE} ändern in etwa int IDD ; und im Konstructor den Wert IDD = NAMERESOURCE setzen , entsprechend auch an die Basisklasse übergeben,.
Wenn du das nicht machst müsstest du jedesmal die Resource mitziehen was ja blöd ist.
Jetzt kannst du die Dialogklasse exportieren (gibts ein Makro für um Klassen aus einer DLL zu exportieren) und Fertig.
Dll einbinden und ab gehts ! Neues Objekt des Dialogs mit new erstellen und schon gibts keine Probleme mehr.
Hab ich sogar vor paar Tagen selber ausgeknobelt.
Also viel Erfolg und Spaß noch !
 
Hallo Markus, basd
könnt ihr mir weiterhelfen ?
ich habe das gleiche Problem mit den Resourcen von DLL. Was soll ich machen, damit meine Klient Anwendung (SDI) auf die Resourcen von DLL zugreifen kann ? ich bin wie Markus vorgegangen. Also MFC Dialog erstellen , in das leere DLL kopieren, kompieren usw.. Trotzdem kann der Klient nicht auf die Resourcen des Dlls zugreifen. Der Klient hat ja eigene Resourcen und kann mit zwei Resourcen.h nicht anfangen.

Markus, hast du Erfolg mit dem DLL Projekt? kannst du mir deine Dateien schicken ?

Gruß

Q
 
erlich gesagt,habe ich es damals richtig geübt.
Aber so hat geklappt.

Ich bin folgendermassen vorgegangen

1. make this : http://www.htbasic.com/MFCDLLInstructions.htm
2. Mache deinen Dialog
3. Code hineinkopieren. :) :)

Ich hoffe das hilft dir weiter

Gruss Markus


und vergesse nicht
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // this is for MFC
in den DLL Methoden

Beispiel
DLL side
void Optimize(std::list<SHCrec>& li_SHCrec)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // this is for MFC
.. dein code

}


Links
http://www.codeproject.com/wtl/SDIViewWTLDLL.asp?target=DLL|Dialog
http://www.htbasic.com/MFCDLLInstructions.htm
http://www.mindcracker.com/mindcracker/c_cafe/dll/extn_dll_dlg.asp
 
Hallo Markus,

Es hat wunderbar geklappt. Ich kann nun meine Erweiterungs -DLLs in die Klient Anwendung einbinden und aufrufen. Vielen Dank für deine Tips und nützliche Links. Beim nächsten Projekt werd ich mich mit der regulären DLLs beschäftigen. Falls du noch weitere Tips hast ! ich würde mich sehr freuen.

Gruß

Q
 
Hilfe,
mein Klient Programm stürzt ab, wenn ich die Funktion einer DLL (regulär) aufrufe. Was mache ich falsch ? Die Kompilierung der DLL war problemlos und fehlerfrei.
kann jemand mir weiterhelfen. Danke voraus

Gruß

Q
 
Zurück