CWinApp-Instanz in .NET-Assembly zugreifbar machen

18/01/2010 - 18:29 von wek | Report spam
Hallo !
Wie kann ich erreichen, daß ich aus einer .NET Assembly (in C# geschrieben)
auf das ja schon bei Programm-Start angelegte CWinApp-abgeleitete Objekt
einer MFC-App (mit C++ /clr compiliert), die diese Assembly verwendet,
zugreifen kann ?

Der Zugriff soll über eine mit C++/CLI geschriebene Wrapper-Klasse (um
CWinApp) geschehen, die in einer anderen .NET-Assembly schon existiert. Das
Problem dabei ist, daß AfxGetApp() in dieser Wrapper-Assembly anscheinend ein
eigenes CWinApp-Objekt dieser Assembly/DLL liefert, und nicht der
CWinApp-Objekt der MFC-Anwendung/EXE

Wie kann ich also in der C++/CLI - Wrapper-Assembly einen Pointer auf das
CWinApp-Objekt der Anwendung bekommen ?
 

Lesen sie die antworten

#1 Martin Richter [MVP]
19/01/2010 - 10:36 | Warnen spam
Hallo !

Der Zugriff soll über eine mit C++/CLI geschriebene Wrapper-Klasse (um
CWinApp) geschehen, die in einer anderen .NET-Assembly schon existiert. Das
Problem dabei ist, daß AfxGetApp() in dieser Wrapper-Assembly anscheinend ein
eigenes CWinApp-Objekt dieser Assembly/DLL liefert, und nicht der
CWinApp-Objekt der MFC-Anwendung/EXE

Wie kann ich also in der C++/CLI - Wrapper-Assembly einen Pointer auf das
CWinApp-Objekt der Anwendung bekommen ?



Das hàngt vom Typ der DLL ab, die Du erzeugt hast. Nur bei Extension
DLLs liefert AfxGetApp das CWinAp Object der EXE!

Schau Dir mal die unterschiedlichen DLL Typenb der MFC an. Wichtig, das
geht natürlich auch nur, wenn die DLLs der MFC dynamisch gelinkt werden.

Martin Richter [MVP] WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com

Ähnliche fragen