2014-09-01 3 views
1

CDynamicStringAccessor를 사용하여 저장 프로 시저에서 '열 이름'을 검색하려고 할 때 내 CSV 파일의 첫 줄에 쓸 때까지 LPOLESTR에서 char * OR std :: string으로의 변환을 처리합니다.LPOLESTR을 C++에서 char *로 변환하는 방법

몇 가지 연구 끝에 마침내 가장 간단한 방법을 찾았습니다. 나는 곧 답변을 게시 할 것이며, 이것이 동일한 문제를 가진 사람들을 도울 수 있기를 희망합니다.

+1

'OLECHAR'은 (Windows 95가 아니라면)'wchar_t'와 동일하기 때문에'LPWSTR'을 변환하기위한 답을 참조 할 수도 있습니다. –

답변

-2
//................. 

    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); 
//.................... 
+0

이 코드 선량, 남자 : USES_CONVERSION; LPCSTR szText = OLE2CA (컬럼 이름); –

5

ATL conversion macros을 사용할 수 있습니다. 중요한 대안은 변환하지 않고 그대로 실제로 넓은 문자열을 사용하는 것입니다 wchar_t

1995에 대한 이후 OLECHAR이기 때문에, 또한

USES_CONVERSION; 

std::string my_string = OLE2CA(the_lpolestr); 

참조 몇 가지 대안에 대한 답변 here :이 일시적으로 스택에서 할당 그것은 (정보를 잃어 버리거나, UTF-8 문자열을 생성 할 것이다. UTF-8 문자열은 여러분이 그것을 사용하려고하는 것에 적합 할 수도 있고 그렇지 않을 수도있다).

+0

예, 그게 내가 한 일입니다. 게시물 주셔서 감사합니다. –