Java ライブラリを使用する必要があるアプリケーションを構築していますが、CLR DLL を生成する必要があるため、JNI を使用しています。
DLL は 32 ビットでは正常にコンパイルされますが、64 ではリンカー エラーが生成されます: error LNK2001: unresolved external symbol "extern "C" long __cdecl JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$ $J0YAJPEAPEAUJavaVM_@@PEAPEAXPEAX@Z)
ライブラリ パスに jvm.lib がない場合、32 ビットでも同じエラーが発生するため、問題は jvm.lib にあると考えています。jvm.lib アーキテクチャ固有のものですか? 私は反対の問題 (64 用にコンパイルされ、32 用に同様のエラーが発生した) を抱えている人を見て、32 ビット JDK をインストールすることで解決しました。ただし、32 ビット マシンに 64 ビット JDK をインストールしようとすると、「無効な win32 アプリケーション」エラーがスローされます。
これをコンパイルする方法はありますか?