Hi,
ich stehe vor einem kleinen Rätsel:
Delphi-Quellcode:
var b,b1:UTF8String;e:pchar;A0: array[0..79] of Char;
.
.
b:=UTF8Encode('select * from tbl1'+#0);
b1:=UTF8Encode(edit1.text+#0);
e:=StrPCopy(a0,b1);
s:=(QtTestDll_Sqlite(pchar('D:\Test.db'+#0),e,@zielfunktion1));
Was ist der Unterschied wenn ich 'select * from tbl1' direkt hinschreibe oder wenn ichs aus dem Editfeld hole.
Ich übergebe das Ganze an eine C-
DLL. Dort ist der Parameter mit char* deklariert.
Wenn ich das Ganze aus dem Editfeld hole (dort steht das gleiche drin) kommt bei der C-Funktion nur Mist an.
Im Debugger sehen beide, bis zum Funktionsaufruf gleich aus.
Habe die
DLL so umkopiliert, dass sie den String zurückgibt: bei der Version bei der ich edit.text nutze fehlt die #0,
d.h. der String wird solange verlängert bis eine #0 auftaucht.
Die #0 habe ich jeweils nicht aus Sicherheitsgründen dahintergesetzt.
So ganz verstehe ich das nicht.
Frohe Weihnachten
Rainer