2

それは単純な問題であるはずですが、私はそれにつまずきます。環境はWindows7上のVisualStudio2008で、マシンにはvs2010、vs2012もインストールされています。(さまざまなプロジェクトが異なるバージョンを使用しているため、いくつかのVSをインストールする必要があります)

いくつかの3番目のDLLを使用する単純なアプリケーションがあります。1)。Vsからアプリを起動する場合はOKです。

2)。DLLをコピーしてファイルを実行し、エクスプローラーから起動すると、C++ライブラリでアプリケーションがクラッシュしました

次のようなもの:プログラム:xxx.exeファイル:c:\ program files \ microsoft visual studio 9.0 \ vc \ include \ vector行:779式:ベクトル添え字が範囲外

3)。コマンドラインを開き、PATH環境変数の前に「VisualStudio9.0\」と「VisualStudio9.0\ vc \ bin」を追加してアプリを起動すると、クラッシュしました。

手動で起動/クラッシュしたプロセスに接続し、モジュールおよびPATH環境のVs IDE lanuchedプロセスと比較しましたが、同じように見えます。イライラしました。

なにか提案を?よろしくお願いします。


私はちょうど今理由を見つけました。Visual Studioには、「デバッグ| 作業ディレクトリの設定。デフォルトではプロジェクトディレクトリです。すべてのDLLをコピーしましたが、いくつかの構成ファイルがありませんでした。アプリケーションロジックエラーです。

4

3 に答える 3

3

SysInternalsのプロセスモニターを使用して、ロードされているDLLを追跡します。

于 2013-03-04T09:45:29.343 に答える
3

依存関係の問題をデバッグするには、 DependencyWalkerを使用することをお勧めします。

静的モードまたは動的モード([プロファイル]メニューから)で使用して、実行時にローダーが実行していることを正確に診断できます。後者のモードはあなたが探しているもののように聞こえます。

于 2013-03-04T09:49:47.667 に答える
0

「ベクトル添え字が範囲外」の問題は、DLLの依存関係の問題ではなく、コードに起因しているようです。ただし、DLLの正しいバージョン(デバッグ/リリース)を参照してください。

于 2013-03-04T11:02:03.570 に答える