欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]任意文件转obj/lib的小工具(附源码)

[原创]任意文件转obj/lib的小工具(附源码)

很久没有来逛了,从论坛下载了不少各位大侠的作品,但大多成了收藏品,还是非常感谢各位网友!
    分享一个小工具吧,它没有什么大用,主要用来打包,可以把任意文件转换成obj/lib,方便在程序中引用。
为什么要这样呢?原因很简单:
     1)如果你作为resource导入工程当然可以,但别人用……比如VC,open as resource就看见了,另存为就完整的抓到了。7zip提取资源也很easy。可能你不介意这个。
     2)你自己要用的时候要FindResource()/LoadResource(),大概勤劳的你也不介意。
     3)你可以压缩文件减小尺寸,加密文件以防字符串查找什么的。大家可以自由发挥,虽然我没提供这类功能。当然,作为资源也可以这样做。
用法:
在命令行下运行
    cvmk 文件列表
得到libbin.h/.lib,链接到你的工程里面即可。文件列表可以是单个文件,也支持通配符*/?。
    由于我比较懒,批处理命令最多只接受9个参数,对于聪明的你应该够用了。比如你要转换一堆DLL,放到A:\binary目录下,在A:\binary目录下执行 cvmk *.dll,只用了一个参数。
   用的地方
       #include "libbin.h"
       #pragma comment(lib,"libbin.lib")
    假设源文件是abc.dll,libbin.h里面会定义ORG_SIZEOF_ABC_DLL为源文件的字节数,extern unsigned char  abc_dll[],这个数组就是源文件的内容。注意:这个声明不要改,这样声明最简洁,不信你改别的样式试试。
    已知缺陷:基本文件名相同,扩展名不同的多个文件不能转,原因是转换时简单地去掉了扩展名,只产生一个.obj。
    最后说明一下,里面附带的工具是VC6的,源码只有区区4KB。你可以做一些改动以适合你的需要。比如数据段名不叫.rdata,或者包含共享属性,或者可执行,或者其他的CPU架构,诸如此类。
     祝各位网友新年快乐!

上传的附件 convert.png
convert.7z

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功