2012-01-25 106 views
3

私は新しくできたコードを見ています。私は、正しくビルドされ、エラーを返さないいくつかの依存関係を持つ、UIと呼ばれるプロジェクトにC++コードを持っています。 Visual Studio 2008の同じソリューションで、新しいC#windowsフォームプロジェクトを作成し、UIプロジェクトによって生成されたdllへの参照を追加し、「using」ステートメントを追加しました。私がしたいことは、UIプロジェクトで定義されているダイアログの1つを上げているので、System.IO.FileNotFoundExceptionが処理されませんでした。メッセージ= "指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007E) "

UIDialog uIDialog = new UIDialog(); 
uIDialog.Show(); 

のようなコードを作成しています。

私はデバッグに私のプロジェクトを実行すると、それは「新しい」の部分に到達したときに、私は上記の例外を取得 - 欠落しているモジュールが何であるかについての情報はないと。

不足しているモジュールは、UIプロジェクトにコードを掘りせず、あるものを見つけるための方法はありますか?

(私は、この質問を閉じないように言い換えようとしています。誰かが「いいえ、いいえ、ありません」という決定的な答えを与えることができれば、とても役に立ちます。誰が、以前のバージョンを閉じ)

編集:

System.IO.FileNotFoundException occurred 
    Message="The specified module could not be found. 
(Exception from HRESULT: 0x8007007E)" 
    Source="ui" 
    StackTrace: 
    at ui.UIDialog.Startup() 
    at ui.UIDialog..ctor() in c:\..\ui\UIDialog.h:line 61 
InnerException: 

問題だ、どこにでも明らか有用な情報はありません!

それは32/64ビットの問題ではない - ここに入る前に、私はので、私は32ビットであることを、すべてを強制的に過去を取得するには、典型的な「BadImageFormatException」を持っていました。

+1

例外メッセージにスタックトレースが含まれている必要があります。投稿することで、問題がどこにあるのか把握することができます。さらに、あなたが提供したものだけを見て、私は手足に出て、32ビット対64ビットの問題だと推測します。 1つのアセンブリが32ビット用にコンパイルされ、64ビット/任意のCPU用にコンパイルされる可能性はありますか? 32ビットコードは64ビットコードを呼び出すことができず、その逆もありません。 –

+0

私は@Codyに同意します。プラットフォームターゲットの問題のように聞こえる。例外には、通常、かなり多くの情報が含まれていますので、problem.ToString()の結果を投稿すると、問題の診断に役立ちます。 –

+0

私は明白なことを述べたくないのですが、61行目で 'UIDialog.h 'とは何ですか? – Gabe

答えて

1

あなたは、参照DLLにMSIL逆アセンブラを使用すると、DLLのすべての依存関係のためのマニフェストをチェックすることができます。ディスアセンブラは、Windows SDKツールの一部です。

または私は年間でそれを使用していないもののDependencyWalkerは、常にあります。

+0

すべての依存関係を手動で確認することは、私が避けようとしていたものです(最後にやったことですが)。しかし、ありがとう! – Melanie

0

あなたはturn on Fusion loggingできローダーが何をしているか確認し、不足しているものを見つけるために。

関連する問題