C++에서 Visual Basic으로 변환
개발자는 C++ 프로그래밍 언어를 사용하여 특정 변수를 저장하는 메모리에 직접 액세스할 수 있습니다. 메모리 포인터는 이 직접 액세스를 제공합니다. Visual Basic에서는 포인터가 자동으로 처리됩니다. 예를 들어 C++ 의 int 에 대한 포인터로 선언된 매개 변수는 Visual Basic에서 ByRefInteger로 선언된 매개 변수와 동일합니다.
Visual Basic에서 문자열로 선언된 매개 변수는 C++의 BSTR 에 대한 포인터로 선언됩니다. C++에서 문자열 포인터를 NULL 로 설정하는 것은 Visual Basic에서 문자열을 vbNullString 상수로 설정하는 것과 같습니다. NULL을 받도록 설계된 함수에 길이가 0인 문자열("")을 전달하는 것은 작동하지 않습니다. 포인터가 0 포인터 대신 길이가 0인 문자열로 전달됩니다.
C++는 Visual Basic의 초기 버전에서 동일하지 않은 데이터 컨테이너, 즉 구조체 및 공용 구조체를 지원합니다. 이러한 이유로 COM 개체는 일반적으로 개체 클래스의 구조체 및 공용 구조체에 저장된 정보를 래핑합니다. 그러나 일부 COM 개체에는 구조체가 포함되어 있어 개체의 메서드 또는 기능 중 일부가 Visual Basic에 액세스할 수 없게 될 수 있습니다.
일부 C++ 데이터 형식은 Visual Basic에서 지원되지 않습니다(예: 서명되지 않은 형식 및 HWND 형식) . 이러한 데이터 형식을 수락하거나 반환하는 메서드는 Visual Basic에서 사용할 수 없습니다.
Visual Basic은 Automation 호환 데이터 형식을 내부 데이터 형식으로 사용합니다. 따라서 Automation과 호환되는 C++ 데이터 형식도 Visual Basic과 호환됩니다. Automation과 호환되지 않는 데이터 형식은 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 |
단일 |
VT_R4 |
double |
VT_R8 |
10진수 |
VT_DECIMAL |
Byte |
VT_DECIMAL |
Variant |
VT_VARIANT |
키워드(keyword) ByVal로 레이블이 지정되지 않는 한 Visual Basic의 모든 매개 변수는 값 대신 참조(포인터)로 전달됩니다.
C++ 및 Visual Basic은 속성을 나타내는 방식이 약간 다릅니다. C++에서 속성은 속성 값을 설정하는 접근자 함수 집합과 속성 값을 검색하는 함수 집합으로 표시됩니다. Visual Basic에서 속성은 속성 값을 검색하거나 설정하는 데 사용할 수 있는 단일 항목으로 표시됩니다.