2013-06-18 22 views
11

私はドットネットから使用するC++ DLLを構築しました。 progranを実行するとエラーが発生しますが、dllは見つかりませんでした。dllにWindows 7ファイルの依存関係がありません

dllがあります - しかし、私は、依存関係ウォーカーでそれを確認 - と、次のために得た:

API-MS-WIN-CORE-COM-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL 
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL 
DCOMP.DLL 

Error opening file. The system cannot find the file specified. 

私が検索した - しかし、のdidn - どうやらこれらは、勝利7は、私は、Windows 7を持っているdはファイルですそれらを見つけることはありません。

どうすればよいですか?私はVS2010、(ここから:http://www.dependencywalker.com/)は、Windows 7

+0

は、DLLが必要ですか、間接的に必要ですか?どの輸入品が見つからないのですか? –

+0

間接だと思います。 DLLはCanon SDKに依存します。 C++でlibとしてコードで使用されているSDKは機能しますが、機能性をドットネットにエクスポートするために作成したDLLに問題があります。 – Thalia

+8

これらのファイルは実際には存在しており、見ることはできません。 Dependency Walkerは長い間維持されておらず、現代のWindows版では適切な仕事をこれ以上行うことができません。 SysInternalsのProcMonを使用すると、DLLを検索して見つからないことがわかります。 –

答えて

10

依存関係ウォーカーを使用しています

は古くなって成長してきました。 win7/win8で動作している間は、通常のDLLを検出できません。最新バージョン2.2.6000の「約」タブを開くと、2006年10月29日にビルドされたことがわかります。それは全く驚いた。

プロセスモニタツールは、いくつかの場所で入手できます。私はここから私のところにたどり着いた:https://technet.microsoft.com/en-us/sysinternals/bb896645

あなたがそれを持っていれば、あなたは 'program name is'のフィルタを追加してあなたのプログラムを実行することができます。読み込みや読み込みに失敗するものが表示されます。結果はあなたが望むほど簡潔ではありませんが、何かが失敗すると、それが表示されます。

+0

答えをいただきありがとうございます。これは技術的にすでにHans Passantのコメントで回答済みです。 – Thalia

+1

はい、コメントで質問を閉じることはできません。だから、私はコミュニティに知らせて、私が同じ問題に遭遇して、コメントを試してみたので、それがうまくいったと思ったので、そのコメントが正しいことを明確にするための答えを投稿した。 – LawfulEvil

+0

ダンプビンも便利です。http://stackoverflow.com/a/28304716/1272428 – rluks

関連する問題