Fragensteller
MFC Dialog in DLL welche aus einer Delphi Anwendung aufgerufen wird

Allgemeine Diskussion
-
Hi,
ich schreibe gerade an einer nativen C/C++ DLL, welche von einer externen Delphi Anwendung als Plugin geladen wird. In der DLL selber verwende ich die MFC, welche statisch angebunden wird. Mein Problem ist nun, wenn ich ein modales Dialogfenster öffne, so erscheint dies zwar und läßt sich verwenden, aber es gibt Problem beim Zeichnen des Dialoges. Man sieht in den Edit Feldern z.B. nur am Anfang den Caret, tippt man was ein, so verschwindet dieser. Bewegt man das Fenster, so passiert es, das es nicht immer aktualisiert wird. D.h. alle Controls verschwinden und der Dialog sieht leer aus. Wahrscheinlich vermisst der Dialog sein Hauptfenster (AfxGetMainWnd gibt z.B. NULL zurück). Ich habe schon mal testweise versucht, mit dem Desktop Window zu arbeiten, aber das half nix. Ich arbeite nach 7 Jahren erstmal wieder mit der MFC, deswegen bin ich aus diesem Thema etwas raus. Bin da also für jeden Tipp dankbar.
Gruß
Martin
- Typ geändert Ionut DumaModerator Dienstag, 4. Februar 2014 16:47 Keine Rueckmeldung des Fragenstellender
Alle Antworten
-
Hallo
Gib doch einfach mal ein paar Details, wie Du den Dialog aus Deiner MFC DLL aufrufst. Wie hast Du Deinen Dialog in der DLL denn exportiert.
Aus meiner Sicht gibt es keinen Grund, wieso das nicht funktionieren sollte. Der Dialog selber sollte aber keine MFC spezifischen Datentypen exportieren. Wenn Du Dich auf die Windows Datentypen beschränkst und ein Fensterhandle mitgibst, sollte das eigentlich funktionieren.
Wichtig ist, dass Du die Funktion in der DLL so exportierst, das Delphi damit umgehen kann. Es gibt verschiedene Aufrufkonventionen, ich habe da nicht das Know How um mich da bzgl. Delhpi zu äußern.
Best regards
Bordon
Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar. -
Ich sehe (wie Bordon) keinen Grund warum es nicht gehen sollte. Bei einem modalen Dialog liegt die Nachrichtenschleife in der MFC. Ein Main Window ist in keiner Weise wichtig oder erforderlich.Die Frage ist ob Deine Anwendung evtl. einen Message Hook installiert hat und dadurch Nachrichten manipuliert oder beeinflusst.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
-
**************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
**************************************************************************************************Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.