6

Visual C ++に、メモリ内の特定の絶対アドレスにグローバル変数を配置するように静的に指示するにはどうすればよいです__attribute__((at(address)))

4

1 に答える 1

1

それは可能ですが、事前に定義された方法があるとは思わないので、ある程度の実験が必要になります。ユーザーコードの実行の開始時に実行時に変数を作成した場合、あまりメリットはありませんが。

したがって、最初に、割り当てMS固有の指定子を使用して、変数を初期化するセクション/セグメントを指定します。次に、実際のシナリオでアプリケーションを起動するか、ダンプするか、デバッグして、変数が表示される場所を確認します。再配置に注意してください(再配置を強制しないようにする方法はいくつかありますが、常に尊重されるとは限りません)。もう1つの方法は、このようなアプリのコードを使用して、定義したセクションのアドレスを見つけることです。

何らかの理由で一貫した動作を得ることができない場合は、このユーティリティを使用してオブジェクトファイルの仮想アドレスを操作できます。途中のハードルを除いて全体として、しかし全体として、あなたが十分に粘り強いなら、あなたがあなたの特定のシナリオのためにそれを働かせることができない理由がわかりません。

于 2013-02-09T05:26:24.720 に答える