64bit環境でのVirtualAllocExについて – プログラミング – Home

通知
すべてクリア

64bit環境でのVirtualAllocExについて


Kawamura
 Kawamura
(@Kawamura)
ゲスト
結合: 12年前
投稿: 1
Topic starter  

お世話になります。

Windows 7(64bit), Visual Studio 2010 Pro

他のプロセスのアドレス空間にメモリを割り付ける「VirtualAllocEx」というAPIがあり
ますが、これは64bit環境のOSでも正しく動作することが保障されているのでしょうか?

例えば、自分のアプリが32bit(WOW64)で、メモリを割り付ける対象のプロセスが64bitの
アプリの場合、逆に自分が64bitで対象のプロセスが32bitの場合。

このような場合に、VirtualAllocExで割り付けたメモリにWriteProcessMemoryや
ReadProcessMemoryでアクセスできるのでしょうか?

デバッグした感じでは、正常に動いているように見えるのですが、
たまたまうまくいっているのか、、、と不安になります。

何かご存知の方がいましたらアドバイスをお願い致します。


引用解決済
トピックタグ
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

コンパイル等の設定は、64BITになっていますか?
PCに搭載しているCPUがAMDか,INTELかによっても設定が違うみたいです。
コンソールモードにして、CC.EXE/CL.EXE/LINKの実行画面でわからないでしょうか。
僕は、Visual Studio 2010を持ってないので詳しくはわかりません。


返信引用
yoh2
 yoh2
(@yoh2)
ゲスト
結合: 13年前
投稿: 7
 

横から失礼します。
本題とはずれた部分についてですが、

> PCに搭載しているCPUがAMDか,INTELかによっても設定が違うみたいです。

これ、もう少し情報ありますか?
Intel、AMD両方の環境でVS使ってますが全く知らなかったので、何か見落としているのかと
不安になりました。
もしかしてIA-64 (要するにItanium) と 広義のAMD64 (Intel64も含んだ表現。x64やx86-64
と同義) のことだったり?

# 念のため確認。VirtualAllocExの挙動の話ではなくVisual Studioの設定の話ですよね。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> もしかしてIA-64 (要するにItanium) と 広義のAMD64 (Intel64も含んだ表現。x64や
> x86-64と同義) のことだったり?
そうです。
 昔は、AMD64はAMD系のみだったと思います。

># 念のため確認。VirtualAllocExの挙動の話ではなくVisual Studioの設定の
> 話ですよね。
そうです。
VirtualAllocExうんぬんの前に、64bitの設定がきちんと確認しておきたいと思いまし
た。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

ん?
なんか文章がおかしい(^^;
 VirtualAllocExうんぬんの前に、64bitの設定がきちんと出来ているか確認しておきた
  いと思いました。
です。(^^;


返信引用
yoh2
 yoh2
(@yoh2)
ゲスト
結合: 13年前
投稿: 7
 

> > もしかしてIA-64 (要するにItanium) と 広義のAMD64 (Intel64も含んだ表現。x64や
> > x86-64と同義) のことだったり?
> そうです。
> 昔は、AMD64はAMD系のみだったと思います。

なるほど。すっきりしました。
IA-64でコンパイルした場合、x64プロセッサでは動きませんし、同様にx64バイナリはIA-64
プロセッサでは動かないのでここを間違えた場合は即分かるのではないかと思います。x86
バイナリはどちらでも動きますが。
さらに、Visual Studio 2010 Proの場合、IA-64用コンパイラは含まれていませんので、IA-
64とx64の設定間違いはほぼ気にしなくてよいかと。

# 元質問者様へ:
# 元々の質問に関しては分からないのでコメントできていません。
# 質問を乗っ取ったような形になってしまい申し訳ありません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました