我正在使用C ++编写一个创建.bmp
文件的程序,但是我收到一个错误,我不明白:
' HANDLE CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)':不能转换参数1来自' const char [11]'到LPCWSTR'
编译此代码时会发生此错误:
file = CreateFile("exmple.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
答案 0 :(得分:5)
您正在编译时启用UNICODE
,因此CreateFile()
映射到CreateFileW()
,其第一个参数是LPCWSTR
,指向16位的指针(宽字符串。
要修复错误,请将L
添加到字符串文字的前面,使其成为一个宽字符串:
file = CreateFile(L"exmple.bmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
答案 1 :(得分:2)
您需要添加' L'在文件名之前。
答案 2 :(得分:1)
放一个' L'在" example.bmp"前面字符串,例如:
file = CreateFile(L"exmple.bmp",GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);
这改变了" example.bmp"成为一个宽字符串。