Einzelnen Beitrag anzeigen

Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#1

Brauche Hilfe bei Übersetzung VB - C - Delphi

  Alt 9. Aug 2008, 22:17
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
  Mit Zitat antworten Zitat