Реализация Apartment в DLL (in-proc Apartment)
От: AlexandrShch  
Дата: 24.01.02 05:51
Оценка:
Мне нужно было создать в своей ActiveX DLL цикл обработки сообщений.
При создании объекта в DLL создается поток.
Вроде все сделал правильно: и маршалинг, и синхронизацию CreateInst. ит.д.
И вроде даже по ACtiveX интерфейсу все работает.
Но возник один глюк:
ActiveX содержит Rich control, и возникает 0xC0000005 Access Violation в его оконной процедуре. Причем под 2000 еще как то живет, а под 98 валится.

Я слышал что MS не рекомендует использовать in-proc Apartment. Это связано с доступом к одним ресурсам из разных потоков. В принципе это похоже на правду: обработка оконой процедуры формируется в отдельном потоке, может при этом возникает Access Violation.

ActiveX сделан с использованием ATL-WTL, и в нем вроде все правильно.
Может кто знает подробности — в чем тут дело?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.