返回信息流RT
就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的
VC++能这样么?
这是一条镜像帖。来源:北邮人论坛 / cpp / #34656同步于 2010/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]请问如何更新一个exe文件的内容
Snowboarding
2010/1/4镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 Snowboarding 的大作中提到: 】
: RT
: 就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的
: VC++能这样么?
用新程序替换老程序不就行了。。。。。。
【 在 Snowboarding 的大作中提到: 】
: RT
: 就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的
: VC++能这样么?
呃 打包进去资源太复杂了 我给你介绍一个通用的办法: 直接把程序所要用的数据直接附加放在exe文件的末尾,然后在程序中打开该exe文件,定位文件指针到正确位置读取相应数据就ok了。但要小心,有一些杀毒软件会把这样的exe文件当做病毒可疑文件。
【 在 jmpesp 的大作中提到: 】
: 呃 打包进去资源太复杂了 我给你介绍一个通用的办法: 直接把程序所要用的数据直接附加放在exe文件的末尾,然后在程序中打开该exe文件,定位文件指针到正确位置读取相应数据就ok了。但要小心,有一些杀毒软件会把这样的exe文件当做病毒可疑文件。
“程序所要用的数据直接附加放在exe文件的末尾”
是说 A.exe 直接指到 A.exe文件 的相应部分,然后读取需要的资源是把?
这样是能读,但是咋改啊?
【 在 Wing 的大作中提到: 】
: 用新程序替换老程序不就行了。。。。。。
你的意思是做个单独的升级程序,去做exe的升级?这样是可以,不过不如 “极品时刻表”那样一个exe 方便啊
可以直接往exe末尾添加,PE文件末尾后添加任意长的数据不影响文件执行。反正代码和资源段数据长度是预先知道的,直接取偏移就能定位到所需信息。
至于如何修改自身,网上有很多方法。
【 在 Snowboarding 的大作中提到: 】
: 你的意思是做个单独的升级程序,去做exe的升级?这样是可以,不过不如 “极品时刻表”那样一个exe 方便啊
可以打包到一块儿,只在升级的时候释放出来更新一下主程序
【 在 FadeToBlack 的大作中提到: 】
: 可以直接往exe末尾添加,PE文件末尾后添加任意长的数据不影响文件执行。反正代码和资源段数据长度是预先知道的,直接取偏移就能定位到所需信息。
: 至于如何修改自身,网上有很多方法。
网上基本都是这么说的:
因为程序正在运行,所以系统加锁了,不能修改也不能删除,必须由另一个进程来代劳。
修改EXE/DLL中的资源需要用到BeginUpdateResource/UpdateResource/EndUpdateResource这3个API。
好像你说的应该不是这个意思吧?能给个例子么,或者大概的关键词,我自己去搜一下…