[Delphi]System.PWideCharの記述例・備忘録
トップページへ
※全てのDelphi(楽天市場で探す ・ amazonで探す)で動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます
変数のString型と固定のString型を結合し、それをPWideChar型に代入する場合の記述サンプルです。あくまでも私的な備忘録で、これよりももっと安全なコードがあると思われます。
var NewDrv: String; begin NewDrv := 'D:\'; //pFrom が PWideChar の時 foStruc.pFrom := PWideChar(NewDrv + '*.*'); //代入先によっては #0 を付加 foStruc.pFrom := PWideChar(NewDrv + '*.*' +#0);
■System.PWideCharのヘルプには
type PWideChar = ^Char;
・NULL で終わる Unicode 文字列を表します。
・PWideChar は、WideChar 値(#0 文字を含む)が格納されたメモリ上の場所を指すポインタを表します。
・Delphi では、string や WideString から PWideChar 値を取得することができるため、NULL で終わる Unicode 文字列を想定している C や C++ のアプリケーションとシームレスに統合することができます。
メモ: PWideChar と通常の string 値を組み合わせて使うことは本質的に安全でありません。 PWideChar では、参照カウントもコピーオンライトも行われません。 そのため、string 値の破損やメモリ リークが起きる可能性があります