This question already has answers here:
What exactly is a PWSTR and why use this naming compared to char*, std::string, or CString in C++?

(8个答案)


5年前关闭。




我正在尝试将wstring *转换为PWSTR *。
根据http://devsolvd.com/questions/how-to-convert-std-string-to-lpcstr,PWSTR为wchar_t *。所以PWSTR *是wchar_t **

根据文档http://en.cppreference.com/w/cpp/string/basic_string,wstring是wchar_t。所以wstring *是whar_t *

要将wstring转换为PWSTR,我正在尝试以下表达式:
std::wstring *currentMetric =...
PWSTR *metric=...
*metric=currentMetric

正在收到错误“无法从'std::wstring *'转换为'PWSTR'”
我不想使用c_str,因为它返回PCWSTR,而const_cast可以提供PWSTR,但是重新分配变量可能会导致数据损坏。

我想知道其他方法。

谢谢

编辑: answer建议使用c_str(),但我想使用c_str()以外的其他东西

最佳答案

我找到了一种方法来做到这一点:
* metric =&(* currentMetric)[0];

PS。我不想使用c_str,因为它会返回PCWSTR,可以将cons_cast传输到PWSTR。但是重新分配该变量可能会导致数据损坏

关于c++ - 将wstring *转换为PWSTR ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32887714/

10-09 05:59