复制LPCWSTR字符串需要采取哪些步骤?
考虑案例:LPCWSTR str = L"Copy me";
答案 0 :(得分: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();
wcscpy_s()&#39的文档可以在这里找到:
http://msdn.microsoft.com/en-us/library/td1esda9(v=vs.90).aspx
答案 1 :(得分:2)
使用wcscpy
LPWSTR wcscpy(LPWSTR szTarget, LPWCSTR szSource);
Target是非常量宽字符串(LPWSTR),source是常量宽字符串。
LPCWSTR
定义为
typedef const WCHAR* LPCWSTR;
LP - 指针
C - 常数
WSTR - 宽字符串
答案 2 :(得分:1)
假设LPCWSTR
等同于const wchar_t *
,那么对于GNU系统,您可以使用wcsdup()
:
wchar_t * wcsdup(const wchar_t * s);
该功能也由POSIX.1-2008
定义。