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