1

アプリを起動すると、以下のエラー ダイアログが表示されます。これは、ランタイム ライブラリの読み込みに問題があることを示していると理解しています。問題は、より具体的な情報を取得する方法が見当たらないことです。どの図書館?ロード時に発生した正確な問題は何でしたか? など.. システム イベント ビューアにはエントリがありません。エラーが発生したときにロードしようとしていたライブラリと、具体的な問題を正確に見つけるためのトリックはありますか?


Microsoft Visual C++ Runtime Library

Runtime Error!

Program: exe path

R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.*

ランタイム ライブラリの依存関係を処理するための現在のアプローチは、インストール ディレクトリをスキャンし、.dll ファイルと .exe ファイルの埋め込みマニフェストを抽出してから、.config ファイルと .2.config ファイルを生成して、.config ファイルのマイナー バージョンにリダイレクトすることです。私が出荷しているランタイムライブラリ。過去には、これは常に物事を機能させてきました。この場合はそうではありません。

呼び出しコードはネイティブ C++ ですが、一部の DLL は .NET を使用するため、これは多少複雑になる可能性があります。私は C++ API を呼び出していますが、内部では、.NET を使用するいくつかの DLL を利用することになります。

4

3 に答える 3

3

SysInternals Process Monitor を使用して、ファイル システム アクセスを監視します。プロセス名と操作 (CreateFile) でフィルター処理して、プロセスが見つけられない DLL を確認します。

于 2013-03-28T14:23:36.067 に答える
1

msvcr*.dll のバージョンが間違っている可能性があります。

Dependency Walker ( http://www.dependencywalker.com/ ) を試して、リンクされている場所を見つけることができます。

于 2013-03-28T13:16:53.500 に答える
1

接続しようとしているコードのデバッグ バージョンがあることを確認してください。[デバッグ] メニューで、[プロセスにアタッチ] を選択します。プロセス ID を使用 -

これも確認してください - http://support.microsoft.com/kb/235434 解決策 1

タスク マネージャーを使用してプロセスにアタッチできるはずです。 Just-In-Time デバッグ (JIT) を有効にします。Visual C++ で、[ツール] メニューの [オプション] をクリックします。[デバッグ] タブで、[ジャストインタイム デバッグ] が選択されていることを確認します。タスク マネージャーを実行し、アタッチするプロセスを選択します。右クリックして [デバッグ] を選択します。

解決策 2

タスク マネージャーを実行し、デバッグするプロセスのプロセス ID を取得します。コマンド プロンプトで次のように入力します。msdev -p これにより、Visual C++ が起動し、指定されたプロセスにアタッチされます。

于 2013-03-28T13:22:04.820 に答える