Einzelnen Beitrag anzeigen

R2009

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

Re: Probleme mit pchar oder Typecast

  Alt 24. Dez 2009, 08:40
Hi himitsu,
du hast dich wohl vertan, du meinst wohl nullterminierte Strings.
Für Delphistrings gilt deine Aussage nicht.
Delphistrings haben immer eine #0 am Ende. (es sei denn man verbiegt/umgeht absichtlich die interne Speicherverwaltung oder hat einen buffer overrun) ich übergebe als pchar*. Es ist also zunächst vollkommen unerbeblich ob das UTF8 oder sonst was ist.
Eigentlich habe ich gedacht, dass nullterminierte Strings in Delphi nullterminierteb Strings in C entsprechen.
Weit gefehlt.
In der DLL (C) kommt der nullterminierte String um eins nach rechts verschoben an.

Pascal:
a0:array[0..79} of char;
'T','e','s','t',#0

in C (DLL):
*,'T','e','s','t',#0

Ich muss dort also den ganzen Mist um eins nach links schieben.
Komischerweise funktioniert das solange ich #0#0 am Ende habe ansonsten nicht.

Hier die Funktion mit der ich verschiebe:

Code:
   void wtic_pascal(char* Dest,char* Source)
   {
   for(int i = 0; i <= strlen(Source)+1; ++i)
   Dest[i] = Source[i+1];
}

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