Windows上で作成したJNI(Java Native Interface)のモジュールが正しく動作しません。何か原因は考えられますか?

Interstage Application Serverの技術情報はこちら

Windows上で作成したJNI(Java Native Interface)のモジュールが正しく動作しません。何か原因は考えられますか?
WindowsアプリケーションからJava VMを呼び出したり、Javaアプリケーションからネイティブライブラリを呼び出す場合は、該当プロセスで使用されるすべての.EXE、.DLLが、マルチスレッド版CランタイムライブラリDLL(MSVCRT.DLL)を結合するように作成されていなければなりません。
例えば、Microsoft Visual C++で32ビット版のJNIモジュールを作成する際は、以下のことを確認してください。
  • CLコマンドで指定する場合
    コンパイルオプションに、/MDを指定してください。

  • Microsoft Visual Studioのプロジェクトで指定する場合
    [プロジェクトの設定]ダイアログボックスを開き、[C/C++]タグを選択します。
    [カテゴリ]から[コード生成]を選択し、[使用するランタイムライブラリ]で[マルチスレッド(DLL)]を選択します。


モジュール(EXE、DLL)がMSVCRT.DLLを結合しているかどうかは、Microsoft Visual C++ 付属のdumpbin.exeコマンドやDependency Walker(depend.exe)で確認できます。
Dependency Walkerは、VC++のほか、Platform SDKにも添付されています(http://www.dependencywalker.comからも入手できます)。
製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V9, V8, V7, V6, V5, V4, V3, V2
プラットフォーム Windows
アンサー種別 運用/保守
このページの先頭へ