掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ActiveXの登録情報について (ID:103265)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> では、例えばVBにてアプリ作成を行い、VBが入っていないPCにExeをおく場合は > 使用しているOCXも一緒にインストールして、登録を行うのが本来行うべきことでしょうか? 各種ランタイムが導入済みの環境であれば省略できますが、そうでないなら アプリと共にインストールするようにしてください。この時はできるだけ、 配布用の「インストーラー」を用意しておくことが望ましいです。 EXE にしても OCX にしても DLL にしても、そのファイル単体で 構成されるわけではありません。多くの場合、他の依存ファイル群と 連携して動作するようにできています。 たとえば ComDlg32.ocx ver 6.1.97.82の場合、それ自身に加えて ComCat.dll という依存コンポーネントが必要となります。 また、日本語版ではさらに CmDlgJP.dll も必要となりますし、 フランス語版なら CmDlgFR.dll が必要となります。 もちろん、先述したようにレジストリ設定も必要ですね。 もし、十分な知識のないユーザーによって手動コピーで配置された場合、 誤って一部のファイルだけ置き換えられたり、古いバージョンや 多言語バージョンのファイルで上書きされてしまう危険性があり、時には バージョン互換性の問題を引き起こしてしまう危険性が生じます。 (この問題は俗に、「DLL Hell」あるいは「DLL 地獄」と呼ばれています) http://msdn.microsoft.com/ja-jp/library/dd297693.aspx > ランタイムライブラリは同じこと? 実行時(rumtime)に必要なライブラリ群という意味では、 広義には ocx もランタイムの一部であるといえます。 なお、ランタイムやその依存ファイル等をそれ単体で再頒布することは 許可されていないのでご注意ください。 VB 製の自作アプリと共に配布する分には問題ありません。 > 開発用のPCでは問題ないのにExeをインストールしたPCで > CommonDialog1を使用している場所(一番最初)で例外エラーになる場合は、 そのコントロールは、どのようにして再頒布されましたか? また、コントロールをどのように使用されていますか? たとえば同コントロールを Excel のシートに貼って使う事はできません。 これは、ActiveX コントロールを画面に貼るときには、開発用のライセンス すなわちデザインタイムライセンスが要求されるためです。 (開発環境であれば問題なく動作するのですけれどね) 一方、VB6 のフォームに貼って出荷するような場合は、その EXE 内に ocx ライセンス情報が埋め込まれるので、その場合には ランタイムライブラリだけで動作することになります。 また、Web アプリに貼って Internet Explorer 上で利用するような場合は、 サーバー側にライセンスファイル(*.LPK) が要求されます。 なお、こうしたデザインタイムライセンスに関する事情は、 VB.NET の場合も同様です。とはいえそもそも VB.NET で CommonDialog の ocx を使う事は無いでしょうけれども。 > インストールPCの方でCommonDialog1が登録されていないことになるのでしょうか? > →この場合は再登録「Regsvr32」で解決できるはず? 解決できるかも知れませんし、あるいは解決できないかも知れません。 そもそも VB のバージョンはおろか、エラーメッセージすら 提示されていない現状では、実際の環境を見ていない第三者には、 エラーの原因は分からないと思いますよ。 ただしいずれにせよ、適切なインストーラーからセットアップすれば、 解決できる可能性が高いであろうとは思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.