3 Stimmen

Eine c# Winforms-Anwendung als DLL aus einer nicht verwalteten mfc-Anwendung nutzbar machen

Ich frage mich, wie ich über die Umwandlung einer vorhandenen c# Winforms-Anwendung in eine Klassenbibliothek gehen würde und dann rufen Sie es von einer MFC-Anwendung. Gibt es irgendwelche Referenzen, wie dies zu tun? Ich habe versucht, zu googeln, aber neben der Tatsache, dass es die ComVisible Attribut gesetzt auf true Ich habe nicht viele Informationen gefunden.

Gracias.

3voto

Unmesh Kondolikar Punkte 9116

In den Projekteigenschaften von Visual Studio den Ausgabetyp in Klassenbibliothek ändern . Dadurch wird Ihr Projekt zu einer DLL kompiliert. Auch das Attribut comvisible auf true setzen . Auf diese Weise wird ein aufrufbarer Wrapper und eine tlb-Datei erzeugt, die Sie in Ihrem mfc-Projekt verwenden können.

Ich denke auch, dass der folgende Link eine sehr gute und detaillierte Erklärung ist, wie COM Interop in .Net funktioniert

http://www.codeproject.com/KB/COM/cominterop.aspx

1voto

Steve Danner Punkte 21442

Werfen Sie einen Blick auf die regasm.exe Werkzeug, das mit .NET ausgeliefert wird. Es erzeugt die erforderlichen Registrierungseinträge (und optional eine .tlb-Datei), die es COM-Komponenten ermöglichen, auf Ihre Assembly zuzugreifen.

1voto

Kate Gregory Punkte 18638

Es gibt ein MSDN-Beispiel das das Einfügen eines Winforms-Benutzerelements in eine MFC-Anwendung - Dialog oder Ansicht - behandelt. Zusätzlich zum Code sollte dies Ihnen die Projekteinstellungen zeigen, die Sie benötigen.

0voto

Chris O Punkte 4983

Sobald Sie diesen Build richtig erstellt haben, müssen Sie ihn zum Laufen bringen. Das Hauptproblem könnte das korrekte Parenting der Windows-Formulare aus dem nicht verwalteten Windows sein, d. h. die verwalteten Formulare müssen in einer nicht verwalteten Anwendung laufen. Wenn Sie WPF nicht als UI-Brücke zwischen Ihrem nicht verwalteten Code und verwalteten Formularen verwenden, müssen Sie diese Arbeit selbst erledigen. Sie können dieses Thema für weitere Informationen googeln, ich habe im Moment keinen Link dafür parat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X