鱼C论坛

 找回密码
 立即注册
查看: 1194|回复: 1

[已解决]关于资源释放报C2664错误

[复制链接]
发表于 2021-3-25 10:21:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位师傅们,以下这段资源释放代码,在X86编译运行正常,X64就弹C2664错误,网页都翻烂了,也没解惑....
还请前辈们帮助,先谢谢了


错误        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 [260]”转换为“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;
}

最佳答案
2021-3-25 10:31:36
两种方法,  第一把你函数的CHAR*参数改成WCHAR*,第二把字符集改成多字节字符集
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-25 10:31:36 | 显示全部楼层    本楼为最佳答案   
两种方法,  第一把你函数的CHAR*参数改成WCHAR*,第二把字符集改成多字节字符集
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表