2013/2/23 (土) 12:26:50 Mr.XRAY |
こんなページ,記事を見つけました.
http://drang.s4.xrea.com/program/tips/memo/char.html
>どうやらChar型の文字をPCharでキャストするのはNGなようで
ということです.
Char というのは,1文字の要素です.
array[0..10] of Char;
とかで使います.一方,String型は,
[Delphi 2009 と 文字列型]
http://edn.embarcadero.com/jp/article/38791
のように,まさに,文字列型として定義されています.
つまり,String型というのは,文字列としての情報も格納されています.
Charは「文字列」ではありません.
ShellExecuteの第4引数に与えるのは,Null終端の「文字列」です.
「文字(要素)」ではありません.
PChar(文字列) とすると,「文字列」をNull終端文字列にしてくれます.
素直にString型をPCharでキャストして渡すのがいいですね.
もちろん,いろいろな疑問に挑戦することは必要なことだと思います.
ちなみに,'A'のようにして渡した場合,Delphiでは,
これを「文字」(Char)ではなく「文字列」(String)として解釈してくれます.
|
|