掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
system32以外のフォルダにあるActiveXコンポーネントの登録をするとどうなるのか? (ID:100902)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 上書きされてしまうと思います。 OCX のバージョンアップであるならば、それは正しい動作だと思います。 ODX のバージョンダウンであるならば、問い合わせ無しの上書きは、 そのインストーラの手抜き(あるいはバグ)に当たります。 > そのまま変わりませんでした。 REGSVR32 によって、ファイルのコピー等が行われる事はありません。 レジストリへの登録が行われるのみです。 > VBは、どちらのバージョンのActiveXコンポーネントを使うのでしょうか? それ以降にロードされる OCX は、regsvr32 されたパスの物が使われます。 これは、ActiveX コンポーネントのレジストリ登録では、同一のIDに対しては、 一つのファイルしか割り当てられないからです。 ただし、Side By Side 配置をおいては、異なるバージョンを切り替えて 利用する事ができます。SxS 配置の動作については、下記を参照してみてください。 [WinXP がもたらす VB デベロッパーへの福音 - 第 2 回] http://www.microsoft.com/japan/msdn/thisweek/vbxp/vbxp2.aspx [FIX: Windows side-by-side execution is not supported for Visual Basic 6.0 ActiveX controls] http://support.microsoft.com/kb/828629/ja > 不具合を生じてしまうのでしょうか? ComDlg32.ocx であれば大丈夫だとは思いますが、それについては、 ocx の種類およびバージョンによるところが大きいかと思います。 たとえば、ocx のバージョンが上がる事によって、依存 DLL 数が増加する場合、 それらの依存 DLL / サテライト DLL が配置されていなかったとしたら、 OCX のみの更新作業は、何らかの動作不具合を招く可能性があるでしょう。 > OCXのバージョンが最新のものではないという実行時エラーが出たときに、最良の対策は何なのでしょうか? 配布用のインストーラを作ることです。正しく設計された VB 用のインストーラは、 VBP プロジェクトを参照して、適切なバージョンチェックを行ってくれるでしょう。 インストーラ側で検出されなかったファイルについては、自分で調査して インストーラに組み込む必要があるでしょうが、自作したプロジェクトであれば、 どのようなコンポーネントを使用していて、開発環境ではどのバージョンを 使っていたのかを調べる事は、不可能では無いですよね。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.