dllアプリケーション (C# フレームワーク 4.0 で記述) からアンマネージ コードを使用しようとすると、いくつかの問題が発生します。私は次のようにdllインポートを使用しています
[DllImport(@"C:\MGW_SDK.dll", EntryPoint = "fInicializaSDK")]
public static extern int fInicializaSDK();
奇妙なことに、開発環境 (Windows XP) から呼び出すと問題なく動作しますが、運用サーバー (Windows7) では次の例外が生成されます。
System.DllNotFoundException: DLL をロードできません' C:\MGW_SDK.dll': 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)Comtpaq.AdminPack.SDKWrapper.fInicializaSDK()atComtpaq.AdminPack.AdminPaqRepository.InitializeSDK()inC:\Work\AgroIn\AdminPaqRepository.cs:line 30
私はすでにDependency Walkerを実行しました。これは、次の依存関係が競合していることを示しています。C:\windows\system32\SHLWAPI.DLL
dll私はすでにそれを展開ディレクトリにコピーしようとしました
MGW_SDK.dllオンです(c:\パスが示すように)
C ランタイム ライブラリを既にインストールしています
また、いくつかの興味深い点にも気付きました。例外として、開発パスが表示されていますC:\Work\AgroIn\AdminPaqRepository.cs:line 30
ここで他に何が問題になる可能性がありますか?
編集
extern私が使用する/dllimportメソッドの1つだけを使用して小さなコンソールアプリケーションを構築し、MGW_SDK.dll問題なく(まったくDllNotFoundException)実行したため、これは構築中のアプリケーション(WCFサービス)に関連しているようです。このサービスは WAS でホストされていますが、まだ問題が見つかりません。
