Einzelnen Beitrag anzeigen

Blatt

Registriert seit: 8. Sep 2010
17 Beiträge
 
#3

AW: Strings in Delphi in DLL

  Alt 21. Okt 2010, 10:38
Ich habe den Code mittlerweile geändert, aber den Fehler gerade rekonstruiert:

Delphi-Quellcode:
type
  Pfoo = ^foo;
  foo = record
    other: Word;
    buf: Array of Char;
  end;

procedure test(buf: PChar);
var
  bar: Pfoo;
  lol: string;
begin
  bar := Pfoo(buf);
  lol := String(@bar.buf);
  lol := Parse(':', lol, 2);
  if Parse(' ', lol, 1) = 'hellothen
    MessageBox(0,0,0,0);
  MessageBox(0,PChar(lol), PChar(Parse(' ', lol, 1)),0);
end;
Wenn buf gleich 'x:hello' ist, erscheint die erste MessageBox nicht (die zweite zeigt 'hello' und '' im Title an), da Parse '' zurückgibt, wobei es eigentlich 'hello' sein sollte. Und wenn buf gleich 'x:hello 3' ist, stürzt das Programm ab.

Parse ist von hier:
http://www.delphipraxis.net/151836-s...r-zaehlen.html

Geändert von Blatt (21. Okt 2010 um 11:08 Uhr)
  Mit Zitat antworten Zitat