将 .cpp 文件编译为程序内部的 EXE(EXE 文件)
我想制作一个程序(EXE 文件),它将采用用户定义的设置并制作一个前面提到的程序 (EXE) 内部的用户自定义 (EXE) 文件。是否有类似便携式 GCC 之类的东西?
请尽可能详细。我不太确定从哪里开始。
I want to make a program (EXE file) that will take the user defined settings and make a custom (EXE) file for the user inside of the previously mentioned program (EXE). Is there like a portable GCC or something?
Please be as detailed as possible. I am not really sure where to start with this one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编译器本身只是另一个程序,它读取一些输入(源代码)并写入一些输出(目标代码,如果也运行链接器,则为可执行文件)。您可以使用类似
system()
调用来执行编译器,例如使用 gcc:这将运行编译器 (
g++
),告诉它创建一个输出文件使用指定的源文件 (test.cpp
) 具有特定名称 (-o test
)。The compiler itself is just another program which reads some input (source code) and writes some output (object code, or executable if it runs the linker too). You can use something like the
system()
call to execute a compiler, for example with gcc:That will run the compiler (
g++
), telling it to create an output file with a specific name (-o test
) using the named source file (test.cpp
).您最好的选择是使用 嵌入式资源 - 然后使用例如 BeginUpdateResource 和相关函数来修改预先创建的 EXE 文件。 资源的 MSDN 概述包含将
RT_RCDATA
块添加到 EXE、运行时检索其内容以及从另一个程序修改其内容所需的信息。Your best bet for this is to use an embedded resource - then use e.g. BeginUpdateResource and related functions to modify a precreated EXE file. The MSDN overview of resources contains the information you need to add a
RT_RCDATA
block to your EXE, retrieve its contents run-time, and modify its contents from another program.