hi!
Vb findet den einsprungspunkt nicht weil der exportname der funktion in der Dll vorne einen underscore bekommen hat und hinten dran ein @ mit einer ordinalzahl.
Beispiel: _MyFunc@12
Du kannst dir den richtigen namen der funktion anschauen wenn du mit rechter maustaste auf die datei clickst und auf schnellansicht gehst. Oder du übergibst dem linker den schalter "/MAP". Dann wird eine name.map datei erzeugt in der alle import und export dateien aufgelistet werden.
(such einfach nach deiner)
IMHO ist die beste methode jedoch eine def datei zu erstellen und dort einen export namen anzugeben (und man ersparrt sich dadurch auch _declspec(dllexport) ).
Beispiel:
//mydll.c
//Funktion die exportiert werden soll
// extern "c" und _stdcall sind wichtig sonst funktionierts in vb nicht
extern "C" double __stdcall AddIt(int a, int b)
{
return a+b;
}
---------------------------------------
//mydll.def
LIBRARY MYDLL
DESCRIPTION "Exportiert addit" //beschreibung
EXPORTS // export section
Addit =_AddIt@8 // externer name = name aus der map datei bzw. von schnellansicht
ich hoffe ich hab mich verständlich ausgedrückt und das es dir weiter hilft. (Ich hab lang gebraucht bis ich meine erste selbstgeschriebene dll in vb verwenden konnte)
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|