AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array of String nach und von DLL

Ein Thema von mr47 · begonnen am 4. Jan 2007 · letzter Beitrag vom 4. Jan 2007
Antwort Antwort
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#1

Array of String nach und von DLL

  Alt 4. Jan 2007, 19:21
Hi!

Ich übergebe Strings zwischen Programm und DLL immer als Pointer und Größenangabe, d.h.
Delphi-Quellcode:
type
  Pstr = ^String;

.
.
.
function test(P_Str: PStr; Size: Cardinal);
...
Der String wird dann so "geholt":
CopyMemory(@s,P_Str,size); Das funktioniert auch wunderbar Jetzt will ich aber ein dynamisches "Array of String" (kein ShortString!) übergeben.
Geht das einfach so? Und wie ermittle ich die Größe des Arrays? Weil SizeOf() gibt seltsamerweise die Anzahl der Elemente zurück

Dankeschön im Voraus

gruß mr47
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:24
Übergib das besser als PChar( C-String) bzw einem Array davon
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:36
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:43
Delphi-Quellcode:
var x: String;
begin
  x := '123';
  test(PChar(x),sizeOf(x));
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:51
Ok, das scheint zu funktionieren, danke! Aber nochmals ne Verständnisfrage: Was ist denn jetzt PChar? Ist es ein Zeiger?

mr47
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:52
Zitat von mr47:
Ok, das scheint zu funktionieren, danke! Aber nochmals ne Verständnisfrage: Was ist denn jetzt PChar? Ist es ein Zeiger?
Halte mal Steuerung gedrückt und klicke dann auf PChar.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:53
Zitat:
Ist es ein Zeiger?
Ja eine Zeiger auf ein Zeichen (1.Zeichen der Zeichenkette)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 19:58
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
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 20:02
Zitat von mr47:
@Elvis: Ich hab die D7-Hilfe durchgewühlt, wobei ich diese Aussage so klar nirgendwo gesehn hab. Sonst hätte ich nicht gefragt.
Deshalb ja Ctrl+Click. Genauer und knapper als "PChar = ^Char;" wirst du es wohl so schnell woanders nicht bekommen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Array of String nach und von DLL

  Alt 4. Jan 2007, 20:06
Oh, ok, daran hab ich nicht gedacht!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz