Iva*_*nov 2 c++ windows string
这是我的程序:
bool Open(std::string filename)
{
...
HANDLE hFile = CreateFile(filename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
...
}
Run Code Online (Sandbox Code Playgroud)
错误:'CreateFileW':无法将参数1从'const char*'转换为'LPCWSTR'指向的类型不相关; 转换需要reinterpret_cast,C风格的转换或函数式转换
问题出在哪儿?
jal*_*alf 13
std :: string由一个char数组组成,因此该c_str函数返回一个const char*.
A LPCWSTR是指向常量宽字符串的长指针,换句话说,const wchar_t*.
所以你有几个选择.要么将文件名作为宽字符串(std :: wstring)获取,要么指定您想要非宽版本的CreateFile.这可以通过调用CreateFileA或在项目设置中禁用UNICODE来完成.
CreateFile是一个宏,它根据是否启用了unicode,解析为CreateFileA(char版本)或CreateFileW(宽char版本).
| 归档时间: |
|
| 查看次数: |
2907 次 |
| 最近记录: |