std::string如何转换为BSTR?
如题,我的std::string存储有中文路径,如何正确转换为BSTR型,具体是应用于BasicExcel中打开中文名的EXCEL文件。
[解决办法]
std::string -> BSTR 举例如下
std::string name = "nisb";
_bstr_t bstr_t(name.c_str());
BSTR ret_val = bstr_t.GetBSTR();
[解决办法]
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t
http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx
[解决办法]
BSTR 其实就是wchar_t *
std::string.c_str() 其实就const char *
const char * 又可以用const_cast<char *>去掉const属性
最终std::string 到BSTR 就转换为MultiByteToWideChar的问题了
[解决办法]
std::string strTemp = "";
wchar_t wzTemp[MAX_PATH*2] = {0};
MultiByteToWideChar(CP_ACP,0,strTemp.c_str(),-1,wzTemp,sizeof(wzTemp));
BSTR bstrTemp = wzTemp;
[解决办法]
++++