![]() |
Array of String nach und von DLL
Hi!
Ich übergebe Strings zwischen Programm und DLL immer als Pointer und Größenangabe, d.h.
Delphi-Quellcode:
Der String wird dann so "geholt":
type
Pstr = ^String; . . . function test(P_Str: PStr; Size: Cardinal); ...
Delphi-Quellcode:
Das funktioniert auch wunderbar :wink: Jetzt will ich aber ein dynamisches "Array of String" (kein ShortString!) übergeben.
CopyMemory(@s,P_Str,size);
Geht das einfach so? Und wie ermittle ich die Größe des Arrays? Weil SizeOf() gibt seltsamerweise die Anzahl der Elemente zurück :gruebel: Dankeschön im Voraus gruß mr47 |
Re: Array of String nach und von DLL
Übergib das besser als PChar( C-String) bzw einem Array davon
|
Re: Array of String nach und von DLL
Du meinst so:
Delphi-Quellcode:
?
function test(P_Str: PChar; Size: Cardinal);
//und CopyMemory(@s,P_Str,size); Wenn ich das mache, bekomme ich ne AV Bei einem Aufruf mit:
Delphi-Quellcode:
var x: PChar;
begin x := '123'; test(x,sizeOf(x)); end; |
Re: Array of String nach und von DLL
Delphi-Quellcode:
var x: String;
begin x := '123'; test(PChar(x),sizeOf(x)); end; |
Re: Array of String nach und von DLL
Ok, das scheint zu funktionieren, danke! Aber nochmals ne Verständnisfrage: Was ist denn jetzt PChar? Ist es ein Zeiger?
mr47 |
Re: Array of String nach und von DLL
Zitat:
|
Re: Array of String nach und von DLL
Zitat:
|
Re: Array of String nach und von DLL
Ok, vielen Dank! Das mit dem Array funktioniert auch!
@Elvis: Ich hab die D7-Hilfe durchgewühlt, wobei ich diese Aussage so klar nirgendwo gesehn hab. Sonst hätte ich nicht gefragt. grüße, mr47 :wink: |
Re: Array of String nach und von DLL
Zitat:
|
Re: Array of String nach und von DLL
Oh, ok, daran hab ich nicht gedacht!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 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