VB6で作成したActiveXControlはどの言語で使用できる?

解決


まっきん  2007-10-31 18:43:27  No: 138009

VB6でActiveX(ocx)を作成しました。
このocxは他のどの言語で使用できるのでしょうか?
VB6ではコンポーネントを参照して使用できるのは確認できたのですが、
他の言語、例えばVBScript、JavaScript、Perl、C++などなど
別に作成者が意識する必要はないのでしょうか?
ご存知の方、御教授願います。


魔界の仮面弁士  2007-10-31 22:06:23  No: 138010

> 別に作成者が意識する必要はないのでしょうか?
あります。
「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 呼び出しが必要な場合には)


まっきん  2007-10-31 22:43:28  No: 138011

魔界の仮面弁士さま

詳細なご説明有難うございます。

確かに作成時に利用者側も意識する必要がありますね。
例えば、HTMLの場合、フォームを開くときモーダルじゃないとうまくいかなった記憶がありますし・・・。

これらの情報を元に色々勉強していきたいと思います。
本当に有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加