Ich habe den C++ Code aus Wikipedia
in den Bloodshed Dev-C++ Editor geschrieben und auf kompilieren geklickt (die DLL hat bei mir den Pfad: "H:\Sicherung_alter_cp\Sicherung -D-\FELIX\DevCode\testdll.dll")#include <windows.h>
#if defined(_MSC_VER)
#define DLL __declspec(dllexport)
#else
#define DLL
#endif
// nur unter MS VC das Symbol DLL definieren unter z.B. Linux wird DLL ignoriert
// Die Funktion, die anderen Programmen zur Verfügung gestellt werden soll
// (in diesem Beispiel: Addieren zweier Zahlen)
DLL
double AddNumbers (double a, double b)
{
return a + b;
}
Dann hab ich folgenden Code in PureBasic geschrieben:
Code: Alles auswählen
If OpenLibrary(0, "H:\Sicherung_alter_cp\Sicherung -D-\FELIX\DevCode\testdll.dll")
If ExamineLibraryFunctions(0)
Debug "Die DLL hat "+Str(CountLibraryFunctions(0))+" Funktionen"
While NextLibraryFunction()
Debug LibraryFunctionName()
Wend
Debug "Das war die letzte Funktion"
Else
Debug "Kann nicht untersucht werden"
EndIf
If IsFunction(0,"AddNumbers")
Debug "AddNumbers gibt folgendes aus:"
Debug CallCFunction(0,"AddNumbers",3,4)
Else
Debug "AddNumbers gibts nicht"
EndIf
CloseLibrary(0)
Else
Debug "Kann nicht geöffnet werden"
EndIf
Eigentlich hätte ich gerne, dass der mir die Namen der angeblich 64 Funktionen angibt. Und natürlich das AddNumbers funktioniert.Die DLL hat 64 Funktionen
Das war die letzte Funktion
AddNumbers gibts nicht
/edit:
vieleicht sollte ich das DLL im C++ Code direkt vor die Funktion schreiben? Wenn das so eine Art Typ ist?