PCharってCharのポインタ版ですよね?
なんでCharに文字列は代入できないのに、ポインタ型のPCharではできるんですか?
分かりました
PCharは勝手に#0までの配列になってくれるわけですね
> PCharは勝手に#0までの配列になってくれるわけですね
違います。string 型の変数がポインタだからです。
そうなんですか
ではPStringとPCharの違いは何なのでしょうか?
題名とずれますが、以下のソースでエラーがでるのはなんででしょうか?
PStringをNewしてそれをIntegerにしてInttoStrしたものをパラメータの2番目にし、Shellなんとかでアプリを呼び出します。
↓呼び出される側のソース
var
Cont:PString;
PI:Integer;
begin
//略
PI:=StrToInt(ParamStr(2));
Cont:=Pointer(PI);//エラー場所
ShowMessage(Cont^);
Dispose(Cont);
//略
end;
何故でしょうか?
自分で試せば良いいのですが、メモリがなくなってくるので..
> PStringをNewしてそれをIntegerにしてInttoStrしたものをパラメータの2番目にし、
> Shellなんとかでアプリを呼び出します。
「Shellなんとか」はShellExecuteかShellExecuteExのことだと思いますが、
別プロセスにいきなりアドレスを渡すことはできません。
プロセス間通信について勉強されるとよいでしょう。
面白いですよ。
> ではPStringとPCharの違いは何なのでしょうか?
ヘルプの「文字列から PChar への変換」以降が参考になると思います。
調べたら色々分かりそうです
有り難うございましたn(_ _)n
ツイート | ![]() |