У меня проблема, когда я ссылаюсь на созданную мной 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 содержит реализации для платформы ACE proactor, использующие порты завершения ввода-вывода операционных систем. Он отлично работает в консольном приложении, но не в оконном приложении Win32.
Любая помощь будет оценена по достоинству.
РЕДАКТИРОВАТЬ: по запросу комментариев ниже:
Строка кода, вызывающая исключение, — ACE_Service_Config::open(GetCommandLineA());
.
Я использую структуру конфигурации ACE, поэтому я динамически загружаю свою DLL с файлом svc.conf. Это единственная строка кода, которую необходимо записать в функцию main
консольной программы.
Я попытался написать эту строку после того, как было перехвачено сообщение WM_CREATE. Он падает.