Habe hier VB-Source die eine C-
Dll aufruft und habe Probleme bei der Übersetzung.
Delphi-Quellcode:
Public Declare Function VB_GetModuleName Lib "USBRadio.dll" (ByVal sNameBuffer As String, ByRef iNameLenght As Integer) As Long
Public Function WVB_GetModuleName() As String
Dim sBuffer As String * 256
Dim iBufferLen As Integer
Dim lRet As Long
lRet = VB_GetModuleName(sBuffer, iBufferLen)
If lRet = 0 Then
WVB_GetModuleName = Left(sBuffer, iBufferLen)
End If
Übersetzt habe ich es so, aber ich bekomme eine Zugriffsverletzung von der
Dll:
Delphi-Quellcode:
TFNVB_GetModuleName = function(var buf: string; var size: Integer): Integer; stdcall;
var
iDummy: integer;
size: integer;
strDummy: string;
begin
SetLength(strDummy, 256);
iDummy := VB_GetModuleName(strDummy, size);
if IDummy = 0 then
begin
LeftStr(strDummy, size);
OutputDebugString(PChar(strDummy));
end;
end;
In VB funktioniert der Aufruf, habe ich getestet.
Wal