CSTring 에서 const *char 로 변환할 수 없습니다.
//유니코드일때 FILE *fp; USES_CONVERSION; fp = fopen(T2A(m_strPath), "r"); |
std::string command; CString str; command = std::string(CT2CA(str.operator LPCWSTR())); //command.c_str() //사용 nResult = sqlite3_exec(pDB, command.c_str(), NULL, NULL, &pErr); |
//////
유니코드 일때.
CString strTest;
strTest = "";
char* Buff = new char[strTest.GetLength()];
strcpy(Buff,CT2A(strTest));
다른방법
CString csFullAddr = _T("TEST");
CStringA csAFullAddr = CStringA(csFullAddr);
const char* cFullAddr = csAFullAddr;
char* cpFullAddr = const_cast<char*>(cFullAddr);
속성 - 전처리기 - _CRT_SECURE_NO_WARNINGS
또는
가장 윗줄에
#define _CRT_SECURE_NO_WARNINGS
또는
프로젝트 생성시 SDK 체크 해제
위와 같이 코드 사용시
Buff 를 delete 를 해준다.
Buff 할당은 strTest 의 크기로 할당하였으나
delete 는 널문자를 포함한 크기를 해제하기 때문에 크기가 맞지 않아 에러 발생
char* Buff = new char[strTest.GetLength()]; 라인을
char* Buff = new char[strTest.GetLength()+1]; 로 수정 후
delete Buff; 해주면 된다.
'공부 > MFC_자주쓸거' 카테고리의 다른 글
[MFC] 실행파일 경로 (0) | 2021.05.18 |
---|---|
[MFC] 문자열 변환 CString , BYTE* (0) | 2021.04.16 |
[MFC] 문자열 변환 CString , Char* 유니코드 환경 (0) | 2021.04.16 |
[MFC] 문자열변환 string , CString (0) | 2021.04.16 |
[MFC] 모든 파일 경로 가져오기 C++라이브러리 <filesystem> (0) | 2021.04.16 |