[英]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.