UpdateResource(增加、删除或替代某可执行文件中的资源)

功能:该函数增加、删除或替代某可执行文件中的资源

函数原型:[code]UpdateResource  hUpdate, lpType, lpName, wLanguage, lpData, cbData[/code]参数详解:[code]hUpdate   -> 由BeginUpdateResource函数创建的更新资源的句柄
lpType    -> 指向说明将被更新的资源类型的字符串,它以NULL为终止符。类型详见备注
lpName    -> 指向说明待被更新的资源名称的字符串,它以NULL为终止符。
wLanguage -> 指定将被更新资源的语言标识。
lpData    -> 指向被插入可执行文件的资源数据的指针。如果资源是预定义类型值之一,那么数据必须是有效且适当排列的。注意这是存储在可执行文件中原始的二进制数据,而不是由Loadlcon,LoadString或其他装载特殊资源函数提供的数据。所有包含字符串、文本的数据必须是Unicode格式;IpData不能指向ANSI数据。
如果为NULL,所指定的资源将从可执行文件中被删除。
cbData    -> 指定lpData中的资源数据数据大小,以字节计数[/code]返回值:[code]成功,返回非零;失败,返回零。若想获得更多的错误信息,请调用GetLastError函数。[/code]*************************************
备注:
1.所在库:kernel32
2.应用程序重复使用UpdateResource去改变资源数据。每次UpdateResource调用都要占用系统内部的一个增加、删除、替代的列表,而实际上并没有将数据写到可执行文件中。应用程序必须通过使用EndUpdateResource函数将每次积累的变化写入可执行文件中。
3.类型对应表:[code]RT_ACCELERATOR -> 加速器表
RT_ANICURSOR   -> 动态光标
RT_ANIICON     -> 动态图标
RT_BITMAP      -> 位图资源
RT_CURSOR      -> 由硬件支持的光标资源
DI_DIALOG      -> 对话框
RT_FONT        -> 字体资源
RT_FONTDIR     -> 字体目录资源
RT_GROUP_CURSOR -> 与硬件无关的光标资源
RT_GROUP_ICON  -> 与硬件无关的目标资源
RT_HTML        -> HTML文档
RT_ICON        -> 由硬件支持的图标资源
RT_MENU        -> 菜单资源
RT_MESSAGETABLE -> 消息表的入口
RT_PLUGPLAY    -> 即插即用资源
RT_RCDATA      -> 应用程序定义资源(原始数据或自定义资源)
RT_STRING      -> 字符表入口
RT_VERSION     -> 版本资源
RT_VXD         -> VXD[/code] 

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MFC (Microsoft Foundation Class) 是微软提供的一组应用程序框架,其可以帮助程序员快速开发 Microsoft Windows 平台下的应用程序。其,自动更新资源MFC 的一个重要功能,其可以帮助软件自动升级,并更新最新的版本信息。 在 MFC 使用自动更新资源需要经过以下步骤: 首先,需要在资源文件定义自动更新资源相关的信息,例如版本信息、下载地址等等。然后,在应用程序初始化时,可以调用函数 EnableVersionCheck() 来启用自动更新资源的功能。在应用程序运行过程MFC 将会自动检测服务器上的最新版本,并提示用户是否需要升级。如果用户同意升级,MFC 将会自动下载最新的程序,并安装升级。 如果需要在自动更新资源更新版本信息,可以通过以下步骤实现: 1. 修改资源文件的版本号,例如修改 VERTIONINFO FILEVERSION 和 PRODUCTVERSION 字段。 2. 在应用程序调用函数 AfxSetResourceHandle() 来指定使用的资源句柄。 3. 调用函数 AfxLoadLibrary() 来动态加载 DLL,以便更新程序的版本信息。 4. 使用函数 UpdateResource() 来修改版本资源的信息,例如修改版本号、文件描述等等。 5. 最后,调用函数 FreeLibrary() 来卸载 DLL 文件。 以上就是在 MFC 自动更新资源更新版本信息的方法。需要注意的是,为了确保自动更新资源的可靠性和安全性,程序员需要保证下载的程序经过验证,并进行合理的安全措施。 ### 回答2: 在MFC,实现自动更新资源的版本信息可以通过以下步骤: 1. 在工程资源添加版本信息,包括文件版本、产品版本等各种版本属性。 2. 在代码使用CWinApp类的GetAppVersion函数来获取当前程序的版本信息。 3. 在自动更新程序,通过读取从服务器上下载下来的版本信息文件,获取最新的版本信息。 4. 对比本地程序和最新版本的版本信息,如果本地程序版本较旧,则提示用户是否更新程序。 5. 如果用户确认要更新程序,先备份原程序文件,然后下载最新版本的程序文件,并替换原程序文件。 6. 更新完成后,再次运行程序时,就可以使用新的版本信息了。 需要注意的是,自动更新程序需要有足够的权限来替换原程序文件,否则更新过程可能会受到阻碍。同时还需要保证服务器上的版本信息文件和可执行程序的版本信息一一对应,否则可能会出现版本不兼容的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值