Moin!
Vorweg: Ich bin noch etwas unerfahren, was C++ angeht.
Ich habe folgendes Problem:
Ich möchte in C++ (Visual C++ aus VS 2005) eine mfc-dll erstellen, die ich dann in ein VB.net-Projekt einbinde (kein Verweis) und mit Declare Function in VB.net zugreifen möchte. Mein Code in C++ (Auschnitt):
In VB.Net gehe ich nun so zu Werke:
An der Stelle
kommt die Exception:
MissingMethodException: Der Einstiegspunkt 'Hello' in der PInvoke-DLL 'TestDll.dll' wurde nicht gefunden.
Wie muss ich die C++-Klasse (-Methode) denn deklarieren, damit sie als Einstiegspunkt erkannt wird? Ich dachte __declspec(dllexport) bewirkt genau dieses.
Vielen Dank für jeden Hinweis!
Gruß,
Knut
Vorweg: Ich bin noch etwas unerfahren, was C++ angeht.
Ich habe folgendes Problem:
Ich möchte in C++ (Visual C++ aus VS 2005) eine mfc-dll erstellen, die ich dann in ein VB.net-Projekt einbinde (kein Verweis) und mit Declare Function in VB.net zugreifen möchte. Mein Code in C++ (Auschnitt):
Code:
//TestDll.h class __declspec(dllexport) TestDll : public CWinApp { public: TestDll (); ~TestDll (); LPCWSTR Hello(); }; //TestDll.cpp LPCWSTR CTest_DLL_CPPApp::Hello() { return (LPCWSTR)"Hello World"; }
Code:
Declare Function Hello Lib "TestDll.dll" Alias "Hello" () As String Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Dim a As String a = Hello() MsgBox(a) End Sub
Code:
a = Hello()
MissingMethodException: Der Einstiegspunkt 'Hello' in der PInvoke-DLL 'TestDll.dll' wurde nicht gefunden.
Wie muss ich die C++-Klasse (-Methode) denn deklarieren, damit sie als Einstiegspunkt erkannt wird? Ich dachte __declspec(dllexport) bewirkt genau dieses.
Vielen Dank für jeden Hinweis!
Gruß,
Knut