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...