Hi!
Почему возникает ошибка в модуле DLL, построенном
на основе объекта CWinApp ?
Ошибка появляется в конструкторе CWinApp и в строке:
ASSERT(AfxGetThread()==0)
И только, если модуль, вызывающий DLL скомпилирован
с включенным _AFXDLL в режиме Debug.
Если вызыать функций из этой DLL из других приложений,
например, из FOXPRO, ошибка не появляется.
Здравствуйте, Saleh, Вы писали:
S>Hi! S>Почему возникает ошибка в модуле DLL, построенном S>на основе объекта CWinApp ? S>Ошибка появляется в конструкторе CWinApp и в строке: S>ASSERT(AfxGetThread()==0) S>И только, если модуль, вызывающий DLL скомпилирован S>с включенным _AFXDLL в режиме Debug.
S>Если вызыать функций из этой DLL из других приложений, S>например, из FOXPRO, ошибка не появляется.
Хотелось бы уточнить: модуль DLL — это regular или extension DLL?
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Здравствуйте, Saleh, Вы писали:
S>>Hi! S>>Почему возникает ошибка в модуле DLL, построенном S>>на основе объекта CWinApp ? S>>Ошибка появляется в конструкторе CWinApp и в строке: S>>ASSERT(AfxGetThread()==0) S>>И только, если модуль, вызывающий DLL скомпилирован S>>с включенным _AFXDLL в режиме Debug.
S>>Если вызыать функций из этой DLL из других приложений, S>>например, из FOXPRO, ошибка не появляется.
SDB>Хотелось бы уточнить: модуль DLL — это regular или extension DLL?
Extension DLL.
В опциях компилятора указано _AFXEXT.
Хотя , если честно, чем она отличается
от regular я даже не знаю.
Здравствуйте, Saleh, Вы писали:
S>Extension DLL.
А что там делает потомок CWinApp? ИМХО его там быть не должно. Отправил Вам пример на мыло, указанное в профайле.
S>В опциях компилятора указано _AFXEXT. S>Хотя , если честно, чем она отличается S>от regular я даже не знаю.
Extension DLL может экспортировать классы-потомки MFC'шных, а regular DLL — только обычные функции; хотя и та, и другая разновидсти используют MFC.
Здравствуйте, Saleh, Вы писали:
S>Hi! S>Почему возникает ошибка в модуле DLL, построенном S>на основе объекта CWinApp ? S>Ошибка появляется в конструкторе CWinApp и в строке: S>ASSERT(AfxGetThread()==0) S>И только, если модуль, вызывающий DLL скомпилирован S>с включенным _AFXDLL в режиме Debug.
S>Если вызыать функций из этой DLL из других приложений, S>например, из FOXPRO, ошибка не появляется.
У меня такая же проблема на VS2003. Кто-нибудь может объяснить, в чем ошибка?