2016-07-30 25 views
-1

私はVS2013を使用してコンパイルされたC++ dllを持っています。C#Dllインポートが一部のコンピュータで動作しない

私はこのような私のC#アプリケーションにそれを呼び出す:

[DllImport("myDLL.dll", EntryPoint = "RestartIfNecessary", CallingConvention = CallingConvention.Cdecl)] 
     public static extern bool RestartIfNecessary(uint uiAppId); 

、それが正常に動作します。アプリケーションがPRODになると

は、しかし、いくつかのユーザは、次のエラーがあります。 DLL ' MYDLL.DLL 'を読み込むことができません:指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007E)

一部のコンピュータでこのエラーが発生する理由がわかりません。 Microsoft Visual C++ 2013 Redistributable(x86)および(x64)を削除してもう一度インストールすることで、一部のユーザーの問題を解決できました。

私のC#アプリケーションはx86上で動作するようにコンパイルされています。 私は64ビットのw10を持っていますので、それはうまくいきますので、ウィンドウズに関連しているかどうかわかりません。

この問題を解決するためのヒントはありますか?

編集:ここでは、依存関係ウォーカーの結果は次のとおりです。dependendyウォーカー

enter image description here

私は赤で3 DLLを見つけた彼らが重要であるならば、私は知らない。 enter image description here

API.dllはサードパーティのDLLです(myDLLはこのAPIのラッパーです)

答えて

2

エラーは、myDLL.dllまたはそれに依存するDLLのいずれかがtに見つかりません彼DLL search path

アプリが見つかる場所にmyDLL.dllが配置されていることを確認してください。問題のあるコンピュータでmyDLL.dllDependency Walkerにロードして、欠落している依存関係を特定することができます。

+0

ありがとう、私は編集し、依存性ウォーカーの結果を追加しました。 – user2088807

+0

依存関係ウォーカーの結果を挿入し直してもよろしいですか?私はあなたのポストに[![ここにコードを入力してください] [1]] [1]が表示されます – radianz

+0

完了、ごめんなさい。 – user2088807

関連する問題