掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CreateInstance()でExcel有無判定は可能? (ID:67939)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VS2005でMFCを使って開発しています。 現在COMを使って、Excelへのデータ書き出しを行ってしますが Excelが入っている環境では問題なく動作するのですが テストの為に、Excelが入っていない環境で動かすと上手く動作しない場合があります。 具体的にはCreateInstance("Excel.Application")するところで エラーを返してくる場合とエラーも何も返さず、try〜catchを入れても catchに入ってくれず、「クラスが登録されていません」というメッセージが出ます。 (Excelが入っていないとコンパイル出来ないため、テストは別マシンでメッセージボックスを 入れながら調べています。) try { AfxMessageBox("CreateInstance直前"); <−このメッセージ直後、「クラスが登録〜」が出る hr = excel.CreateInstance("Excel.Application"); _com_error err(hr); AfxMessageBox(err.ErrorMessage()); <−このメッセージすら出ない if(hr!=S_OK){ return; } } catch (_com_error& e) { <− catch (...)これでも駄目でした e; AfxMessageBox(e.ErrorMessage()); <−このメッセージも出ない } CreateInstance()でExcelの有無を判定することは不可能なのでしょうか? また、その場合、Excelが入っているか確認するにはどうしたら良いのでしょうか? 調べてはみたのですが、FindExecutable()とかレジストリを見るとか載っていましたが コレが良いという、決定的なものが見つからなかったので、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.