コンパイラがにキャストするときに、ある種の魔法を実行することをよく読みますPChar。
の主な目的はPChar、ゼロで終了する文字配列(Cスタイルの「文字列」)を期待するライブラリ内の外部コードを呼び出すことです。
PCharPWideCharUnicode Delphiではのエイリアスであり、PAnsiChar非UnicodeDelphiではのエイリアスであるタイプです。
一方、 Delphi文字列(string= AnsiString/ 、ここでUnicodeStringは話していませんが、 ...は言うまでもありません)には、終了文字ではなく非表示の長さがあります。また、参照カウントされ、コピーオンライトを使用します。WideStringShortString
PChar(PAnsiChar / PWideChar)へのキャストを容易にするために、Delphi文字列は自動的に割り当てられ、暗黙の#0文字で1文字長く保たれますか、またはコンパイラは、への変換が発生したときに文字列をチェックして調整しPCharますか?