Как ловить / выбрасывать ошибки с QAxObject

0

Я хочу использовать QAxObject для работы с файлами Excel.
Я хочу реализовать инициализацию как-то как следующий код:

QAxObject* excel;//excel pointer

void initExcel(){
    try
    {
        //if there excel process already running try to use it
    }
    //catch if it not running
    catch()
    {
        try 
        {
            excel = new QAxObject("Excel.Application");
        } 
        catch 
        {
            //meassge if excel not exist/can't start     
        }
    }
}

Как я мог поймать/выбросить ошибки с помощью QAxObject? Я попытался это сделать, но не нашел exapmlpe

Теги:
excel
qt
try-catch
throw

1 ответ

2
Лучший ответ

Чтобы узнать, загружен ли элемент управления ActiveX, вы должны использовать результат метода setControl. Чтобы поймать исключения управления ActiveX, вы должны подключиться к сигналу исключения.

bool controlLoaded = axWidget->setControl("Word.Document");
if (!controlLoaded)
{
    // Message about control didn't load
}
else
{
    // Control loaded OK; connecting to catch exceptions from control
    connect(
        axWidget, 
        SIGNAL(exception(int, const QString &, const QString &, const QString &)), 
        this, 
        SLOT(onAxWidgetException(int, const QString &, const QString &, const QString &)));
}
  • 0
    Спасибо, земляк! :) Я приму ваш ответ позже, хорошо? Боюсь, что сегодня у меня есть еще кое-что, завтра я проверю твои мысли

Ещё вопросы

Сообщество Overcoder
Наверх
Меню