如何制作 LPCWSTR 的副本?

Mat*_*ian 5 c c++

我必须采取哪些步骤来复制 LPCWSTR 字符串?

考虑这样一个案例: LPCWSTR str = L"Copy me";

Phi*_*ade 4

使用wcscpy()。这是MSDN文档:

http://msdn.microsoft.com/en-us/library/kk6xf663(v=vs.90).aspx

更安全的变体是wcscpy_s()。您必须分配一个足够大的缓冲区来保存前面的副本:

   LPCWSTR str = L"Copy me";
   std::vector<wchar_t> thecopy( wcslen(str) + 1 ); // add one for null terminator
   wcscpy_s(thecopy.data(), thecopy.size(), str);

   // you can get a pointer to the copy this way:
   LPCWSTR *strCopy = thecopy.data();
Run Code Online (Sandbox Code Playgroud)

wcscpy_s() 的文档可以在这里找到:

http://msdn.microsoft.com/en-us/library/td1esda9(v=vs.90).aspx