54714


VisualStudioで作成した32bit アプリケーションを実行したところ、動作が停止しました。  
ダブルクリックで実行した直後に××の動作は停止を停止しました、とメッセージが表示されます。

以下にある、%UserProfile%AppData\Local\Microsoft\Windows\WER\ReportArchive  
を確認したところ、32bitアプリにもかかわらず、system32のdllを読みこみんでいました。

[code]

    LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
    
[/code]

①32bitアプリケーションは以前は問題なく動作していました。  
②上記の問題は実行環境をクラウド（AWS）に移行しようとした際に発生しました。（OSは変更していません）  
③同様の環境移行を64bit アプリケーションで行っていますが、問題なく動作しています。  
④また、問題なく動作する環境で、意図的にエラーを発生させた場合、%UserProfile%AppData\Local\Microsoft\Windows\WER\ReportArchive
のログではWow64を読み込んでしました。

[code]

    LoadedModule[1]=C:\Windows\SysWOW64\ntdll.dll
    
[/code]

以上のことから、wow64を読み込んでいないことが原因ではないかと推測しています。

msdnのファイルシステムリダイレクタに関する記述を読んだのですが、問題発生の原因、対応法がわかりませんでした。

<https://docs.microsoft.com/ja-jp/windows/desktop/WinProg64/file-system-
redirector>

対応方法ご存知の方はいらっしゃらないでしょうか。

ちなみに、実行環境は  
AWS EC2 m5.xlarge  
WindowsServer 2012R2  
です。


CC BY-SA 4.0
2019-05-04T09:49:58.967
54711
2019-05-04T11:07:30.470
34183
question
windows .net
32bit アプリケーションの参照が　system32からwow64にリダイレクトされていない


.NETアプリケーションはCPUネイティブのコードが含まれておらず、実行時にコード生成を行うため、特定のCPUには依存していません。[`CorFlags.exe`](https://docs.microsoft.com/ja-
jp/dotnet/framework/tools/corflags-exe-corflags-conversion-
tool)を使用することで当該バイナリの設定を確認することができます。

[code]

    32BITREQ  : 0
    32BITPREF : 0
    
[/code]

と表示された場合、32bitを要求せず32bitを優先しないため、64bit OSでは64bit実行されます。どちらかが`0`以外の場合には64bit
OSであっても32bit動作します。


CC BY-SA 4.0
2019-05-04T11:07:30.470
54714
2019-05-04T11:07:30.470
4236
54711
answer