Hallo,
ich hab hier ein Problem, bei dem ich nicht weiterkomme.
Ich hab hier eine
DLL, die in Delphi genutzt werden soll. In VB und C# läufts.
Doku habe ich zu der
DLL nicht.
Unter Delphi liefern 2 Funktionen falsche Werte (verglichen mit VB, C#). Das hat mich dazu gebracht, die Funktionen und Parameter genauer zu betrachten.
Dabei bin ich schließlich bei implib gelandet. Ich hab aber keine Ahnung, was mir das sagen soll (und implib schmeißt Warnungen wg doppelter Symbole):
Code:
LIBRARY mylib.dll
EXPORTS
GetID @1 ; GetID
Go @2 ; Go
Init @3 ; Init
GetID = _GetID@4
Go = _Go@4
Init = _Init@0
Dynamisch eingebunden bekomme ich lediglich falsche Werte zurück, statisch eingebunden gibts zusätzlich eine
AV, wenn ich die Funktion verlasse, die die
DLL ruft.
Was spricht gegen "doppelte Symbole" ? Ich hätte ohne Vorkenntnis vermutet, dass das die Rückgabewerte sind. Das wäre aber nicht wirklich ein Warngrund, oder?
Entsprechen die @ Werte der "Index" Angabe bei statischem Link in Delphi?
Code:
vb
Declare Function Init Lib "mylib.dll" () As Long
Declare Function Go Lib "mylib.dll" (ByVal x As Long) As Long
Code:
delphi
function Init() : Integer; external 'mylib' ;
function Go(byVal : Integer) : Integer; external 'mylib' ;