私の質問に直接従う:32ビットASMコンパイラを使用してASMファイルをコンパイルし、64ビットプロジェクトに組み込み、コンパイル済みコードにアクセスするにはどうすればよいですかASMファイルの関数名を使用して?私は32ビットから64ビットへの私のプロジェクトを変換していVisual Studio - 64ビットプロジェクト内での32ビットコードのコンパイル
と私は技術的な問題に遭遇した:それは少し不明瞭である場合
、私は手の込んだことができます。私のプロジェクトはASMファイルをコンパイルし、そのコンパイルされたバイナリを入力として使用します。
私のプロジェクトが32ビットだったときは、とても簡単でした。私はプロジェクトにASMファイルを組み込み、Microsoft Macro Assembler
でコンパイルするビルドルールを追加しました - その後、ASMからアクセスしたい各機能を.h
ヘッダーファイルとアクセスにエクスポートして、32ビットプロジェクトのコンパイル済みコードにアクセスできましたそれは関数名を使用していました(プロトタイプを.h
ファイルにエクスポートしたので、objにコンパイルされ、リンカがシンボルを知っていたため、これを実行できました)。
このコードを64ビットに変換する必要がありますが、まだASMを32ビットコードとしてコンパイルする必要がありますが、同じことを実行できます(コンパイルされた32ビットコードをmy 64ビットプログラム)。 しかし、コンパイルしようとすると、プロジェクト全体が64ビットコードとしてコンパイルされているので、明らかに命令を認識しません。
ありがとうございます。
64ビットプロセスで32ビットコードをロードまたは実行することはできません。あなたのオプションは、アセンブラコードを更新することです(64ビット用にコンパイルする:コードを変更する必要はないかもしれません)。 32ビットコードを独自のプロセスで実行することができます(親プロセスとのプロセス間通信の何らかの形で)。 – Richard
@リチャードは、私はそれを実行する必要があると言っていない。コンパイルされた32ビットコードを自分のプログラムへの入力として使用する必要があります。 – Aviv
@リチャード、私の64ビットアプリケーションに、コンパイルされた32ビット関数のコードを私の 'から移植する必要があることを想像してみましょう。 ASM'ファイルであり、私はまだ '。ASMファイルをプロジェクトに含めるが、32ビットコードとしてコンパイルする – Aviv