Fortran Coder

查看: 3866|回复: 11
打印 上一主题 下一主题

[讨论] 隐藏文件到exe中

[复制链接]

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
跳转到指定楼层
楼主
发表于 2023-2-1 15:23:14 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
有没有办法把一个文件(图片,office文档等),隐藏到Fortran的exe中,运行这个exe的时候自动释放出来,运行结束了再删掉?
分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
沙发
 楼主| 发表于 2023-2-1 17:51:52 | 显示全部楼层
fcode 发表于 2023-2-1 16:52
windows系统的话,可以包含在 Resource 资源里。
然后通过 FindResourceEx,LoadResource,SizeofResource  ...

多谢回复!
这些是Windows的API?大致理解原理了,但是在Fortran中怎么用这些函数?能否帮忙做个Demo?

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
板凳
 楼主| 发表于 2023-2-1 19:32:31 | 显示全部楼层
本帖最后由 andy8496 于 2023-2-1 19:34 编辑
fcode 发表于 2023-2-1 16:52
windows系统的话,可以包含在 Resource 资源里。
然后通过 FindResourceEx,LoadResource,SizeofResource  ...

非常感谢!
恕我愚钝, 没懂函数的参数什么意思
Function WriteResourceToFile( resType , resID , fileName )
resType : 如果是二进制文件,应该如何指定该类型?直接用资源文件后缀名可否?
resID : 如何得到这个ID?我查了函数原型:

HRSRC FindResourceEx(HXODULE hModule,LPCTSTR lpType,LPCTSTR lpName,WORD wLanguage);

参数:

lpName:指向说明资源文件名称并以NULL为结束符的字符串。若要了解更多的信息,请参见注意部分。
这是不是应该是资源文件的名称字符串?
如果确为整数ID,我调用此函数前应该如何得到该ID?
另外,0_2,是什么意思呢?

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
地板
 楼主| 发表于 2023-2-1 19:34:43 | 显示全部楼层
本帖最后由 andy8496 于 2023-2-1 19:40 编辑
fcode 发表于 2023-2-1 19:11
你用的什么编译器?

VS+IVF+Win7
奇怪,好像我在Resource Files里面加不加文件,编译出来的exe大小是一样的。

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
5#
 楼主| 发表于 2023-2-1 22:39:29 | 显示全部楼层
andy8496 发表于 2023-2-1 19:32
非常感谢!
恕我愚钝, 没懂函数的参数什么意思
Function WriteResourceToFile( resType , resID , fileNa ...

终于成功了!如果我想编译成64位的,
use kernel32 , only : SizeofResource , LockResource , LoadResource , FindResourceEx
需要改成什么名字?

123

帖子

32

主题

0

精华

宗师

F 币
1562 元
贡献
795 点
6#
 楼主| 发表于 2023-2-2 10:33:15 | 显示全部楼层
fcode 发表于 2023-2-2 08:35
好的,我改得严谨一点,可以兼容x86和x64。
另外,你可以尝试在 rc 文件里包含一个 ico 图标,和版权信息 ...

多谢多谢!昨天试了下版权信息。资源以前没用过,有点打开新世界的感觉。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 13:42

Powered by Tencent X3.4

© 2013-2024 Tencent

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