2012-05-13 12 views
0

私は混合DLL(C++/CLI)を作成し、それをプレーンなANSI Cアプリケーションから正常に呼び出すと、同じものを使用してC++ COMサーバーから呼び出すようになりましたCエントリポイント)。しかし、COMサーバが正常に起動したり、DLLを呼び出す前であっても、ntdll.dllには「アクセス違反」があります。呼び出しスタックにはntdll.dllがあります!ExecuteHandler2は、VSデバッグ出力でスタックオーバーフローが報告されるポイントまで複数回繰り返します。私は私の混合モードDLLとmscoree.dllがロードされているのを見ることができます。混合モードDLLの遅延ロードが必要

私は混合DLLをCOMサーバーのDLL読み込みDLLオプションに追加しました。これは動作するようです。

私が書いたCアプリケーションが遅れて読み込まずに正常に動作しているように見える場合、なぜ混合DLLをC++ COMサーバーに読み込む必要がありますか?この問題をデバッグするにはどうすればよいですか(これは予期しないものの、何も見つかりませんでした)。

+0

DllMainの実行時にLoaderLockのようなサウンドがCLRを読み込むことができません。 Debug + Exceptions、Thrownチェックボックスを使用して例外をスローします。 –

答えて

0

COM Appartmentのように見えますが、初期化する必要があります。 COMのアパートメントは、スレッドの同期を管理するために使用されます。