Hallo!
Mit Literatur und Internet wollte ich eine DLL in C++ programmieren. Dazu habe ich Neu -> Projekt -> Win32-Projekt gewählt. Dort dann die Option DLL und zwar eine leere. Dort habe ich eine C+±Quelltextdatei und eine DEF-Datei eingefügt. Quelltext anbei. Die fehlerfrei kompilierte DLL, habe ich dann mit einer Basic-Anwendung testen wollen. Eine Standardbasic-Projekt habe ich ein Modul hinzugefügt und dort die DLL wie folgt eingebunden:
Declare Function Rechnen Lib „C:\TestDLL.dll“ (ByVal Zahl_a As Long, ByVal Zahl_b As Long) As Long
Der Pfad stimmt auf jeden Fall! Und die Basic-Anwendung selbst sieht so aus:
Private Sub Form1_Load()
Dim Speicher As Long
Speicher = Rechnen(3, 7)
Me.Text = CStr(Speicher)
End Sub
Beim Testen bekomme ich dann folgende Fehlermeldung:
An unhandled exception of type ‚System.EntryPointNotFoundException‘ occurred in WindowsApplication1.exe
Additional information: Unable to find an entry point named Rechnen in DLL C:\TestDLL.dll.
Was läuft da schief?
Jetzt noch der DLL-Quelltext:
#include
extern „C“ __declspec(dllexport) long _stdcall Rechnen(long Wert_a, long Wert_b);
BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReason){
return TRUE;
}
long Verarbeitung (long Wert_1, long Wert_2){
return Wert_1 + Wert_2;
}
extern „C“ __declspec(dllexport) long _stdcall Rechnen(long Wert_a, long Wert_b){
return Verarbeitung(Wert_a, Wert_b);
}
Und das steht in der DEF-Datei:
; Externer Name der DLL:
LIBRARY „TestDLL“
; Hier stehen die Funktionen, die öffentlich sind:
Exports
Rechnen @1
Hat jemand eine Idee warum das nicht tut?
Christian