或者如何使用wchar_t *初始化一个wstring?如何将wchar_t *转换为wstring?
我尝试了这样的事情,但它不是很有效。 我给了一个LPVOID,它指向一个wchar_t指针。 我只想把它放到一个wstring中,这样我就可以使用一些正常的字符串函数。
LPVOID lpOutBuffer = NULL;
//later in code this is initialized this way
lpOutBuffer = new WCHAR[dwSize/sizeof(WCHAR)];
//fills up the buffer
doStuff(lpOutBuffer, &dwSize);
//try to convert it to a wstring
wchar_t* t = (wchar_t*)lpOutBuffer;
wstring responseHeaders = wstring(t);
printf("This prints response headers: \n%S", t);
printf("This prints nothing: \n%S", responseHeaders);
doStuff真是WinHttpQueryHeaders 呼叫我只是改变它,使其更容易理解我的例子。
应该工作 - 'wstring'有一个构造函数。你得到了什么?此外,缓冲区是否以null结尾? – 2012-01-18 19:34:21
我更新了初始化指针的代码。我是新来的C++,所以我仍然围绕着指针等。我不知道wchar_t是否以null结尾。我打电话给WinHttpQueryHeaders功能 - http://msdn.microsoft.com/en-us/library/windows/desktop/aa384102(v=vs.85).aspx我不知道它是否为null终止缓冲区。 – ScArcher2 2012-01-18 19:40:29
@ ScArcher2:“这不太合适”是什么意思? – 2012-01-18 19:42:23