Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Eigene Daten in PChar übergeben...

  Alt 2. Mär 2004, 13:13
Genaugenommen ist ein PChar ein Zeiger auf ein Zeichen. In der Regel wandern in C geschriebene API-Funktionen nun solange da durch, bis sie eine 0 finden. Dann gilt für sie der String als beendet.
Es gibt aber auch Fälle, in denen eine 0 durchaus Bestandteil eines Strings sein darf. Beispiel MySQL-API: Dort gibt es für Querys die Funktionen mysql_query und mysql_real_query. Der Unterschied ist folgender: Bei mysql_query wird erwartet, dass der Zeiger auf einen nullterminierten String zeigt, deshalb ist keine Angabe der Größe erforderlich. Bei mysql_real_query dagegen muss die Länge des Strings mitübergeben werden, deshalb darf der String aber auch Nullen enthalten.

Oder bei der WinAPI-Struktur OPENFILENAME: Bei den Filtereinstellungen wird ein Zeiger übergeben, der auf eine Reihe von nullterminierten Strings zeigt. Das Ende wird dadurch gekennzeichnet, dass dort 2 Nullen stehen müssen.


Edit: Jetzt, wo ich mir das oben durchlese, merke ich, dass das etwas undurchsichtig war. Das sollte jetzt klarer sein
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat