C# DLL in C++ code einbinden!
-
Servus Leute,
ich habe eine C# dll geschrieben und die muss ich in einen C++ code einbinden:
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Drawing; using System.Runtime.InteropServices; namespace test { [ClassInterface(ClassInterfaceType.AutoDual)] [ComVisible(true)] public class test { public void testGo(string strPfad, string strSave) { testBlock1(strPfad); testBlock2(strPfad); ShowResult(0, strSave); } } }
Hier importiere ich die tlb:
#import "test.tlb" raw_interfaces_only
Hier will ich die Funktion aufrufen:
test::_test *pptr; CoInitialize(NULL); test::_testPtr testPtr(__uuidof(test::test)); pptr = testPtr; pptr->testGo();
Doch es kommt der Fehler:
error C2039: 'testGo' : Ist kein Element von '_test'
: Siehe Deklaration von '_test'Sieht jm. den Fehler oder weiß jemand was ich falsche mache?
Mfg
-
Hier ist C++/CLI - weder C++ noch C# - also das falsche Forum.
Das C# Forum ist vermutlich am besten geeignet.Google mal nach CCW (COM Callable Wrapper).
-
Sorry theta,
da bin ich dran schuld, da ich ihm den Hinweis auf dieses Forum gegeben habe.
Mit reinem C++ kann er doch sowieso keine .NET-Assembly aufrufen, daher muß er doch C++/CLI verwenden, oder etwa nicht?
Edit: ok, jetzt verstehe ich: das soll über COM gelöst werden...
(das "#import" hatte mich verwirrt - ich dachte, das wäre dann C++/CLI - es ist aber eine generelle C++ Erweiterung vom MSVC!).
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C# und .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich kenne mich zwar auch nicht so gut mit COM aus, aber du solltest dir vielleicht mal das hier durchlesen:
http://msdn.microsoft.com/en-us/library/xk1120c3.aspxVor allem die Abteilung über Typkonvertierung. Wenn ich das richtig sehe, dann werden Methoden von Klassen nicht exportiert. Dazu musst du Interfaces verwenden.
Grüssli