Я создаю программу, используя Microsoft Access 2010 ActiveX (COM) для отображения ссылок проекта (файл .adp):
Access::Application* app = new Access::Application(nullptr);
app->SetVisible(true);
app->OpenAccessProject("E:\\solulog_dev\\SoluTools\\app\\test\\sources\\utilitaires\\liste_aide.adp", true);
int nb_ref = app->References()->Count();
qDebug().nospace() << nb_ref << " references";
for(int ref_num = 1; ref_num <= nb_ref; ref_num++)
{
Access::Reference* ref = app->References()->Item(ref_num);
qDebug().nospace() << "Reference #" << ref_num << " : " << ref->Name() << " (" << ref->Guid() << ") : " << ref->FullPath();
}
app->CloseCurrentDatabase();
app->Quit();
Но при выполнении я получаю правильное количество ссылок (5 вв этом случае), но any вызов any свойства ссылки any приводит к той же ошибке:
Ошибка отладки!
Программа: c: \ Qt \ 5.11.1 \ msvc2015 \ bin \ Qt5Cored.dll
Модуль: 5.11.1
Файл: qaxbase.cpp
Строка: 3763
ASSERT: "id <0" в файле qaxbase.cpp, строка 3763 </p>
Кажется, что произошла ошибка при попытке доступа к свойству через QMetaObject.
Я также получаю предупреждение, сопровождаемоепо ошибке при каждом вызове объекта «Ссылки».Код работает (я получаю правильное количество ссылок), но, возможно, это связано:
Ошибка CoCreateInstance (Classe non enregistrée)
QAxBase :: setControl: запрошенный элемент управления {eb106214-9c89-11cf-a2b3-00a0c90542ff} не удалось создать экземпляр
Этот CLSID правильно зарегистрирован и ссылается на «Microsoft.Office.Interop.Access.ReferencesClass», как и ожидалось
Любой может помочь мне с этимутверждать?