Гуру! Не открывается бд в потоке (не в потоке открывается)

  • Автор темы Автор темы EuGenius
  • Дата начала Дата начала
E

EuGenius

Создаю программно поток. Открываю в нем базу данных(DAO, MS Access) и в дебаге сообщение:
Код:
Unhandled exception at 0x1b760401 in Bellvisual.exe: 0xC0000005: Access violation reading location 0x0000000c.
Не в потоке, а в обычном методе класса все работает нормально.
Вот код:
Обьявление "потоковой функции"
Код:
...
public:	
friend UINT OurThread(LPVOID pParam);
...
Запуск потока
Код:
...
HWND hWnd = GetSafeHwnd();
AfxBeginThread(OurThread, hWnd, THREAD_PRIORITY_NORMAL);
...
Сама функция потока
Код:
UINT OurThread(LPVOID pParam)
{
CDaoWorkspace *ws = new CDaoWorkspace;
CDaoDatabase db(ws);
try
{
db.Open("dbase_bell.mdb");//вот здесь и выскакивает
...
В чем дело?
 
А инициализацию COM подсистемы Вы сделали в потоке? Её нужно делать для каждого потока отдельно...
 
Дай пример.
 
Как можно узнать об окончании потока.
Можно ли убить поток в функции
UINT OurThread(LPVOID pParam)
{ ...
AfxEndThread(0);
}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab