标题:关于资源档Res应用
只看楼主
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1817
专家分:3681
注 册:2011-3-24
结帖率:98.24%
已结贴  问题点数:100 回复次数:4 
关于资源档Res应用
请教高手,如何应用资源档载入二进位档后,进行运用?

最近学习了资源档的用法并且实际使用过后,发觉还不错用。日前登入在FTP
连线资讯中,包含连线的目的。帐。密。埠号.....等,等同内建的加密处理,
外面先编好资料格式,使用资源档把文件载入,并和执行档一起编成二进位档
后,程式执行时再用模块将内存中某段二进位码调出,并反解回需要的文字资
讯,再做后续动作。

既然预设是二进位,还需转换处理,那表示也能载入的DLL之类的档案进去吧?
只是突发奇想,不知是否能用将自己写的OCX,载入资源档中,之后再提取出
来使用,这样就可以避掉需要注册的问题,因为老板电脑安装了防木马的程式
,每次要将OCX的注册,都会有警告讯息,每次都要我把一些东西拿掉,很烦。

当然直接使用CTL也行,只是想知道这招用法后,日后不只OCX的,甚至的DLL或
其他布景主题控制项,都能先编进资源档再调出来使用。

也能避免掉要将程式安装到别的电脑时,还要一堆杂七杂八的附属档案一起带
過去,當然這也能使用MSI封裝解決掉。

只是小弟希望做到用一只执行档就可以走天下,版本也比较好做控管,毕竟VB6
内建的版本控管服务功能,不能乱用(已经有专属的程式在用了)。想不到想脱裤
子放屁,也挺難的。
搜索更多相关主题的帖子: 资讯 加密 突发奇想 动作 资源 
2011-09-12 17:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:100 
VB6 使用的 OCX 、DLL ,属于 先申明后使用 的类型,在这种情况下,你必须要先存在这些 DLL,OCX 才能运行程序。
所以,你想把 DLL,OCX 放在 资源档中去做到一个执行档就可以走天下,无法直接实现,但可以变通。

工程做完了,所有的文件都汇在一起。
再开一个新工程。把前面那个工程所有的文件都压到 资源文件中去。
新工程 执行流程:按文件列表释放所有的文件,注册,然后执行,然后监控进程,当执行的线程关闭后,删除所有释放的文件, 退出自己。

这种情况,还是无法做到透过防木马程式。
   
--------------
通过 调用 API ,可以做到后申明调用,但只针对  DLL档。
VB6想调用,比较难,但可以实现。

授人于鱼,不如授人于渔
早已停用QQ了
2011-09-13 08:19
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1817
专家分:3681
注 册:2011-3-24
得分:0 
"工程做完了,所有的文件都汇在一起。"这段...

不知道我的理解有没有错误,看起来感觉类似把第一个工程和相关资料,
先压缩起来,放到其他电脑解压再运行的道理是一样的,只是这样还是
避免不了版本混用的问题,因为不只执行档有版本问题,附属档案的DLL
或OCX也都同样有版本问题,不整个包在一起的话,能让使用者会自由去
调配他喜欢的东西,或是误删什么重要附属档案之类的状况,而后若运
行中出了问题,我们往往要追查很久,浪费时间。

P.S DLL记得好像不用注册,只有OCX才会要注册。

想到在大的游戏程式常看到用的某种资料封装,一个档案有到上GB的大小,
存放类似地图资料之类的,直接打开也是二进位的格式,好像不用解压直
接可以调用,这也是一种解决方法吗?请问要怎做?

不要選我當版主
2011-09-13 15:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
想到在大的游戏程式常看到用的某种资料封装,一个档案有到上GB的大小,
存放类似地图资料之类的,直接打开也是二进位的格式,好像不用解压直
接可以调用,这也是一种解决方法吗?请问要怎做?
--------------------------------------------------------------------------
那种是 自定义的格式的 数据封装类型,类似于 磁盘镜像。
然后打开文件,读取文件,都是使用自定义函数来进行操作的。
并且 特殊数据处理,都是自己进行的,如图像的解码,不是使用 系统 的解码函数,而是自己解码后显示出去。
如 JPG 格式,VB6可以这样处理,
生成时:载入图像,导出 PropertyBag 格式的数据。然后加到这个封装包里。
使用时,读出 PropertyBag 格式的数据,然后直接写到 Picture 格式 里。
--------------------
数据封装:
头,数据区[,分格符],数据区

头,包括
文件标记,
头大小,
文件列表,文件大小,起始数据位置
有必要的话,还可以有 CRC 数据


这种文件,一般在 C++ 里面用的比较大,特别是 游戏里 使用的特别多,用来保存资源,如贴图,模型数据,图片,等 海量小文件数据。
可以极明显的减少 文件数量,减少磁盘占用,提高磁盘性能,也就是游戏读盘性能。
对于一般的工程,并不是很适用。

授人于鱼,不如授人于渔
早已停用QQ了
2011-09-13 16:51
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1817
专家分:3681
注 册:2011-3-24
得分:0 
楼上的说明,猜测应该是说写一支自订的资源档compiler和decompiler的意思吧,
大略知道了。

总体看来,资源档分成2部分,目前说的几乎皆为资料档案的处理,从上楼的说明看
来也是一样,举凡文字档或音乐档或影片档或图片...等,就是被动等着被使用的档
案,其实使用方法扩展功能和我一开始说过的大略相同,自订格式加上自订的反解
模块程式码。

而目前小弟急欲知道的是另一个部分就是工程系主动做什么事的,如果说法是执行
档内再包一个执行档不知道何不合适,虽然希望渺茫,也许是我能力还不足,但是
资料档案和程式码档案同样被载入内存中,同样为二进位码为何资料档案就是资
料,只能被用来做什么事,而程序代码却可以自己主动去做些什么事或让人叫去做
什么事,一定有某个地方造成本质上的差别,搞懂这块应该就能实现我要的东西。

也许RES原本就没有让人这么使用的功能,要就得像楼上说的,自己写自己的RES资
源compiler加decompiler,所以脱裤子放屁不是一般人玩得起的吧。

不要選我當版主
2011-09-14 11:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349769-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019620 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved