5

私は本当にこれ以上の諺の壁に対して頭を叩きました。VS2010のモジュールリストからDLLが抜けています

私は、C#とC++コードプロジェクトの両方を含むソリューションを用意しています。

多くの場合、このプロジェクトでP/Invoke経由でC#からコンパイルされたC++ DLLを呼び出します。問題ありません。 *.slnファイルとC++ファイルとC#ファイルを使用して必要なデバッガ設定をすべて、私の知る限り正しく設定しました。 注:私はしばしば同様のP/Invoked C++コードを問題なくデバッグすることができます!

当然のことながら、シンボルがロードされていない可能性があると考えました。しかし、モジュールウィンドウを開くと、私が踏み込もうとしているDLLがリストされていないことがわかりました。私のC#プログラムで関数を実行すると、実際にはDLLが使用されます(正しい出力が得られます)が、Modulesウィンドウを見てもDLLは表示されません。

誰でも何が起こっているのか考えていますか?


TL; DR

私はデバッグP /呼び出されC++での経験のかなりの量を持っています。しかし、私がデバッグしたいDLLは、Modulesリストにも表示されません(VSデバッガがその存在を完全に認識していないように見える場合、私は明らかにそのステップに入ることができません)。

+0

シナリオをどのように再現できますか? –

+0

"混合モード"のデバッグを行うように設定されていますか?つまり、デバッグしようとしているものではないのですか? –

+0

David:残念ながら、このシナリオを簡単に再現することはできません。これは、私が今までにModulesリストにないDLLがあった唯一の時間だからです! Matt:C++プロジェクト内で混在モードのデバッグ用に設定されています。アタッチがYesに設定されています。 C#プロジェクト内では、C++プロジェクトは依存関係としてリストされています。また、C#プロジェクト内で、[管理されていないコードのデバッグを有効にする]チェックボックスがオンになっています。問題は、コードが呼び出されると、[デバッグ]> [モジュール]画面でも、C++のDLLがどれもリストされていないことです。 これまでに見たことがありますか?これまでのあなたのヒントをありがとう! –

答えて

8

私は、アンマネージコードに対してデバッグを有効にしていないと思います。スタートアッププロジェクトのProperties-> Debugタブに移動します。 [管理されていないコードのデバッグを有効にする]をオンにします。

+0

こんにちは、マット!ヒントありがとう!非管理コードのデバッグを有効にします。 –

+1

NB:これは、実際の起動プロジェクトや* .exe自体(これは解決しようとしたときにはそれほどはっきりしていませんが、痛いほど明白です)ではなく、特定のC#プロジェクトP/Invoking C++。 –

関連する問題