繁体   English   中英

怎么把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());

UPDATE2:如果您的编译器不支持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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM