- - PR -
ActiveX(VB6)のコンストラクタ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-09-06 20:08
VB6のプログラムをC#に移植しています。C#ではDDE通信がサポートされていないた
め、その部分だけをVB6のActiveXコントロールにして、C#から呼び出すことにしま した。しかし、ActiveXをインスタンス化するところでC#コンパイラから"コンスト ラクタが定義されていません"エラーが発生します。 Public Sub UserControl_Initialize()をC#がどうしてコンストラクタとして認識 してくれないのかが理解できません。 解決策を教えてください。宜しくお願いします。 再現手順 (1)Visual Basic 6のプロジェクトでActiveXコントロールを選択する。 (2)IDEで空のコンストラクタを作成する。 (3)外部からコンストラクタが参照できるようにPrivateをPublicに修正する。 ' 以下、VB6のActiveXコントロール Public Sub Test() MsgBox "Hellow world." End Sub Public Sub UserControl_Initialize() End Sub (4)ディストリビューションウィザードでインストールパッケージを作成しターゲットマシンにインストールする。 (5)Visual Studio2008を起動し、参照を追加する。 // 以下、C#(コンパイルできない) private void button1_Click(object sender, EventArgs e) { // コンストラクタが定義されていません。エラーが発生します。 Project1.UserControl1 uc = new Project1.UserControl1(); uc.Test; } |
|
投稿日時: 2008-09-06 20:25
試していないので推測です。
ActiveXコントロールとして作成したのであれば、ツールボックスを右クリックしてアイテムの選択をクリックし、開くダイアログからCOMのタブに自分で作ったコントロールの名前があると思いますので、それにチェックを入れてOKを押して下さい。 ツールボックスにコントロールが追加され、これをデザイナで配置すればいけると思われます。 だめだったらごめんなさい。 |
|
投稿日時: 2008-09-07 00:04
ご回答ありがとうございます。
C#からActiveXを直接呼び出して機能することが確認できました。 助かりました。 |
|
投稿日時: 2008-09-07 00:05
ご回答ありがとうございます。
C#からActiveXを直接呼び出して機能することが確認できました。 助かりました。 |
1