关于资源释放报C2664错误
各位师傅们,以下这段资源释放代码,在X86编译运行正常,X64就弹C2664错误,网页都翻烂了,也没解惑....还请前辈们帮助,先谢谢了{:7_126:}
错误 C2664 “HRSRC FindResourceW(HMODULE,LPCWSTR,LPCWSTR)”: 无法将参数 3 从“CHAR *”转换为“LPCWSTR”
错误 C2664 “HANDLE CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)”: 无法将参数 1 从“CHAR *”转换为“LPCWSTR”
错误 C2664 “DWORD GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD)”: 无法将参数 2 从“char ”转换为“LPWSTR”
BOOL ReleaseLibrary(UINT uResourceId, CHAR* szResourceType, CHAR* szFileName)
{
// 找到资源
HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(uResourceId), szResourceType);
// 获取资源大小
DWORD dwSize = SizeofResource(NULL, hRsrc);
// 载入资源
HGLOBAL hGlobal = LoadResource(NULL, hRsrc);
// 锁定资源,并返回指向资源第一字节的指针
LPVOID lpRes = LockResource(hGlobal);
HANDLE hFile = CreateFile(szFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwWriten = 0;
BOOL bRes = WriteFile(hFile, lpRes, dwSize, &dwWriten, NULL);
CloseHandle(hFile);
/*
CloseHandle(hGlobal);
CloseHandle(hRsrc);
*/
return TRUE;
}
两种方法,第一把你函数的CHAR*参数改成WCHAR*,第二把字符集改成多字节字符集
页:
[1]