'C++/형변환'에 해당되는 글 5건

  1. 2020.01.09 CString <-> Const char *
  2. 2018.10.10 CString <-> LPWSTR
  3. 2018.06.08 CString <-> short * (Unicode, Multibyte), PLC ASCII
  4. 2018.06.07 CString <-> BSTR (Unicode , Multibyte)
  5. 2018.05.29 CString <-> LPCTSTR

CString -> const char *

 

1
2
3
CString aa = _T("123");
CStringA bb = (CStringA)aa;
Const char* dd = bb.GetBuffer();
 

 

const char * -> CString

 

1
2
3
const char* dd = "123";
CString aa;
aa = (CString)dd;
 

'C++ > 형변환' 카테고리의 다른 글

CString <-> LPWSTR  (0) 2018.10.10
CString <-> short * (Unicode, Multibyte), PLC ASCII  (0) 2018.06.08
CString <-> BSTR (Unicode , Multibyte)  (0) 2018.06.07
CString <-> LPCTSTR  (0) 2018.05.29
Posted by 람뫼
:

CString <-> LPWSTR

C++/형변환 2018. 10. 10. 10:07 |

Unicode 환경에서의 형변환.


CString -> LPWSTR


첫 번째 방법.


1
2
3
4
LPWSTR szAA;
CString strBB;
 
szAA = (LPWSTR)(LPCWSTR)strBB;
cs

 

CString을 LPCWSTR로 변환한 후 LPWSTR로 변환.


두 번째 방법


1
2
CString aa = _T("123");
LPWSTR dd = aa.GetBuffer();
cs



LPWSTR -> CString 

 

1
2
3
4
LPWSTR szAA;
CString strBB;
 
strBB.Format(_T("%s"), szAA);
cs

 

CString의 Format함수를 사용하여 변환.

'C++ > 형변환' 카테고리의 다른 글

CString <-> Const char *  (0) 2020.01.09
CString <-> short * (Unicode, Multibyte), PLC ASCII  (0) 2018.06.08
CString <-> BSTR (Unicode , Multibyte)  (0) 2018.06.07
CString <-> LPCTSTR  (0) 2018.05.29
Posted by 람뫼
:

이 예제는 Visual Studio 2013 MFC 환경에서 제작되었음.



short * to CString


 

 short * to CString

 MultiByte

1
2
3
4
5
6
short* sshort = new short[2];
sshort[0= 20826;
sshort[1= 67;
 
CString strTest;
strTest.Format("%s", sshort);

strTest에는 "ZQC"
cs

 Unicode

1
2
3
4
5
6
7
8
short sshort[2];

sshort[0= 20826;
sshort[1= 67;
 
CString strTest;
 
strTest.Format(_T("%S"), sshort);

strTest에는 "ZQC"
cs


CString to short *


 

 CString to short *

 MultiByte

1
2
3
CString strMessage = "ABC";
short pData[10];
sprintf_s((char*)pData, 10"%s", strMessage);

pData[0]에는 16961
pData[1]에는 67

cs

 Unicode

1
2
CString strMessage = _T("ABC");
short* pData = new short[10];
sprintf_s((char*)pData, 10"%S"strMessage);

pData[0]에는 16961
pData[1]에는 67
cs




sprintf_s를 이용하여 형변환.


이 방법은 ASCII 형변환을 위해 사용함.





다음은 PLC Monitor Utility에서 20826을 ASCII로 변환하여 나타낸 화면이다.


분명히 배운 ASCII는 대문자 A가 65부터 시작일텐데라고 생각할 수 있지만 


별거 없고 자리수의 차이이다.


PLC 주소는 비트 주소번지가 아니면 2Word (16bit)를 사용한다.


이 범위는 short와 동일하다.



한 워드씩 따로따로 구분하면 첫 번째 워드는 01011010은 90이고


두 번째 워드는 01010001로 81이다.


그래서 ZQ로 표기된다. 



 


'C++ > 형변환' 카테고리의 다른 글

CString <-> Const char *  (0) 2020.01.09
CString <-> LPWSTR  (0) 2018.10.10
CString <-> BSTR (Unicode , Multibyte)  (0) 2018.06.07
CString <-> LPCTSTR  (0) 2018.05.29
Posted by 람뫼
:

인터넷 대부분의 글에는 현재 프로젝트 환경이 Multibyte인지 Unicode인지 명시가 되어있지 않아


형변환 하기 힘든 경우가 많아서 작성한 글.. 이 예제는 Visual Studio 2013 MFC환경에서 제작되었음.




BSTR to CString


 

 BSTR to CString

 MultiByte

1
2
3
CString strTest = "QWERT";
BSTR szTest = strTest.AllocSysString();
CString strTest2 = (CString)szTest;
cs

 Unicode

1
2
BSTR szTest;
CString strTest2 = (CString)szTest;
cs



CString to BSTR


 

 CString to BSTR

MultiByte

1
2
CString strTest = "QWERT";
BSTR szTest = strTest.AllocSysString();
cs

 Unicode 

 

1
2
CString strTest = _T("QWERT");
BSTR szTest = strTest.AllocSysString();
cs


Unicode 및 Multibyte 둘다 동일하게 사용가능하다.

'C++ > 형변환' 카테고리의 다른 글

CString <-> Const char *  (0) 2020.01.09
CString <-> LPWSTR  (0) 2018.10.10
CString <-> short * (Unicode, Multibyte), PLC ASCII  (0) 2018.06.08
CString <-> LPCTSTR  (0) 2018.05.29
Posted by 람뫼
:

CString <-> LPCTSTR

C++/형변환 2018. 5. 29. 23:59 |

C++ 형변환은 참 골치가 아프다. 


인터넷에 올라와 있는 자료중 Unicode환경인지 Multibyte 환경인지 명시가 안되어 있는 경우가 많아 


스트레스를 많이 받았음. 나도 예전엔 몰랐으니 일단 올려놔야지..



LPCTSTR과 CString은 Unicode와 Multibyte환경에서 동일한 방법으로 형변환 가능.


Unicode에서 CString은 _T를 꼭 붙여줘야 하고 Multibyte에서는 _T를 붙여도 되고 안붙여도 된다.


LPCTSTR -> CString


LPCTSTR lpszTemp = _T("zzz");

CString strTemp = lpszTemp;



CString -> LPCTSTR


CString strTemp = _T("abc");

LPCTSTR lpszTemp = strTemp;










'C++ > 형변환' 카테고리의 다른 글

CString <-> Const char *  (0) 2020.01.09
CString <-> LPWSTR  (0) 2018.10.10
CString <-> short * (Unicode, Multibyte), PLC ASCII  (0) 2018.06.08
CString <-> BSTR (Unicode , Multibyte)  (0) 2018.06.07
Posted by 람뫼
: