COM / OLE, старый код и головные боли - PullRequest
3 голосов
/ 05 декабря 2011

В настоящее время я живу в 90-х, и мне передали этот устаревший код. Я не разбираюсь в том, что касается COM / OLE / MFC / ATL, поэтому я спрашиваю об этом, надеясь, что кто-то, имеющий опыт работы в то время, может помочь мне отследить эту проблему.

  • У меня есть действительно старое / устаревшее приложение MFC / ATL.
  • Запускается, но в конечном итоге вылетает в CFormView :: HandleInitDialog (atlmfc \ src \ mfc \ viewform.cpp)

Вывод отладки, который я получаю, таков:

CoCreateInstance of OLE control {6A24B340-7634-11D3-A5B0-0050044A7E1A} failed.
>>> Result code: 0x80040154
>>> Is the control is properly registered?

Я знаю, что это происходит из-за сбоя регистрации какого-либо компонента или разрешения, но я не знаю, как выяснить, какова эта зависимость, у меня есть старый работающий исполняемый файл кода, и, возможно, я мог бы использовать немного реинжиниринга, чтобы выяснить, отсутствуют ли какие-либо библиотеки DLL, но я действительно не знаю, я знаю, что такое OLE, и я был бы очень признателен за помощь в том, как это отладить.

1 Ответ

4 голосов
/ 05 декабря 2011

, похоже, это dxDBGrid.dll. OLE - это просто связывание и внедрение объектов. Вам нужно найти dxDBGrid.dll и убедиться, что он зарегистрирован. Вы можете использовать regsvr32 для его регистрации.

объяснение regsvr32

...