0

共有ライブラリの初期化を行うとどうなるかについて読んでいます。概念はすべてうまくいっていますが、メモリがどのように割り当てられているか、プログラム内でのスコープが不明です。

たとえば、スタックまたはヒープの DLLMain (process_attach または thread_attach のいずれか) で整数を作成するとします。その整数はプログラムのグローバルスコープにありますか、それとも別の場所にありますか? のように、DLLMain の整数を new'd した場合、プログラムでグローバルにアクセスできるのでしょうか、それとも特別にメインまたはその他の奇妙なケースにアクセスできるでしょうか? グローバルスコープでアクセスできる場合、それはすべてのスレッドがそのメモリにもアクセスできるということですか?

助けてくれてありがとう。

4

1 に答える 1

0

そのアドレスを知っているすべてのスレッドがそれにアクセスできます。すべてのスレッドは、仮想メモリの同じビューを持っています。仮想メモリにマップされると、すべてのメモリが同じように動作するため、どのアロケーターからのものであるかは問題ではありません。

于 2012-09-27T17:39:24.983 に答える