VC common data type conversion Detailed Author: Cheng Peijun new to VC programming friends often feel puzzled many types of data conversion, 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 a decimal ITOA (I, TEMP, 2); // Press binary to convert long (LONG) LTOA (L, TEMP, 10); II, get pointers pointing to the string from other variables containing strings CString variable str = "2008 Beijing Olympics"; BUF = (LPSTR) (LPCTSTR) Str; BSTR type _variant_t variable v1 = (_bstr_t) "programmer"; buf = _com_util :: convertBSTRTSTRING ((_ bstr_t) v1); three The string is converted to other data type STRCPY (TEMP, "123"); short integer (int) i = ATOI (TEMP); long integer (long) L = atol (TEMP); floating point 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. have been supported by the CString constructor can be assigned Str = username; five, bstr, _bstr_t and ccombstrccombstr, _bstr_t is package to BSTR, BSTR is a pointing character 32-bit pointers of the 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.