次の方法で共有


C++ から Visual Basic への変換

開発者は、C++ プログラミング言語を使用して、特定の変数を格納するメモリに直接アクセスできます。 メモリ ポインターは、この直接アクセスを提供します。 Visual Basic では、ポインターが自動的に処理されます。 たとえば、C++ で int へのポインターとして宣言されたパラメーターは、Visual Basic で ByRef整数として宣言されたパラメーターと同じです。

Visual Basic で 文字列として 宣言されているパラメーターは、C++ の BSTR へのポインターとして宣言されます。 C++ で文字列ポインターを NULL に設定することは、Visual Basic で文字列を vbNullString 定数に設定することと同じです。 NULL を受け取るために設計された関数に長さ 0 の文字列 ("") を渡しても機能しません。これは、0 ポインターではなく長さ 0 の文字列へのポインターを渡すからです。

C++ では、Visual Basic の初期バージョンでは同等のデータ コンテナー、つまり構造体と共用体がサポートされています。 このため、COM オブジェクトは通常、オブジェクト クラスの構造体と共用体に格納される情報をラップします。 ただし、一部の COM オブジェクトには構造体が含まれている可能性があるため、オブジェクトのメソッドまたは機能の一部に Visual Basic にアクセスできなくなります。

一部の C++ データ型は、署名されていない型や HWND 型など、Visual Basic ではサポートされていません。 これらのデータ型を受け入れるか返すメソッドは、Visual Basic では使用できません。

Visual Basic では、オートメーションと互換性のあるデータ型が内部データ型として使用されます。 したがって、オートメーションと互換性のある C++ データ型も Visual Basic と互換性があります。 オートメーションと互換性のないデータ型は、Visual Basic に変換できない場合があります。

次の表に、Visual Basic でサポートされているデータ型とその VARTYPE に相当するデータ型を示します。 VARTYPE は、Automation バリアント型を一覧表示する列挙型です。

Visual Basic のデータ型 VARTYPEと同等のもの
整数
16 ビット、符号付き、VT_I2
Long
32 ビット、符号付き、VT_I4
日付
VT_DATE
通貨
VT_CY
Object
*VT_DISPATCH
String
VT_BSTR
Boolean
VT_BOOL
通貨
VT_DECIMAL
Single
VT_R4
Double
VT_R8
Decimal
VT_DECIMAL
Byte
VT_DECIMAL
Variant
VT_VARIANT

キーワード (keyword) ByValでラベル付けされていない限り、Visual Basic のすべてのパラメーターは、値ではなく参照 (ポインター) によって渡されます。

C++ と Visual Basic では、プロパティの表現方法が若干異なります。 C++ では、プロパティはアクセサー関数のセットとして表されます。1 つはプロパティ値を設定し、1 つはプロパティ値を取得します。 Visual Basic では、プロパティは、プロパティ値を取得または設定するために使用できる 1 つの項目として表されます。

Visual Basicへの変換