|
김솔 님이 쓰신 글 :
: AnsiString 으로 선언되어 있는 변수의 값을
:
: char 형으로 캐스팅 하는 방법이 있는지요
:
: AnsiString data와 char *data2가 초기화 되어 있을경우
:
: data2 = (char *)data 이런식의 캐스팅에는 에러가 나오네요
:
: srtcpy나 memcpy를 사용하여도
:
:
: [C++ Error] access.cpp(232): E2034 Cannot convert 'AnsiString' to 'const void *'
:
:
: 이렇게 에러처리가 계속 나와 질문드리고
:
: 이 반대경우인 char형 데이터를 AnsiString형으로의 변환도 질문드립니다.
:
: 좋은 조언 부탁드립니다.
:
//----------------------------------------------------------
안녕하세요
AnsiString타입을 char* 형으로 케스팅하기 위해서는요
.c_str()을 사용하면 되고요..
글구 char* 형의 데이타를 AnsiString 타입으로 가져오기 위해서는
걍 넣어주면 됩니다.
예를 들어서
"abcde"를 char* 에 넣어주기 위해서요
AnsiString asTemp = "abcde";
char szTmp[10];
memset(szTmp, 0x00, sizeof(szTmp));
memcpy(szTmp, asTemp.c_str(), asTemp.Trim().Length());
요런식으러 넣어주면 되는데요..
memcpy에서 가끔가다가 memcpy(szTmp, asTemp.c_str(), sizeof(asTemp))..
요런식으로 실수할때가 가끔 있지요.. sizeof(AnsiString..)은 4바이트거든요 가끔가다가
습관적으로 ^^;
글구 char*의 데이타를 AnsiString에 넣기 위해서는 간단히
AnsiString asTemp2 = szTmp; 요렇게 걍 넣으면 NULL까지 들어오지요..
간단히 두개의 사용법은
AnsiString asTemp = "abcde";
char* pTmp;
pTmp = asTemp.c_str();
ShowMessage(pTmp); <- 걍 AnsiString처럼 사용했죠??
그럼 즐거운 하루 되세요
|