PCharについて

解決


るるとん@K  2004-05-22 00:10:58  No: 9085

PCharってCharのポインタ版ですよね?
なんでCharに文字列は代入できないのに、ポインタ型のPCharではできるんですか?


るるとん@K  2004-05-22 00:12:46  No: 9086

分かりました
PCharは勝手に#0までの配列になってくれるわけですね


jok  2004-05-22 03:21:01  No: 9087

> PCharは勝手に#0までの配列になってくれるわけですね

違います。string 型の変数がポインタだからです。


るるとん@K  2004-05-23 01:12:38  No: 9088

そうなんですか
ではPStringとPCharの違いは何なのでしょうか?


るるとん@K  2004-05-23 03:06:45  No: 9089

題名とずれますが、以下のソースでエラーがでるのはなんででしょうか?
PStringをNewしてそれをIntegerにしてInttoStrしたものをパラメータの2番目にし、Shellなんとかでアプリを呼び出します。
↓呼び出される側のソース
var
Cont:PString;
PI:Integer;
begin
//略
PI:=StrToInt(ParamStr(2));
Cont:=Pointer(PI);//エラー場所
ShowMessage(Cont^);
Dispose(Cont);
//略
end;
何故でしょうか?
自分で試せば良いいのですが、メモリがなくなってくるので..


ふぐちゃん  2004-05-23 04:16:12  No: 9090

> PStringをNewしてそれをIntegerにしてInttoStrしたものをパラメータの2番目にし、
> Shellなんとかでアプリを呼び出します。
「Shellなんとか」はShellExecuteかShellExecuteExのことだと思いますが、
別プロセスにいきなりアドレスを渡すことはできません。
プロセス間通信について勉強されるとよいでしょう。
面白いですよ。

> ではPStringとPCharの違いは何なのでしょうか?
ヘルプの「文字列から PChar への変換」以降が参考になると思います。


るるとん@K  2004-05-23 05:19:25  No: 9091

調べたら色々分かりそうです
有り難うございましたn(_ _)n


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加