VB6でActiveX(ocx)を作成しました。
このocxは他のどの言語で使用できるのでしょうか?
VB6ではコンポーネントを参照して使用できるのは確認できたのですが、
他の言語、例えばVBScript、JavaScript、Perl、C++などなど
別に作成者が意識する必要はないのでしょうか?
ご存知の方、御教授願います。
> 別に作成者が意識する必要はないのでしょうか?
あります。
「VB6 Form に貼ることを前提とした作り」や
「HTML に貼ることを前提とした作り」になっている場合、
他の環境では使用できない可能性がありますので。
たとえば、『クリックすると、フォームのタイトルバーを書き換える』という
Private Sub UserControl_Click()
Extender.Parent.Caption = CStr(Timer)
End Sub
といったコードを書いた場合、これは「VB6 Form」に貼った場合は動作しますが、
「VB6 UserControl」「Office MSForms」「HTML」等に貼って使うと、
実行時エラーになってしまうことでしょう。
そうした話を抜きにすれば、ocx をホスト可能な開発環境としては、
HTML ページ(Internet Explorer)
HTA
.NET フォーム
WPF (WindowsFormsHost 経由)
PowerBuilder
Delphi
Office ユーザーフォーム (MSForms)
Excel ワークシート
Access フォーム
Access レポート
などがあるかと思います。他にもたくさん。
> 他の言語、例えばVBScript、JavaScript、Perl、C++などなど
(ホストではなく)言語側も意識せねばならない場合もあります。
たとえば、VBScript 等では、「データ型」の概念が希薄なので、
メンバを Variant 型にしておいた方が良いでしょうね。
(特に、ByRef 呼び出しが必要な場合には)
魔界の仮面弁士さま
詳細なご説明有難うございます。
確かに作成時に利用者側も意識する必要がありますね。
例えば、HTMLの場合、フォームを開くときモーダルじゃないとうまくいかなった記憶がありますし・・・。
これらの情報を元に色々勉強していきたいと思います。
本当に有難うございました。
ツイート | ![]() |