共用方式為


從 C++ 轉譯為 Visual Basic

開發人員可以使用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 中,屬性會以單一項目表示,可用來擷取或設定屬性值。

轉譯為 Visual Basic