【发布时间】:2010-03-22 23:46:16
【问题描述】:
有没有办法在编译期间将现有的 .exe 文件与其他 C++ 源文件链接?我实际上想要做的是使用 LZMA(7zip) SDK 在我的控制台程序中压缩和解压缩一些文件,但不幸的是对于新手来说很难使用。
有一个名为 7za.exe 的 LZMA 命令行版本,我想知道是否可以将它嵌入到我的程序中并像函数一样使用它。它可以很容易地与 system() 函数一起使用(这似乎是一件非常危险的事情),但是如果我将我的程序发送给在正确文件夹中没有 7za.exe 的人,它将无法工作。
我在 windows.h 头文件中遇到了 CreateProcess() 函数,但它似乎以更适当和更高级的方式实现了 system() 的功能。我不知道它是否真的可以在编译期间像目标文件一样链接 exe文件
【问题讨论】:
-
如果您询问使用 MS link.exe 或 GNU 的 ld 之类的链接器进行链接,那么它不能。这与 C++ 无关。
-
您在使用压缩 SDK 时走在了正确的轨道上。不要为此使用外部 exe。请发布您在使用 7zip 时遇到的问题。
标签: system exe createprocess