Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#1

Probleme mit pchar oder Typecast

  Alt 24. Dez 2009, 08:07
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat