作成した DLL にリンクするときに問題が発生します。スローされる例外はUnhandled exception at 0x000007FA17461069 (ntdll.dll)
. 奇妙なことに、これは DLL を win32 アプリケーションでリンクした場合にのみ発生し、win32 コンソール アプリケーションではリンクしないということです。問題は、スレッドの作成を扱うもののようです。
コール スタックは次のとおりです。
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd) Line 337 C
DLL には、オペレーティング システムの I/O 完了ポートを使用する ACE proactor フレームワークの実装が含まれています。コンソール アプリケーションでは正常に動作しますが、win32 ウィンドウ アプリケーションでは動作しません。
どんな助けでも大歓迎です。
編集:以下のコメントで要求されたとおり:
例外をスローするコード行は次のとおりです。ACE_Service_Config::open(GetCommandLineA());
私は ACE 構成フレームワークを使用して、DLL を svc.conf ファイルで動的にロードします。main
これは、コンソール プログラムの機能に対して記述する必要がある唯一のコード行です。
WM_CREATEメッセージがキャッチされた後、この行を書いてみました。クラッシュします。