CString 에서 Char* (배열)
UDP 소켓 통신하면서
CString으로 받은 값을 Char* 로 센드 시켰을때
길이는 맞게 오는데 자꾸 한글자만 나와 ㅠ.ㅠ
구글링 네이뇬 검색 하면 아래 와 비슷한 내용들 많이 나오는데...
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++ 대략 알고리즘 짜는데 시간이 가는게 아니라... 타입케스팅 하다가 시간이 다 가버림 ㅠ.ㅠ 쥘쥘쥘쥘 꺼우져!!!!!!!
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++ 대략 알고리즘 짜는데 시간이 가는게 아니라... 타입케스팅 하다가 시간이 다 가버림 ㅠ.ㅠ 쥘쥘쥘쥘 꺼우져!!!!!!!