Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Dynamische DLL Funktion bringt nur Fehler

  Alt 11. Okt 2008, 21:01
Du reservierst ja gar keinen Speicher für "data".
probier mal:
Delphi-Quellcode:
var
data : Ansistring; // <== geändert !
begin

  sDLLPath := ExtractFilePath(Application.ExeName) + 'SoftPlug.dll';
  hDLL := LoadLibrary(pChar(sDLLPath));
  if hDLL = 0 then begin
    // Exceptions sind viel besser als ShowMessage + Exit
    raise Exception.Create('DLL Softplug.dll konnte nicht geladen werden.');
  end;

  FarProcName := GetProcAddress(hDLL, 'Soft_name');
  if Assigned(FarProcName) then
  begin
    SetLength(data, 200); // grosszügig Speicher reservieren
    FarProcName(PChar(data), Length(data));
    data := PChar(data); // String verkürzen, bis das erste #0-Zeichen auftaucht
    ShowMessage('data='+data); // data anzeigen
  end
  else
    raise Exception.Create('Funktion Soft_name nicht gefunden');
  Mit Zitat antworten Zitat