CDynamicStringAccessor를 사용하여 저장 프로 시저에서 '열 이름'을 검색하려고 할 때 내 CSV 파일의 첫 줄에 쓸 때까지 LPOLESTR에서 char * OR std :: string으로의 변환을 처리합니다.LPOLESTR을 C++에서 char *로 변환하는 방법
몇 가지 연구 끝에 마침내 가장 간단한 방법을 찾았습니다. 나는 곧 답변을 게시 할 것이며, 이것이 동일한 문제를 가진 사람들을 도울 수 있기를 희망합니다.
CDynamicStringAccessor를 사용하여 저장 프로 시저에서 '열 이름'을 검색하려고 할 때 내 CSV 파일의 첫 줄에 쓸 때까지 LPOLESTR에서 char * OR std :: string으로의 변환을 처리합니다.LPOLESTR을 C++에서 char *로 변환하는 방법
몇 가지 연구 끝에 마침내 가장 간단한 방법을 찾았습니다. 나는 곧 답변을 게시 할 것이며, 이것이 동일한 문제를 가진 사람들을 도울 수 있기를 희망합니다.
//.................
LPOLESTR columname = rs.GetColumnName(i);
//Convert LPOLESTR into LPCSTR <- Which is the const CHAR*....
//Below Code Related to the question
USES_CONVERSION;
LPCSTR szText = OLE2CA(columname);
//Below code NOT related to the question
fwrite(szText,sizeof(char),strlenm(szText),pFile);
//....................
이 코드 선량, 남자 : USES_CONVERSION; LPCSTR szText = OLE2CA (컬럼 이름); –
ATL conversion macros을 사용할 수 있습니다. 중요한 대안은 변환하지 않고 그대로 실제로 넓은 문자열을 사용하는 것입니다 wchar_t
1995에 대한 이후 OLECHAR
이기 때문에, 또한
USES_CONVERSION;
std::string my_string = OLE2CA(the_lpolestr);
참조 몇 가지 대안에 대한 답변 here :이 일시적으로 스택에서 할당 그것은 (정보를 잃어 버리거나, UTF-8 문자열을 생성 할 것이다. UTF-8 문자열은 여러분이 그것을 사용하려고하는 것에 적합 할 수도 있고 그렇지 않을 수도있다).
예, 그게 내가 한 일입니다. 게시물 주셔서 감사합니다. –
'OLECHAR'은 (Windows 95가 아니라면)'wchar_t'와 동일하기 때문에'LPWSTR'을 변환하기위한 답을 참조 할 수도 있습니다. –