Friends who have just contacted VCs often confuse the conversion of many data types, this article will introduce some common data types. We first define some common type variables to explain INT i = 100; long L = 2001; float f = 300.2; double d = 12345.119; char username [] = "Female Heroes Peijun"; char Temp [200]; char * buf; CSTRING STR; _BSTR_T V2; 1, other data types Convert to string Short Integer (INT) ITOA (I, TEMP, 10); /// Transfer I to strings into TEMP, last number Indicates decimal ITOA (I, TEMP, 2); // ///-binary conversion (LONG) LTOA (L, TEMP, 10) in binary
Second, from other variables containing strings, pointers CString variables pointing to the string CString variable Str = "2008 Beijing Olympics"; BUF = (LPSTR) (LPCTSTSTR) Str; BSTR type _variant_t variable v1 = (_bstr_t) "program "" Buf = _com_util :: convertBSTRTOSTRING ((_ bstr_t) v1); three, string to convert to other data type STRCPY (TEMP, "123"); short integer (int) i = ATOI (TEMP); long integer (Long) L = atol (TEMP); Double DOUBLE D = ATOF (TEMP); four other data types to convert to CString Using CString Member Function Format to convert, for example: integer (int) str.format (" % D ", I); floating point number (FLOAT) Str.Format ("% f ", i); string pointer (char *), etc. has been supported by the CString constructor can be assigned STR = UserName; V. BSTR, _BSTR_T and CCOMBSTRCCMBSTR, _BSTR_T is package to BSTR, BSTR is a 32-bit pointer to a string. CHAR * Convert to BSTR can be like this: BSTR B = _com_util :: ConvertStringTobstr ("Data"); /// Use Need to add header file Comutil.h Avobilize can use char * p = _com_util :: convertbstertostring (b); six, Variant, _variant_t and ColeVariantVariant's structure can refer to the definition of struct tagvariant in the header file VC98 / include / OAIDL.H.
For the assignment of the variant variable: first assign a value to the VT member, specify the data type, and then assign a value of the same data type in the federation, take an example: Variant Va; int a = 2001; va.vt = vt_i4; // indicate Integer data va.lval = a; // / assignment For Variant that does not immediately assign, it is best to use Void Variantinit (Variantarg Far * Pvarg); in the initialization, the nature is set to vt_empty, the following table We list VT correspondence between common data: unsigned char bVal; VT_UI1 short iVal; VT_I2 long lVal; VT_I4 float fltVal; VT_R4 double dblVal; VT_R8 VARIANT_BOOL boolVal; VT_BOOL SCODE scode; VT_ERROR CY cyVal; VT_CY DATE date; VT_DATE BSTR bstrVal; VT_BSTR IUnknown FAR * punkVal; VT_UNKNOWN IDispatch FAR * pdispVal; VT_DISPATCH SAFEARRAY FAR * parray; VT_ARRAY | * unsigned char FAR * pbVal; VT_BYREF | VT_UI1 short FAR * piVal; VT_BYREF | VT_I2 long FAR * plVal; VT_BYREF | VT_I4 float FAR * pfltVal; VT_BYREF | VT_R4 double FAR * pdblVal; VT_BYREF | VT_R8 VARIANT_BOOL FAR * pboolVal; VT_BYREF | VT_BOOL SCODE FAR * pscode; VT_BYREF | VT_ERROR CY FAR * pcyVal; VT_BYREF | VT_CY DATE FAR * pdate; VT_BYREF | VT_DATE BSTR FAR * pbstrVal; VT_BYREF | VT_BSTR IUnknown FAR * FAR * PPUNKVAL; VT_BYREF | VT_UNKNOWN IDISPATCH FAR * FAR * PPDISPVAL; V T_BYREF | VT_DISPATCH SAFEARRAY FAR * FAR * PPARRAY; VT_ARRAY | * VARIANT FAR * PVARVAL; VT_BYREF | VT_VARIANT VOID FAR * BYREF; VT_BYREF _VARIANT_T is the Variant's package class, which assigns the mandatory type conversion, and its constructor automatically handles these data. Types of.