Visual Studio 2008を使用していますが、この警告について質問があります。
ライブラリの1つで、「固定ベースアドレス」フラグ(/ FIXED)を設定し、固定ベースアドレスを定義しています。
コマンドで共有セクションを宣言します
#pragma comment(linker,"/SECTION:FOO,RWS")
#pragma data_seg("FOO")
/ FIXEDフラグを削除すると、警告が表示されます
リンク:警告LNK4092:共有書き込み可能セクション「FOO」に再配置が含まれています。画像が正しく動作しない場合があります
このフラグを使用すると、実行可能ファイルからロードするときにdllが再配置される可能性があることを理解しています。今、私は理解していません。これらの共有セクションが再配置されないことが重要なのはなぜですか?それらのアドレスは、各プロセスで仮想ではありませんか?
再配置を許可し、共有セクションを持つ方法はありますか?ライブラリインターフェイスを変更した後、これに問題が発生しました。将来、開発者がこれらの結果を知らずにこのライブラリを変更した場合は、これを回避したいと思います。
これがどのように機能するかも興味があります。/ SECTIONフラグと4092警告のMSDNAページは、ここではあまり役に立ちません。