開發人員可以使用C++程式設計語言,直接存取儲存特定變數的記憶體。 記憶體指標提供此直接存取。 在 Visual Basic 中,會為您處理指標。 例如,宣告為 C++ 中 int 指標的參數相當於在 Visual Basic 中宣告為 ByRefInteger的參數。
在 Visual Basic 中宣告為 字串 的參數,會在 C++ 中被宣告為指向 BSTR 的指標。 在 C++ 中將字串指標設定為 NULL,相當於在 Visual Basic 中將字串設定為 vbNullString 常數。 將長度為零的字串("")傳遞至設計用來接收 NULL 的函式無法運作,因為這會傳遞一個指向零長度字串的指標,而非指向零的指標。
C++支援的數據容器,包括結構體和聯合,這在較早期版本的 Visual Basic 中是沒有等價物的。 基於這個理由,COM 物件通常會包裝通常儲存在物件類別的結構和等位中的資訊。 不過,某些 COM 物件可能包含結構,導致物件方法或功能的部分無法存取 Visual Basic。
Visual Basic 不支援某些C++數據類型,例如未簽署的類型和 HWND 類型。 接受或傳回這些數據類型的方法無法在 Visual Basic 中使用。
Visual Basic 使用與自動化相容的數據類型作為其內部數據類型。 因此,C++與自動化相容的數據類型也與 Visual Basic 相容。 與自動化不相容的數據類型可能無法轉換成 Visual Basic。
下表列出 Visual Basic 支援的數據類型及其 VARTYPE 對等專案。 VARTYPE 是列出自動化變體類型的列舉。
| Visual Basic 資料類型 | VARTYPE 等值 |
|---|---|
|
整數 |
16 位元、有符號、VT_I2 |
|
長 |
32 位元、有符號、VT_I4 |
|
日期 |
VT_DATE |
|
貨幣 |
VT_CY |
|
物件 |
*VT_DISPATCH |
|
字串 |
VT_BSTR |
|
布爾值 |
VT_BOOL |
|
貨幣 |
VT_DECIMAL(十進制變量類型) |
|
單一 |
VT_R4 |
|
雙 |
VT_R8 |
|
十進位 |
VT_DECIMAL |
|
位元組 |
VT_十進制 |
|
變體 |
VT_VARIANT |
Visual Basic 中的所有參數,除非加上關鍵詞 ByVal標籤,否則會以傳址方式傳遞 (作為指標),而不是以傳值方式傳遞。
C++和 Visual Basic 在它們代表屬性的方式上稍有不同。 在C++中,屬性會以一組存取子函式表示,一組會設定屬性值,另一個會擷取屬性值。 在 Visual Basic 中,屬性會以單一項目表示,可用來擷取或設定屬性值。