dll(c++) in vb Aufrufen/Benutzen
-
Moin
habe eine dll in c++ geschrieben, welche ich nun unter vb6 benutzen möchte.
Beim Aufruf der Funktion erhalte ich den Meldung das der Einstiegspunkt nicht gefunden werden kann.
Also hier mal der Quellcode, vielleicht sieht ja jemand den FehlerDll:
#include "stdafx.h"
#include
#include
#define DLLExport _declspec(dllexport)DLLExport double SquareRoot(double d);
// Ein- und Austiegspunkt für 32 Bit-DLL
BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
{
return 1;
}DLLExport double SquareRoot(double d)
{
if (d >= 0.0) {
return sqrt(d);
}
return 0.0;
}vb deklaration:
Declare Function SquareRoot Lib "D:\VisualBasic\test2.dll" (ByVal d As Double) As Doublevb Aufruf:
Private Sub Command1_Click()
Dim Wert As Double
Wert = 0.64
lblErgebnis = SquareRoot(Wert)
End SubBesten Dank für eure Hilfe
jma
-
Setzt mal ein extern "C" vor die DLLExport's
Grüße Rapha
-
hi,
in vb wird doch immer noch beim declare dieses "alias" oder so benutzt, damit kannste den Einstiegspunkt angeben.
z.B.
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongDu kannst mit dem Tool "Dependency Walker" das dem Visual Studio beiliegt, sehen wie der Einstiegspunkt heißt in der Dll (der jeweiligen Funktion).