我正在尝试将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()以外的其他方法。
发布于 2015-10-02 03:35:35
我找到了一种方法:*metric = &(*currentMetric);
我不想使用c_str,因为它返回了PWSTR,PWSTR可以被cons_cast到PWSTR。但是重新分配hthe变量可能会导致数据损坏
发布于 2015-10-01 20:39:24
此部分不正确:
根据文档http://en.cppreference.com/w/cpp/string/basic_string,wstring为wchar_t。因此wstring*为whar_t*
wstring是wchar_t*的包装器,而不是wchar_t。要访问底层的wchar_t*,请使用c_str成员函数。
https://stackoverflow.com/questions/32887714
复制相似问题