トップページ > プログラム > 2015年05月04日 > VqP+6wea

書き込み順位&時間帯一覧

22 位/172 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000010023



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Win32API質問箱 Build120©2ch.net

書き込みレス一覧

Win32API質問箱 Build120©2ch.net
236 :デフォルトの名無しさん[sage]:2015/05/04(月) 20:58:25.12 ID:VqP+6wea
32bitOS上でもIsWow64Process関数はFALSEを返すが大丈夫か?
作っているアプリ自体が64bitっていうなら良いけど。
Win32API質問箱 Build120©2ch.net
239 :デフォルトの名無しさん[sage]:2015/05/04(月) 23:36:23.21 ID:VqP+6wea
>>237
Windows XP SP2以降はこの関数が存在しているらしい。
「関数が存在していなければ32bitOS」という判断は出来るが「関数が存在していれば64bitOS」という判断は出来ない。
また実機(WindowsXP SP2)でも過去に検証済み。

MSDN
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms684139.aspx

>If the process is running under 32-bit Windows, the value is set to FALSE.
>If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE.

そのサイトに書かれている方法は以下の文が肝。
>始めに利用者が起動するのは32bit版のプログラムです。
32bitアプリ実行環境においてIsWow64ProcessがFALSEを返すということは、ネイティブで実行されている。
逆にIsWow64ProcessがTRUEを返したならそれはWOW64の下で動いているということになる。
だから「必ず最初は32bitアプリを起動させて・・・」という方法を取れるならそのブログのようにIsWow64Processだけで判断も出来る。

>>238
result が FALSEってのがどのレベルで言っているのか分からんが
( IsWow64Processの戻り値ということなら)64bitOSで64bitアプリケーションでも IsWow64Process はFALSE を返す。

つまり32bitOSか64bitアプリなら関数はFALSEを返すので
アプリが何bitかを判断するにはOSが何bitかを知らないといけない。
Win32API質問箱 Build120©2ch.net
240 :デフォルトの名無しさん[sage]:2015/05/04(月) 23:45:54.58 ID:VqP+6wea
というかあれだな。
32bitアプリを作っているなら「最初に起動するのは32bitアプリ」なのは当然か。
フック対象が64bitならフックしないか、64bit版を起動させるっていうブログの方法で問題ないな。

ただ「関数が存在するかどうか」だけじゃ不十分だから気をつけてね。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。