Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Handleproblem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.02.2004, 11:07 Uhr
~Dirk23
Gast


Hi,

ich habe folgendes Problem. Ich habe hier eine Funktion vor mir, die als Parameter ein Handle vom Typ HWND benötigt.


C++:
int Init(HWND handle);



Von einer normalen MFC-Anwendung habe ich diese Funktion immer so aufgerufen:


C++:
Init(GetSafeHwnd());



Nun will ich diese Funktion von einer Dll aus aufrufen. Jetzt bekomme ich die Fehlermeldung, dass "GetSafeHwnd" ein nicht deklarierter Bezeichner ist.

Wie muss ich diese Funktion aus der DLL aufrufen?
Das Handle wird an die Funktion übergeben, damit diese weiss, wohin sie Nachrichten senden muss.

Ich hoffe, dass ihr mir helfen könnt. Ich will euch auch nicht länger mit meinen DLL-Fragen nerven. Aber ich komme mit so Problemen alleine leider nicht weiter. Ich weiss bei so etwas ja noch nicht einmal, wo ich nachschauen müsste.

Vielen Dank schon einmal im Voraus für eure Tipps

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.02.2004, 13:48 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
GetSafeHwnd muss eine CWnd Basis Klasse haben. Eventl. musst du aus dem Client eine Funktion exportieren, welche nen Pointer/Handle auf das Objekt (Fensetr/Dialog) hat.

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.02.2004, 13:59 Uhr
~Dirk23
Gast


Danke, das glaube ich auch. Ich frage mich inzwischen sowieso, ob man überhaupt benutzerdefinierte Nachrichten innerhalb einer Klasse einer DLL empfangen kann.

Kann man benutzerdefinierte Nachrichten nur von einer Anwendung in der Klasse CMainframe empfangen?

Danke schon mal

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.02.2004, 14:32 Uhr
mike
Pinguinhüpfer
(Operator)


Hmm. Wie meinst du das? Warum verschickts du Nachrichten innerhlab einer Klasse?
View&Co Klassen können auch Nachrichten empfangen. Wann und wohin die Anwendung eine Nachricht sendet, kann man mit Spy++ gut erkennen.

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.02.2004, 15:08 Uhr
~Dirk23
Gast


Ich möchte nicht Nachrichten innerhalb einer Klasse verschicken. Mein Problem ist, dass ich von einer DLL2 benutzerdefininierte Nachrichten immer wieder zugeschickt bekomme. Und ich möchte nun diese beiden benutzerdefinierten Nachrichten innerhalb der DLL1 empfangen. Und deshalb frage ich mich eben, wie ich das machen kann. Mal zum Aufbau der ganzen Sache.

Ich habe eine MFC-Anwendung. Diese bindet DLL1 dynamisch ein, also als Plug-in. Und die DLL1 bindet die DLL2 statisch ein, d.h. mit Importbibliothek. Die Anwendung kann also ganz ohne beide DLLs funktionieren. Ist aber DLL1 da, so wird auch DLL2 benötigt, da diese statisch von DLL1 eingebunden ist.
Von DLL1 bekomme ich leicht Informationen zu DLL2, indem ich einfach die exportierten Funktionen von DLL2 aufrufe. Aber von DLL2 zu DLL1 bekomme ich nicht so leicht Informationen rüber. Deshalb dachte ich, dass ich dies mit Nachrichten schaffen könnte.


Hast du mir einen Tip oder sonstige gute Ratschläge dazu?

Danke

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.02.2004, 17:36 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Du kannst auch dllexport Funktionen im Client nutzen. D.h., dass du imho ohne weiteres eine Exportfunktion von DLL1 aufrufen kannst. GetProcAdress funtzt da ziemlich gut. Ebenfalls sind Funktionspointer da ganz brauchbar.

Ich habe einmal eine Funktion aus dem Client(exe) in der DLL aufrufen müssen. Das hat mit GetProcAdress wunderbar geklappt - ist auch eine Art Funktionspointer.

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: