0

QAxObjectExcelファイルを操作したい。
次のコードのように初期化を実装したい:

QAxObject* excel;//excel pointer

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

QAxObject でエラーをキャッチ/スローするにはどうすればよいですか? 私はそれをグーグルで検索しようとしましたが、例が見つかりませんでした

4

1 に答える 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 &)));
}
于 2013-10-18T12:31:40.140 に答える