VB.NET
で相互運用機能を使用してオブジェクトを作成しようとすると、クラスにコンストラクターがないVB6
場合に次のエラーが発生することに気付きました。VB.NET
エラー 430 - クラスは自動化をサポートしていません
私がしなければならないのは、VB.NET
クラスに空のコンストラクターを入れることだけです。
Public Sub New()
End Sub
そしてエラーは回避されます。これは予想される動作ですか?
VB.NET
で相互運用機能を使用してオブジェクトを作成しようとすると、クラスにコンストラクターがないVB6
場合に次のエラーが発生することに気付きました。VB.NET
エラー 430 - クラスは自動化をサポートしていません
私がしなければならないのは、VB.NET
クラスに空のコンストラクターを入れることだけです。
Public Sub New()
End Sub
そしてエラーは回避されます。これは予想される動作ですか?
VB6は、COMコクラスのクラスファクトリを使用して、COMを介してオブジェクトを作成します。基になるメソッドはIClassFactory::CreateInstance()です。このメソッドでは、ファクトリに引数を渡すことはできません。したがって、[ComVisible] .NETクラスには、引数をとらないコンストラクターが必要です。
引数を取るコンストラクターを自分で指定しない限り、.NETはクラスのデフォルトコンストラクターをすでに作成しています。使用されることはありませんが、削除することをお勧めします。これで、空のデフォルトコンストラクタも必要なくなりました。