純粋なWin32 APIでVisual C++プログラムを作成しています。私の理解によれば、x86とx64アーキテクチャ用に実行可能ファイルを個別にコンパイルして生成する必要があります。x86とx64の実行可能ファイルを1つの実行可能ファイル(Sysinternalsツールなど)で結合する
どのようにそれらを1つの実行可能ファイルに結合し、実行時にx64を出力するのですか?私はSysinternalsツールが同じことをしているのを見てきましたが、プログラム的にどのように行われているのかわかりません。
x86にリソースとしてx64バージョンを含めてからファイルシステムに書き込んで、 CreateProcessを実行する必要がありますか?
任意のポインタ?
一般に、x86アプリケーションはx64上で正常に動作します。しかし、sysinternalsツールはドライバを使用します。ドライバは適切なカーネルアーキテクチャのために構築する必要があります – Bahbar
しかし、質問は残っています。内部で実行ファイルを実行する方法は異なります。 –
個人的には、私はsysinternalsツールがこれを行う方法が嫌いです。彼らは、実行するたびに不必要にファイルを作成したり削除したりしています。タスクマネージャのエントリ数が2倍になってしまいます(1つのexeが別のバイナリを削除するのを待っています)。私はその点を見ない。マシンに適切なファイルをインストールするインストーラを作成するのは難しくありません。インストーラのないツールでは、両方のexeファイルをzip形式で実行して適切なファイルを実行させることも難しくありません(または、間違ったもの)。 –