Or how to I initialize a wstring using a wchar_t*?
I tried something like this, but it's not quite working. I'm given an LPVOID and it points to a wchar_t pointer. I just want to get it into a wstring so I can use some normal string functions on it.
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 is really a call to WinHttpQueryHeaders I just changed it to make it easier to understand my example.
Passing the wstring
object to printf
is not going to work. Rephrase the second prinf
line as
printf("This prints nothing: \n%S", responseHeaders.c_str());
c_str() gives you a const
pointer to the underlying string data.