Перевод в Visual Basic из C++
С помощью языка программирования C++ разработчики могут напрямую получить доступ к памяти, в которой хранится определенная переменная. Указатели памяти предоставляют этот прямой доступ. В Visual Basic указатели обрабатываются для вас. Например, параметр, объявленный как указатель на int в C++, эквивалентен параметру, объявленному в Visual Basic в виде целого числа ByRef.
Параметр, объявленный как строка в Visual Basic, объявляется как указатель на BSTR в C++. Установка указателя строки на NULL в C++ эквивалентна настройке строки константы vbNullString в Visual Basic. Передача строки нулевой длины ("") функции, предназначенной для получения NULL , не работает, так как это передает указатель на строку нулевой длины вместо нулевого указателя.
C++ поддерживает контейнеры данных, а именно структуры и объединения, которые не имеют эквивалента в ранних версиях Visual Basic. По этой причине COM-объекты обычно упаковывают сведения, которые обычно хранятся в структурах и объединениях в классах объектов. Однако некоторые com-объекты могут содержать структуры, что приводит к недоступности элементов методов или функций объекта в Visual Basic.
Некоторые типы данных C++ не поддерживаются в Visual Basic, например неподписанные типы и типы 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 |
Объект |
*VT_DISPATCH |
String |
VT_BSTR |
Boolean |
VT_BOOL. |
Валюта |
VT_DECIMAL |
Один |
VT_R4 |
Двойной |
VT_R8 |
Десятичное число |
VT_DECIMAL |
Byte |
VT_DECIMAL |
Variant |
VT_VARIANT |
Все параметры в Visual Basic, если они не помечены ключевое слово ByVal, передаются по ссылке (как указатели) вместо значения.
C++ и Visual Basic немного отличаются в том, как они представляют свойства. В C++свойства представляются как набор функций доступа, который задает значение свойства и значение свойства, которое извлекает значение свойства. В Visual Basic свойства представлены как один элемент, который можно использовать для получения или задания значения свойства.