[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 値の破損やメモリ リークが起きる可能性があります

 






関連記事
[Delphi]名前が日付のフォルダを作る・備忘録

[Delphi]TWebBrowserを含むアプリでエラーの時, IEのバージョンを変えたい時

[Delphi]DayOfWeekなど日付から曜日を表示

[Delphi] IncDay・IncHour 日付や時刻の加算減算

[Delphi]DaysBetween・HoursBetween日付や時刻の間隔を知る