如何将int转换为BSTR
How to Convert int to BSTR?
我有一个问题,BSTR如何接受数字这里的第二行给出错误
unsigned int number =10;
BSTR mybstr=SysAllocString(number);
这条线也给出了一个错误
VarBstrCat(mybstr, number, &mybstr);
谢谢:)非常感谢您的帮助:)
首先,SysAllocString
接受const OLECHAR*
,而不是int
其次,VarBstrCat
的第二个参数是BSTR
,而不是int
要将int
转换为BSTR
,可以这样做:
std::wstring s = std::to_wstring(number); // needs C++11
BSTR mybstr = SysAllocString(s.c_str());
更新:或者更高效,正如雷米·勒博在评论中所建议的那样:
BSTR mybstr = SysAllocStringLen(s.c_str(), s.length());
更新2:如果你的编译器不支持C++11,你可以使用C函数swprintf()
:
wchar_t buf[20];
int len = swprintf(buf, 20, L"%d", number);
BSTR mybstr = SysAllocStringLen(buf, len);
您需要将数字转换为unicode字符串,然后才能获得它的BSTR。为此,您可以使用_itow
将int
转换为unicode字符串。
unsigned int number = 10;
wchar_t temp_str[11]; // we assume that the maximal string length can be 10
_itow(number, temp_str, 10);
BSTR mybstr = SysAllocString(temp_str);
相关文章:
- 随机字符,从强制转换 Arduino 字符串到 Excel BSTR 通过 c++ DLL
- 如何将 CComVariant bstr 转换为 CString
- 如何解决此错误(将WCHAR_T转换为BSTR)
- 将 BSTR 转换为 BYTE 数组C++
- 如何在Visual C 中的BSTR和32位Unicode字符串之间进行转换
- 将 BSTR 转换为 CString 时出错
- 如何在Visual Studio C++2010中将BSTR转换为std::string
- 将BSTR HEXA小数线转换为C 中的字节 *
- 为什么BSTR以及如何将其转换为QString
- 如何将 UnicodeString 转换为 BSTR
- 从 BSTR tp std::string 转换大字符串
- 为什么我的 BSTR 到 std::wstring 的转换这么慢?我的测试仪不好吗?
- 当使用W2A将BSTR转换为std::string时,是否需要进行任何清理
- BSTR 到 CString 的阿拉伯语文本转换
- 在 VSS 硬件框架 c++ 中将 BYTE 转换为 BSTR
- 调用CreateProcessW(Mobile MFC)时BSTR到LPCWSTR的转换
- 如何将int转换为BSTR
- 将BSTR转换为LPCWSTR
- OPOS BSTR*转换不正确
- BSTR转换为std::string(std::wstring),反之亦然