我想制作一个程序,将exe和数据连接到一个文件中。
基本:
程序A(程序B,数据)=>程序C
程序A将合并到一个流。甚至使用copy /b B.exe + file.data
的想法也浮现在脑海中。所以我不太关心文件合并得有多干净。
这个想法是程序B知道它将以这种方式使用,并将查找数据。想到的问题是程序C如何知道它的exe代码在哪里结束和数据开始?我知道dos以前使用头数据来定义它们的大小,但我不知道。net中存在什么来进行这种检查
虽然您可以从PE头中计算出.exe的大小,但有一种更简单的方法:将附加部分的长度作为最后一个单词以及一个神奇的数字。要读取它,查找(-WordSizePlusMagicNumberSize, SeekOrigin.End),读取它们并验证它们是有效的
如果您的目标是在可执行文件中嵌入数据,您可以将数据文件作为visual studio中的资源包含吗?
将数据添加为嵌入式资源。
在visual studio中添加您想要添加的文件,然后将文件属性中的构建操作从None(非代码类型的默认值)更改为Embedded Resource。然后编译
下一步取决于你想用它做什么?你可以在你的应用程序中通过ResourceManager访问它,或者以类似的方式编写另一个应用程序来从中提取这些资源数据。
你的问题需要一些背景
或者如果你真的在谈论两个流你可能在谈论ADS, 备用数据流,如果内存不够,这是一个痛苦的,但有代码在那里,提供了一个简单的(大概)API