我在解决方案中有两个C / C ++可执行项目。其中一个项目需要其他项目的输出;将第二个项目想像成某种安装程序(不是的,所以我不需要安装程序项目,但它会像读取第二个项目的输出一样)。
我是否可以通过某种方式将第一个项目的输出中的原始数据转换为可在编译时使用的数据?我想到的就是这样的东西:
// build order is set so this second project is built after the first is completed
/*c++ constexpr*/ unsigned char ProjectOneOutput[ ] =
SOME_PREPROCESSOR_MACRO_TO_READ_FILES( PROJECT_ONE_OUTPUT_PATH );
// code that uses ProjectOneOutput goes here
编辑:These answers将不起作用。
外部链接不是我想要的,除非有一种方法可以直接在文件中进行。
这不是原始的C / C ++,它需要一个外部程序。
该文件是PE,因此无法将其包含在STR(
)
中。
答案 0 :(得分:1)
没有预处理器工具可让您读取二进制文件。但是,没有什么可以阻止您编写一个小的程序甚至是一个shell脚本来读取二进制文件并输出C代码,这些代码会初始化一个char
数组到文件的内容。
您的程序随后可以#include
生成的文件。因此,您要做的就是将转换程序添加到构建过程中。
答案 1 :(得分:0)
资源是必经之路。如果有人需要,我可以更新此答案以获取更多详细信息。