출처 : http://www.codeproject.com/Articles/2510/Data-Conversions
Decimal Conversions
Decimal To Hex
// Use _itoa( ) function and set radix to 16.
char hexstring[10];
int number = 30;
itoa( number, hexstring, 16); // In hexstring is 1e.
Hex To Decimal
// You can use strtol function and you can specify base. char * hexstring= "ABCDEF"; // A function that does this bool HexToDecimal (char* HexNumber, int& Number) |
Decimal to time
char *DecToTime(float fTime, char *szTime)
{
int nHrs, nMin, nSec;
fTime *= 3600;
nHrs = (int)fTime / 3600;
nMin = (int)(fTime - nHrs * 3600) / 60;
nSec = (int)(fTime - nHrs * 3600 - nMin * 60);
wsprintf(szTime, "%02d.%02d.%02d Hrs.Min.Sec.", nHrs, nMin, nSec);
return szTime;
}
String Conversions
String to Hex
sscanf(string, %04X, &your_word16); // where string = your string and // 04 = length of your string and X = hex |
Hex to CString
CString Str; |
COleVariant to CString
CString strTemp; COleVariant Var; Var = "FirstName"; strTemp = Var.bstrVal; AfxMessageBox(strTemp); |
CString to char pointer
CString MyString = "ABCDEF";
char *pBuffer = new char[1024]; |
char pointer to CString
char * mystring = "12345";
|
Double to CString including the fractional part
CString strValue,strInt, strDecimal;
int decimal,sign;
double dValue = 4.125;
strValue = _fcvt(dValue,6,&decimal,&sign);
// Now decimal contains 1 because there is
// only one digit before the .
strInt = strValue.Left(decimal); // strInt contains 4
strDecimal = strValue.Mid(decimal); // strDecimal contains 125
CString strFinalVal;
strFinalVal.Format("%s.%s",strInt,strDecimal);
// strFinalVal contains 4.125
Double To CString
CString strValue;
double dValue = 123456789101112; |
CString To Double
strValue = "121110987654321"; dValue = atof(strValue); |
CString to LPCSTR
CString str1 = _T("My String"); int nLen = str1.GetLength(); LPCSTR lpszBuf = str1.GetBuffer(nLen); // here do something with lpszBuf........... str1.ReleaseBuffer(); |
CString to LPSTR
CString str = _T("My String"); int nLen = str.GetLength(); LPTSTR lpszBuf = str.GetBuffer(nLen); // here do something with lpszBuf........... str.ReleaseBuffer(); |
CString to WCHAR*
CString str = "A string here" ; LPTSTR lpStr = str.GetBuffer( str.GetLength() ); |
LPTSTR to LPWSTR
int nLen = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen); |
string to BSTR
string ss = "Girish"; BSTR _bstr_home = A2BSTR(ss.c_str()); |
CString to BSTR
CString str = "whatever" ; BSTR resultsString = str.AllocSysString(); |
_bstr_t to CString
#include <ANSIAPI.H>
char szFileName[256]; |
Character arrays
Char array to integer
char MyArray[20];
nValue = atoi(MyArray); |
Char array to float
char MyArray[20];
fValue = atof(MyArray); |
Char Pointer to double
char *str = " -343.23 "; double dVal; dVal = atof( str ); |
Char Pointer to integer
char *str = " -343.23 "; int iVal; iVal = atoi( str ); |
Char Pointer to long
char *str = "99999";
|
Char* to BSTR
char * p = "whatever"; _bstr_t bstr = p; |
Float to WORD and Vice Versa
float fVar;
WORD wVar;
fVar = 247.346;
wVar = (WORD)fVar; //Converting from float to WORD.
//The value in wVar would be 247
wVar = 247;
fVar = (float)fVar; //Converting from WORD to float.
//The value in fVar would be 247.00
'프로그래밍 > API/MFC Source' 카테고리의 다른 글
주소를 배열로 연결하는 방법 (0) | 2014.02.07 |
---|---|
[MFC] ListControl 컬럼 추가 (0) | 2012.06.07 |
[MFC] 폴더 선택 함수 (0) | 2012.06.04 |