0

次の設定で VC++ 2008 を使用して DLL ファイルを作成しました。

  • 構成タイプ: ダイナミック ライブラリ (.dll)
  • MFC の使用: 標準の Windows ライブラリを使用する
  • ATL の使用: ATL を使用しない
  • 共通言語ランタイムのサポート: 共通言語ランタイムのサポート (/clr)

作成された DLL は、私のマシン (作成されたマシン) で完全に動作していますが、別のマシンでは使用できません (3 台のマシンでテストしました)。詳細については、この DLL ファイルを JNI (Java Native Interface) 経由で読み込みます。私のマシンでは動作しますが、他のマシンでは「java.lang.UnsatisfiedLinkError:: The application failed to start because its side-by-side configuration is wrong....」というエラーが表示されます。

私の質問は次のとおりです。2. さまざまなマシンで動作する DLL ファイルを作成できますか?

どうもありがとう!

4

3 に答える 3

2

VC++ 2008 再頒布可能パッケージが他のマシンにインストールされていることを確認する必要があります。これが問題であることを再確認するには、他のマシンで Dependency Walker を実行します。探しているものが表示されます: http://www.dependencywalker.com/

VC 2008 redist EXE は、Microsoft の Web サイト ( http://www.microsoft.com/en-us/download/details.aspx?id=29 ) で見つけることができます 。

または、実際の DLL は VC 2008 インストール フォルダーの redist フォルダーにあります。

于 2012-06-06T13:49:56.157 に答える
0

@snowdudeの言うことは正しいですが、別の問題が考えられます。これらの他のPCにVS2008がインストールされておらず、デバッグMSVCR *ライブラリにリンクしている場合は、運が悪いということです。フープジャンプなしでユーザーシステムにデプロイできるのは、リリースモードのバイナリのみです。

于 2012-06-06T13:57:15.387 に答える
0

実際、「サイド バイ サイド構成が正しくありません」とグーグルで検索すると、原因が何であるかについて多くのヒントが見つかります。しかし...最初にこれを試してみてください:VSでは、プロジェクト設定、C / C ++、コード生成:「ランタイムライブラリ」を「マルチスレッド」(または「マルチスレッドデバッグ」)に設定します。(ところで:共通が必要ですか言語ランタイムのサポート?)

于 2012-06-06T09:24:08.700 に答える