2010-12-07 11 views
5

VB6でクラスを実装しようとしましたが、このエラーが発生しました。「コンパイルエラー:実装のインターフェイスが不良です:インターフェイスにデータフィールドが含まれています」だから私はあなたが実装できるクラスに制限があるのだろうかと思っています。または、なぜこの特定のエラーが出るのか誰かが知っていれば、それも役立つでしょう。VB6でのインターフェイスの制限

もっと明確にする必要がある場合はお知らせください。みんなありがとう。

デーブ

+1

あなたの質問にインターフェイスのコードを投稿した場合に役立ちます。 – MusiGenesis

+0

私が実装しているクラスは、ソースがない古典的なスプレッドシートライブラリ(つまりF1Book)からのものです。私が投稿しなければならない唯一のコードは "Implements F1Book"です。 –

答えて

6

VB6のインターフェイスには、メンバ変数ではなくメソッドしか含めることができません。

メンバー変数をシミュレートするには、(let関数とget関数を使用して)プロパティメソッドを実装します。

+0

ファンシー、ジョエルの答え。私はstackoverflow前にあなたのブログに続いた。トピックに関する詳細は、MSVB6がすべてのメンバ変数を簡単にスタブすることができるかどうか知っていますか? –

4

VBの型ライブラリコンストラクタには、多くの制限があります。おそらく、そのインターフェイスで使用されるパラメータがあります。このパラメータは、VBがクールなもの、たとえば符号なしlongと互換性がありません。 VBではunsigned longを扱うことができます。通常のLONG変数に入れてから、記号のために少し違った方法で扱うだけです。

したがって、このインターフェイスが定義されているタイプライブラリを開いて、それをIDLファイルにコピーしてから、インターフェイス定義を変更してMIDLで再コンパイルすると、 VBと親しみやすい

Matthew Curlandは、VB6の書籍「Power techniques for Everyday programs」でこれについて説明しています。