string与wstring的互转实际上就是多字节字符串与宽字符串的转换.
我们可以使用MultiByteToWideChar和WideCharToMultiByte进行转化.
以MultiByteToWideChar为例: MultiByteToWideChar的原型如下
值得一提的是
cbMultiByte 是指源字符串的字节长度,如果填-1,则系统自动进行计算. cchWideChar 是指目标缓冲区能容纳的宽字符数(不是字节数),如果传入0.则函数不会执行转换,而是返回一个宽字符数(包括终止字符'/0')
因此可以先计算宽字符数,再申请适当的内存作为缓冲区进行转换.
代码如下: