AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein String aus D5 DLL in Delphi 10.2 einslesen
Thema durchsuchen
Ansicht
Themen-Optionen

String aus D5 DLL in Delphi 10.2 einslesen

Ein Thema von kmma · begonnen am 15. Jul 2019 · letzter Beitrag vom 18. Jul 2019
 
jziersch

Registriert seit: 9. Okt 2003
Ort: München
258 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: String aus D5 DLL in Delphi 10.2 einslesen

  Alt 15. Jul 2019, 14:28
Zitat:
Die sauberte Lösung wäre (falls Du D5 noch verfügbar hast) für diese DLL eine Wrapper-Dll zu bauen, die wie eine Windows API-DLL alle exportierten Funktionen mit stdcall calling convention und ausschließlich unter Verwendung von API-kompatiblen Datentypen für Parameter und Rückgabewerte deklariert.
Das ist ein super Vorschlag und dürfte im Hinblick auf die StringList die einzig gangbare Lösung sein.

Mein Pointer Ansatz geht leider nicht wie gedacht. Man kann die Funktion nicht einfach anders deklarieren. Das gibt sofort einen crash.

Ich hatte mir das so gedacht:

Code:
function ExportString: AnsiString; external '..\..\Project1.dll'; // oder stdcall

procedure TForm1.Button1Click(Sender: TObject);
var s, s2 : AnsiString;
    pa : PAnsiChar;
    p : PInteger;
begin
   s := ExportString;
   pa := PAnsiChar(s);
   p := PInteger(pa);
   dec(p); // Length
   SetString(s2, pa, p^);
   Edit1.Text := s2;
   dec(p); // RefCount
   p^ := p^ + 1; // Verhindere Free auf den String
  FreeMem(p); // String freigeben
end;
Es geht, aber k.A. ob es hier ein Speicher loch gibt.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz