[Delphi]文字列の暗黙的なキャスト警告を消す方法

 

※全てのDelphiで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

サンプル ※説明に必要な部分しか記述していません。

procedure TForm1.Button1Click(Sender: TObject);

//警告 文字列の暗黙的なキャスト を消す方法の一例

var
    Dest: array[0..255] of WideChar;
    w_str: String;

begin


//【A】
    StrPCopy(Dest, PAnsiChar('AnsiChar'));


//【A】の方法ではコンパイルまたは再構築した時にエラーにはならないものの

//[DCC 警告] W1057 文字列の暗黙的なキャスト('AnsiChar' から 'string')

//という警告文が表示されます。

//警告文が気になる場合は下の【B】の方法で警告を消すことができますが、【B】は一例であり方法は複数あると思われます。


//【B】
    w_str := string(PAnsiChar('AnsiChar'));
    StrPCopy(Dest, w_str);

end;

・string() については
http://docwiki.embarcadero.com/RADStudio/Seattle/ja/W1057_%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E6%9A%97%E9%BB%99%E7%9A%84%E3%81%AA%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88_(‘%25s’_%E3%81%8B%E3%82%89_’%25s’)_(Delphi)
をご覧下さい。

一部引用
コンパイラが、AnsiString(または AnsiChar)を、Unicode のなんらかの形式(UnicodeString または WideString)に暗黙的に変換しなければならないケースを検知した際に、この警告がでます。 この警告を避けるには、明示的に型キャストする必要があります