Announcement

Collapse
No announcement yet.

Einstiegspunkt nicht gefunden (C++-MFC-DLL in VB.Net)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einstiegspunkt nicht gefunden (C++-MFC-DLL in VB.Net)

    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):
    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";
    }
    In VB.Net gehe ich nun so zu Werke:
    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
    An der Stelle
    Code:
    a = Hello()
    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
Working...
X