我有以下代码:

   PARAMS Params;
   Params.pwchFileName = wide.c_str() ;

但是我得到这个错误:
    a value of type "const wchar_t *" cannot be assigned to an entity of type "wchar_t *"

如何进行这项作业?

最佳答案

您可以非常小心地使用const_cast:
const_cast<wchar_t*>( wide.c_str());
但是这里还有其他问题:如果widestd::string,则c_str()的结果仅在wide处于范围内且没有任何更改的情况下才有效。即使您符合此要求,PARAMS的使用者也可以修改字符串缓冲区,这将给您带来不确定的行为。

最好的做法是使用strcpy来获取字符串缓冲区的深拷贝,并在完成该操作后记得记住该缓冲区的delete

09-25 20:19