VB 6 でクラスを実装 (つまり、インターフェイスを実装) しようとしていますが、「コンパイル エラー: 実装のインターフェイスが正しくありません: インターフェイスにデータ フィールドが含まれています」というエラーが表示されます。実装できるクラスに制限があるかどうか疑問に思っていますか? または、この特定のエラーが発生する理由を誰かが知っていれば、それも役に立ちます。
もっと明確にする必要がある場合はお知らせください。みんなありがとう。
デイブ
VB 6 でクラスを実装 (つまり、インターフェイスを実装) しようとしていますが、「コンパイル エラー: 実装のインターフェイスが正しくありません: インターフェイスにデータ フィールドが含まれています」というエラーが表示されます。実装できるクラスに制限があるかどうか疑問に思っていますか? または、この特定のエラーが発生する理由を誰かが知っていれば、それも役に立ちます。
もっと明確にする必要がある場合はお知らせください。みんなありがとう。
デイブ
VB6 のインターフェイスには、メンバー変数ではなく、メソッドのみを含めることができます。
プロパティ メソッドを (let 関数と get 関数を使用して) 実装することで、メンバー変数をシミュレートできます。
VB のタイプ ライブラリ コンストラクターには多くの制限があります。おそらく、そのインターフェイスで使用されているパラメータが、VB のクールなものと互換性がないもの、たとえば unsigned long である可能性があります。VB は unsigned long を処理できます。それらを通常の LONG 変数に入れてから、符号のために少し異なる方法で処理する必要があります。
したがって、OLE ビューを使用して、このインターフェイスが定義されているタイプ ライブラリを開き、それを IDL ファイルにコピーしてから、インターフェイス定義を VB でより使いやすいように変更した後、MIDL で再コンパイルすることをお勧めします。
Matthew Curland は、彼の VB6 の本「毎日のプログラムのためのパワー テクニック」でこれについて説明しています。