みんなおはよう、
私は C# が初めてで、いくつかの新機能を追加する予定の、既に開発されたアプリケーションを更新する必要があります。Visual Studio 2012 で開いて再構築しましたが、明らかにエラーはありませんでした。実行すると GUI は正しく表示されますが、アプリケーションを起動するとエラーが発生します。
タイプ 'System.DllNotFoundException' の初回例外が MccDaq.dll で発生しました タイプ 'System.DllNotFoundException' のハンドルされない例外が MccDaq.dll で発生しました見つかった。(HRESULT からの例外: 0x8007007E)
ここ数日解決策を探しましたが、何も見つかりませんでした。他の多くの中で、このスレッド ( Unable to load DLL (Module could not be found HRESULT: 0x8007007E) ) を見つけましたが、残念ながら運がありませんでした。実際、前述の DLL (「cbw32.dll」) を検索しても、ファイルのどこにも見つかりませんでした。また、スレッドで指摘されているように、Dependency Walker をインストールし、"MccDaq.dll" (System.DllNotFoundException が発生したファイル) を分析したところ、エラーが再び表示されました。
エラー: CPU タイプが異なるモジュールが見つかりました。警告: 遅延ロード依存モジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。
これをグーグルで調べても、新しいことはほとんどまたはまったくありませんが、どうやらいくつかのDLLのCPUアーキテクチャに問題があることを理解することは別として、ここにいます. 繰り返しになりますが、私は C# の初心者であることを強調しておく必要があります。それにもかかわらず、Visual Studio でエラーをトリガーするコード ブロックは次のとおりです。
public ErrorInfo StartBoard(MccDaq.ErrorReporting r, MccDaq.ErrorHandling h) {
//only create another object if the configs are different
if((daqBoard == null) || (daqBoard.BoardNum != boardNum)) {
daqError = MccDaq.MccService.ErrHandling(r, h);
daqBoard = new MccDaq.MccBoard(boardNum);
daqError = daqBoard.DConfigPort(portNum, direction);
}
return daqError;
}
ここで重要なもう 1 つの詳細は、このアプリケーションが約 4、5 年前に作成されたということです。そのため、Visual Studio 2008 を使用してプログラムする必要があると推測されます。これに関して、プロジェクトのプロパティで「ターゲット」を変更しました。 Framework:" を .NET Framework 3.5 に変更しましたが、これも成功しませんでした: 動作は変わりません。
結論として、私は行くことができる多くの異なる方向を見つけました、そしてそれは私を混乱に導きました. 誰かがこれについて私を啓発することができれば、私は完全に感謝しています.