我有一个只需要一个LPWSTR
作为参数的函数。但是,我需要在其末尾添加整数。
这是一个示例伪代码:
int theNumber = 5;
LPWSTR myLPWSTR = L"Number is: ";
/* Add theNumber to myLPWSTR */
myFunction(myLPWSTR);
这个怎么做?
我已经尝试过将
int
转换为LPWSTR
,然后将它们串联起来,但没有成功。我已经在整个早上尝试过了,但是却不知道该怎么做。我试过了。 wsprintf,_itow_s,c_str以及我所知道的几乎所有内容-但是做不到,这真的令人沮丧。
有人请帮忙。
最佳答案
假设该函数确实需要一个LPWSTR
而不是一个LPCWSTR
(即它可以修改传入的字符串),则您必须执行以下操作:
int theNumber = 5;
std::wostringstream s;
s << L"Number is: " << theNumber;
std::wstring str = s.str();
std::vector<wchar_t> buf(str.begin(), str.end());
buf.push_back(0);
myFunctions(&buf[0]);
这是必需的,因为您需要提供一个正确的以nu终止且可修改的
wchar_t
s缓冲区。 str.c_str()
为nul终止,但不可修改。 &str[0]
是可修改的,但不能(保证为)以nul终止。关于c++ - 如何将整数添加到LPWSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20947486/