Einzelnen Beitrag anzeigen

Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Programmversion in DLL

  Alt 28. Jun 2017, 11:19
Result := PChar(ver); Eine lokale Variable so zu verwenden ist ungünstig.
In deinem Fall wird die Adress nicht gleich überschrieben werden, aber eigentlich zeigt der Pointer nach Verlassen der Funktion auf einen ungültigen Speicherbereich.
Ja das ist total falsch, niemals einen Speiecherbereich so in Dll's übergeben.
Besser:

Delphi-Quellcode:
function getDllVersion(Buffer : Pchar; bufsize : integer) : integer;
begin

// Hier den buffer mit maximal bufsize füllen
//strpcopy oder was auch immer

end;
hat den Vorteil das auch über das Result auf zu kleinen Buffer oder sonstige Problem hingewiesen werden kann
Fritz Westermann
  Mit Zitat antworten Zitat