プログラムを32ビットOSの場合は32ビットモードで実行し、64ビットOSの場合は64ビットモードで実行したいと思います。そのプログラムはBat To Exe Converter v2.1.4で作成されているので、基本的にはバッチファイルです。通常、バッチファイルを32ビットOSで実行すると、32ビットモードで実行され、64ビットOSで実行すると、64ビットモードで実行されますね。問題は、Bat To Exe Converter v2.1.4を使用することです。プログラムが32ビットか64ビットかを選択できます。したがって、32を選択する必要があります。そうしないと、32ビットOSでは実行されないと思います。 .vbsファイルを使用して、。Runおよび。ShellExecuteを使用してプログラムを再起動しようとしましたが、結果として、コンバーターで設定されたものと同じアーキテクチャーになりました。私も試しましたcmd /c
および%WINDIR%\System32\cmd.exe /c
そしてまた%WINDIR%\SysWOW64\cmd.exe /c
しかし、私はそれを行う方法を見つけることができませんでした。私はWindows8.0 x64を使用しており、VMはWindows8.1x64です。
c:\windows\sysnative
32ビットプログラムのSystem32へのアクセスを提供します。
32ビット
C:\Windows\System32 accesses syswow64
c:\windows\sysnative accesses System32
64ビットは指示されたとおりに動作します。フォルダに直接アクセスします。たとえば、C:\ windows\system32はSystem32にアクセスし、C:\ windows\syswow64はSyswow64にアクセスします。
重要なのは、32ビットプログラムのみを作成する必要があるということです。 64ビットプログラムのほとんどは内部で32ビットです(メモリアドレスのみが64ビットで、その他はすべて32ビットのままです)。 64ビットはサーバーアプリ用です。一般的なプログラムには32ビットを使用します。
[〜#〜]編集[〜#〜]
32ビットプログラムは32ビットで64ビットアドレッシングモードで、32ビット(Windowsではベースアドレスは常に0)は使用されないため、メモリアドレスに必要なのは32ビット(オフセット)のみです。
64ビットプログラムは32ビットで64ビットオフセットメモリアドレスを備えています(64ビットモードのベースアドレスのサイズは常に0であり、何十年も関係がないためわかりません)。 64ビットプログラムは、一般に科学的またはビデオ処理タスクのために、選択時に64ビット命令を使用するだけで、完全な64ビットプログラムになることができます。しかし、64ビットのすべてがメモリを大量に消費し、Windowsやその他のライブラリは32ビットの値を期待しています。
一般的な原則は、タスクを達成するために何もする必要がないということです。 32ビット/ 64ビットについて考え始めると、人々は困ります。ビットネスを無視すると、Microsoftはそれを正しく機能させるためにすべての作業を投入しました。
Start-Run(Winkey + R)ダイアログでiexpressと入力すると、独自のbat2exeを作成できます。