이 예제는 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 람뫼
: