![]() |
DLL Procedure - String übergeben
Gibt es eine Möglichkeit ein beliebigen String an eine DLL Funktion zu übergeben?
In meiner DDL die Procedure :
Delphi-Quellcode:
Der Aufruf :
procedure TestDLL(aString : pchar) ; external ; stdcall;
begin ShowMessage(aString); end;
Delphi-Quellcode:
Die Meldung erscheint mit "Glyphen" und dannach folgt eine exception....
TestDLL(pChar('test'));
Gibt es dabei etwas zu beachten ? Gruß, Real-TTX |
Re: DLL Procedure - String übergeben
Also eigentlich dürfte dieses funktionieren ... hast du auch beie Funktionsdefinitionen gleich? (vorallem das stdcall)
Ansonsten könntest du auch einfach einen WideString nehmen, dieser wird von Delphi intern auf einen OLEStr umgeleitet, womit er über den Speichermanager der ole32.dll läuft und demnach auch über Modulgrenzen hinweg verwendet werden kann. Oder du verwendet einen SharedManager und kannst dann auch "normale" Strings/AnsiStrings verwenden. Ja und zu dem PChar ... da könntest du es mal über eine lokale Variable versuchen
Delphi-Quellcode:
var s: String;
s := 'test'; TestDLL(PChar(s)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 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