mingw BSTR 轉 string

作爲筆記,大家分享:


static std::string BSTR2String(BSTR str)
{
    	char buffer[1024] = {0};
    	wchar_t *tmp = str;
    	int BSTRLen = wcstombs(NULL, tmp, 0);
    	wcstombs(buffer, tmp, BSTRLen);

    
	return std::string(buffer);
}


這個是參考的 http://bbs.csdn.net/topics/370064299

        BSTR bstr;
        setlocale(LC_ALL, "");  // 必須設置才能正確處理中文符號,否則會出現截斷
        int nLenOfWideCharStr = mbstowcs(NULL, criteria, strlen(criteria));  // 計算目標多字節字串的長度
        wchar_t *wcCriteria = (wchar_t *)malloc(sizeof(wchar_t) * nLenOfWideCharStr);  // 分配目標字串的存儲空間
        mbstowcs(wcCriteria, criteria, strlen(criteria));  // 執行轉換
        bstr = SysAllocString(wcCriteria);  // 根據wchar_t字串生成BSTR字串
        delete(wcCriteria);  // 銷燬wchar_t字串的存儲空間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章