Я использую Qt activex (QAxObject) для чтения/записи файлов excel.Предотвращение сбоя приложения, когда excel не установлен при записи qt activex excel коды чтения/записи
QAxObject* excel = new QAxObject("Excel.Application", 0);
QAxObject* workbooks = excel->querySubObject("Workbooks");
QAxObject* workBook = workbooks->querySubObject("Open(const QString&)", path);
QAxObject* sheets = workBook->querySubObject("Worksheets");
QAxObject* sheet1 = sheets->querySubObject("Item(int)", 1);
QAxObject* sheet2 = sheets->querySubObject("Item(int)", 2);
//....
Мы знаем, что этот механизм использует excel и не работает на компьютерах, которые не установлены.
Если код работает на таких компьютерах (без установленного excel), программа сработает. Как я могу обнаружить в коде, что excel не установлен на ПК?
'NULL' - вещь C. В C++ используйте 'nullptr' или' 0', если вы должны поддерживать совместимость с компиляторами pre-C++ 11. Однако в большинстве проектов тест 'if (ptr)' также является идиомой. Вы также можете не запускать новый блок для каждого теста, но возвращайтесь от функции всякий раз, когда тест терпит неудачу. –