yTakeです。
作成したアプリケーションを開発機以外のPCへインストール(コピー)しで実行すると、
"Exception EOleSysError in Module Project1.exe at 00060389.クラスが登録されていません。"
と言うエラーが出て起動されません。
EOleSysErrorはOLEオブジェクト?つまり、MS Excel等をアプリから制御するのに用いられるAPI?と思われます。
然しながら、作成したアプリケーションは一切ExcelやWord等MSソフトに限らず外部アプリケーションの制御を行なっていません。
唯一、ActiveXグループからMSCommをコンポーネントとして登録使用はしています。
このActiveXグループからと言うところが、何か影響していないでしょうか?
と言うのは、作成しているアプリのソースで、uses節で、気になるExtCtrls, ComCtrls, OleCtrlsと言うものが使われています。
特に最後のOleCtrlsは怪しいです。
アプリ上、使用していないので、usesから削除しても、コンパイル時に勝ってに組み込まれてしまいます。
少なくともOleCtrlsは外すべきと思いますが、外し方が分かりません。
それとも何か別の問題でしょうか?
ご教示頂ければ幸いです。
開発機以外に MSComm 登録されてる?
>アプリ上、使用していないので、usesから削除しても、コンパイル時に勝っ>てに組み込まれてしまいます。
コンポーネントが使用しているのは削除しても勝手に組み込まれる
MSComm が使用してるんじゃないのか
一般にActiveXコントロールは、コンポーネント(ocxファイル)を一緒に配布して
実行先の環境でregsvr32などを使って登録しておかないと使えません。
KHE00221さん、torさん
ありがとうございます。
なるほど、MSCommの登録はしていないです。
ただ、エラー内容に釈然としないものがありますが、、、
結論として、MSComm32.OCXを登録していない事が原因でした。
登録する事で、正常に起動致しました。
お騒がせ致しました。
と言う事は、インストーラ上でMSComm32.ocxを一緒にコピーし登録させてしまえば、コマンドラインからわざわざ登録する手間が省けると言う事でしょうか。
ありがとうございました。
解決したので閉めたいと思います。
ありがとうございました。
ツイート | ![]() |