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; 해주면 된다.

+ Recent posts