Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CWinApp-Instanz in .NET-Assembly zugreifbar machen

4 views
Skip to first unread message

weknewsgr...@discussions.microsoft.com

unread,
Jan 18, 2010, 12:29:01 PM1/18/10
to
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 ?

Martin Richter [MVP]

unread,
Jan 19, 2010, 4:36:11 AM1/19/10
to
Hallo w...@newsgroups.nospam!

> 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

0 new messages