プロが教えるわが家の防犯対策術!

投稿カテゴリに.NETの言語のカテゴリが無いのが
残念ですが、.NET言語に関する質問をさせてください。

C#でWin32アプリとやり取りするアプリケーションを
作っていて、プログラム内でメモリ確保をする必要があります。
Marshal.AllocCoTaskMem()とMarshal.AllocHGlobalが()
ありますが、これらは動作にどのような違いがあるのでしょうか。

ヘルプなどを読みましたが、よく分かりませんでした。。

A 回答 (2件)

あ、言い方を変えると


Marshal.AllocCoTaskMem()
タスク終了時に開放されるメモリ領域
Marshal.AllocHGlobalが()
タスク終了しても開放されないメモリ領域
の違いでは?
通常はMarshal.AllocCoTaskMemを使えば良いんだろうと思います。
まったく知らないので全部想像ですが^^;
    • good
    • 0
この回答へのお礼

教えていただき、なるほど~って思いました。
たぶんそれだと思います。ありがとうございました!

お礼日時:2007/01/20 18:38

C#やWin32はまったく知りません。


が、
関数の名前から想像するに
TaskMemはその動いているタスク内で有効なメモリ領域
Globalは複数タスクで同時にアクセス可能なメモリ領域
であろうと想像できます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!