Einzelnen Beitrag anzeigen

Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: PChars mit Null Bytes von DLL zu Programm übergeben

  Alt 27. Mär 2008, 09:08
luckie: das hab ich durchgelesen und getestet aber bei dir wird auch bei #0 abgschnitten:
wenn du in deiner dll-datei anstatt
foo := 'foo' + s;
foo := 'foo' + #0 + s;
schreibst (also so als wäre da halt irgendwo innem hash oder so ein nullbyte drin) dann gibt dein programm aus:
hlib: 2293760
@func1: 2327988
len: 7
foo [7]

also er weis halt dass es 7 zeichen sein sollten, der pchar (den du ja wie ich letztendlich einfach mit string(pchar('foo'#0'bar')) castest) wird halt nach "foo" abgeschnitten.
und wie bei dir übertrage ich ja die länge auch noch in nem extra parameter deswegen weis mein programm ja auch wie lang sein pchar sein sollte, hab diese angabe aber bisher halt nur noch nicht verwerten können.

bei meiner funktion gibts nie einen fehler beim beenden, aber wenn der string den die dll übergibt länger als 146 zeichen ist dann gibts wenn ich es 2. mal auf button1 klicke (der des zeugs was unter hauptprogramm steht ausführt) ne zugriffsverletzung...
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat