C++ 更新后如何修改exe文件中的代码

C++ 更新后如何修改exe文件中的代码,c++,qt,exe,C++,Qt,Exe,我有一个完整的程序,但现在,我希望它能够被更新。因此,我想用新代码更改可执行文件中的“代码”,而无需重新编译 可能吗?如果是,我怎么办,我在QT+中用C++编码。 谢谢你的建议/线索C++不能这样做。有了QT,你可以用javascript实现你想要更改的代码,并对其进行更新。C++做不到这一点。有了QT,你可以用javascript实现你想要更改的代码,并对其进行更新。不确定这是否满足你的需要,但是你有没有研究过ClickOnce平台?尽管代码仍然会在服务器上重新编译,但客户端可执行文件会通过C

我有一个完整的程序,但现在,我希望它能够被更新。因此,我想用新代码更改可执行文件中的“代码”,而无需重新编译

可能吗?如果是,我怎么办,我在QT+中用C++编码。
谢谢你的建议/线索

C++不能这样做。有了QT,你可以用javascript实现你想要更改的代码,并对其进行更新。

C++做不到这一点。有了QT,你可以用javascript实现你想要更改的代码,并对其进行更新。

不确定这是否满足你的需要,但是你有没有研究过ClickOnce平台?尽管代码仍然会在服务器上重新编译,但客户端可执行文件会通过ClickOnce更新

不确定这是否满足您的需求,但您是否查看了ClickOnce平台?尽管代码仍然会在服务器上重新编译,但客户端可执行文件会通过ClickOnce更新

> P> >在C++中,如果没有重新编译,就不能在技术上做到这一点,如果不想用另一种编程语言重写,可以编写一个小的帮助程序(而原始程序没有运行)重新编译第一个程序。 如果你真的想这么做(一点也不难),我会调查的。 如果你使用的是Windows,你可能会想要(我相信这是g++安装的)。两者都是免费/开源的,都属于GNU GPL(如果你打算出售你的程序,你需要考虑一下这一点。但是,你可以免费赠送)


基本上,您可以运行您的程序,在关闭之前调用另一个程序,并让该程序作为脚本调用g++重新编译代码。我以前做过这一点,但是为了更快地调试而不是实际释放一个这样的程序。

虽然在技术上不能在C++中这样做而不需要重新编译,但是如果你不想用另一种编程语言重写,你可以编写一个小的帮助程序(而原始程序不运行)。重新编译第一个程序

如果你真的想这么做(一点也不难),我会调查的。 如果你使用的是Windows,你可能会想要(我相信这是g++安装的)。两者都是免费/开源的,都属于GNU GPL(如果你打算出售你的程序,你需要考虑一下这一点。但是,你可以免费赠送)



基本上,您可以运行您的程序,在关闭之前调用另一个程序,并让该程序作为脚本调用g++重新编译代码。我以前也这样做过,但是为了更快的调试,而不是发布一个这样工作的程序。

我完全按照Jon告诉我的做了:用新的替换旧的exe

我完全按照Jon告诉我的做了:用新的替换旧的exe,而不必重新编译什么?显然,除非先编译新代码,否则无法执行新代码(在旧的或新的可执行文件中)。我的意思是…我希望:我的程序注意到有一个更新,所以它会下载它,更改在更新中修改的exe中的代码,然后在准备好使用后立即启动程序,这比简单地下载新的exe并将其复制到旧的exe中更好吗?我可以做到这一点吗?我的意思是,无论我使用什么平台,我都可以简单地用新的exe替换旧的exe?这就是复制文件的工作原理。问题是,您无法让exe在运行时自行替换,因此需要另一个exe来替换第一个exe。这就是为什么所有自动更新的程序都有一个单独的“更新程序”组件。而不必重新编译到底是什么?显然,除非先编译新代码,否则无法执行新代码(在旧的或新的可执行文件中)。我的意思是…我希望:我的程序注意到有一个更新,所以它会下载它,更改在更新中修改的exe中的代码,然后在准备好使用后立即启动程序,这比简单地下载新的exe并将其复制到旧的exe中更好吗?我可以做到这一点吗?我的意思是,无论我使用什么平台,我都可以简单地用新的exe替换旧的exe?这就是复制文件的工作原理。问题是,您无法让exe在运行时自行替换,因此需要另一个exe来替换第一个exe。这就是为什么所有自动更新的程序都有一个单独的“更新程序”组件。这是有可能的,但它似乎只在windows上工作…我需要让它在任何系统上工作…谢谢!这是有可能的,但它似乎只在windows上工作…我需要让它在任何系统上工作…谢谢!所以…要做到这一点,我必须确切地知道代码的哪一部分可以修改,并用JavaScript编写这一部分@HugoCardin:是的,或者其他一些非编译语言。我很欣赏这个答案(以及上面的评论)在技术上是正确的,但我认为它不仅对OP毫无用处,甚至会产生误导。所以…要做到这一点,我必须确切地知道代码的哪一部分可以修改,并用JavaScript编写这一部分@HugoCardin:是的,或者其他一些非编译语言。我很欣赏这个答案(以及上面的评论)在技术上是正确的,但我认为它不仅对OP毫无用处,甚至会产生误导。如果你决定走这条路。。。如果你决定走这条路的话。。。这是一个非常重要的问题