MFC CString to Char*
C++/problemsC++ 2020. 10. 12. 10:43출처 : https://skql.tistory.com/559
===============================본문================================
CString 에서 Char* (배열)
UDP 소켓 통신하면서
CString으로 받은 값을 Char* 로 센드 시켰을때
길이는 맞게 오는데 자꾸 한글자만 나와 ㅠ.ㅠ
구글링 네이뇬 검색 하면 아래 와 비슷한 내용들 많이 나오는데...
방법은
1. (LPSTR)(LPCTSTR)로 강제 형변환
2. CString str;
str.GetBuffer(str.GetLength());
해주시면 char *을 리턴합니다.
1. (LPSTR)(LPCTSTR)로 강제 형변환
2. CString str;
str.GetBuffer(str.GetLength());
해주시면 char *을 리턴합니다.
ps. 위 두가지 방법중에 2번을 추천합니다.
그리고 GetBuffer를 사용하시면 ReleaseBuffer()를 사용해서 해제해 주셔야합니다.
그리고 GetBuffer를 사용하시면 ReleaseBuffer()를 사용해서 해제해 주셔야합니다.
CString msg = "abcdefg";
char* tempchar;
tempchar = LPSTR(LPCTSTR(msg));
머 요런식으로 해서
strlen(tempchar) === 1
msg.getLength === 6
머냐고요~~~
strcpy
memcpy 다 1글자씩 밖에 안드감 ㅠ.ㅠ
다시 구글링(해결법)
char Buffer[255];
CString szString;
size_t CharactersConverted = 0;
wcstombs_s(&CharactersConverted, Buffer, szString.GetLength()+1, szString, _TRUNCATE);
위방법 ㅠ.ㅠ
3시간 정도 찾은거 같아 ㅠ.ㅠ
비록 땃짓도 많이 했지만 C#은 간단하구 좋았는데..
VS2005 VC++ 대략 알고리즘 짜는데 시간이 가는게 아니라... 타입케스팅 하다가 시간이 다 가버림 ㅠ.ㅠ 쥘쥘쥘쥘 꺼우져!!!!!!!
'C++ > problemsC++' 카테고리의 다른 글
Eclipse CDT C++11 사용 설정(#include <thread>) (0) | 2021.07.23 |
---|---|
MFC Char* to CString (0) | 2020.11.27 |
매개변수로 배열 전달시 sizeof 문제 (0) | 2020.10.22 |