從 C++ 轉譯為 Visual Basic
使用 C++ 程式設計語言,開發人員可以直接存取儲存特定變數的記憶體。 記憶體指標提供此直接存取。 在 Visual Basic 中,會為您處理指標。 例如,在 C++ 中宣告為 int 指標的參數相當於在 Visual Basic 中宣告為 ByRefInteger 的參數。
在 Visual Basic 中宣告為 String 的參數會宣告為 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 |
Long |
32 位、帶正負號、VT_I4 |
日期 |
VT_DATE |
貨幣 |
VT_CY |
Object |
*VT_DISPATCH |
String |
VT_BSTR |
布林值 |
VT_BOOL |
貨幣 |
VT_DECIMAL |
Single |
VT_R4 |
Double |
VT_R8 |
十進位 |
VT_DECIMAL |
位元組 |
VT_DECIMAL |
變數 |
VT_Variant |
除非以關鍵詞 ByVal 加上標籤,否則 Visual Basic 中的所有參數都會以傳址方式傳遞(作為指標),而不是以傳值方式傳遞。
C++ 和 Visual Basic 在代表屬性的方式上稍有不同。 在 C++ 中,屬性會以一組存取子函式表示,一組會設定屬性值,另一個會擷取屬性值。 在 Visual Basic 中,屬性會以單一專案表示,可用來擷取或設定屬性值。