2012-03-16 41 views
0

我有一個完整的程序後,但是現在,我希望它能夠被更新。因此,我想通過新代碼更改可執行文件中的「代碼」,而不必重新編譯它。如何修改一個exe文件中的代碼更新

可能嗎?如果是的話,我該怎麼做,我使用Qt Creator中的C++進行編碼。

感謝您的任何建議/線索

+1

沒有必要重新編譯究竟是什麼?顯然你不能執行你的新代碼(無論是在舊的還是在新的可執行文件中),除非你先編譯它。 – Jon 2012-03-16 18:00:01

+0

我的意思是......我想的是:我的節目預告有更新,所以下載它,因爲在更新修改,然後是啓動該程序後,右鍵即可使用 – castors33 2012-03-16 18:17:21

+0

以及如何EXE更改代碼那會比簡單地下載一個新的exe並將其複製到舊的更好嗎? – Jon 2012-03-16 18:18:23

回答

1

我的確正是Jon告訴我的:簡單地用新的exe替換舊的exe

2

C++不能這樣做。使用QT,您可以對您想要更改的代碼進行JavaScript實現並更新。

+0

所以...才能夠做到這一點,我必須準確地知道哪個部分的代碼可以被修改更容易,這部分代碼在JavaScript的?!?! – castors33 2012-03-16 18:14:48

+0

@HoCoCinin:是的,或者其他一些非編譯語言。 – 2012-03-16 18:16:18

+0

我很欣賞這個答案(和上面的評論)在技術上是正確的,但恕我直言,它不僅對OP沒用,而且甚至誤導*。 – Jon 2012-03-16 18:19:50

-1

不知道這個回答您的需求,但是你看看ClickOnce的平臺?儘管代碼仍在您的服務器上重新編譯,但客戶端可執行文件通過ClickOnce進行更新。

+0

這將有可能,但它似乎只在Windows上工作...我需要使它在任何系統上工作......謝謝! – castors33 2012-03-16 18:13:39

0

雖然你不能在技術上在C++中做這個沒有重新編譯,如果你不想用另一種編程語言重寫,你可以編寫一個小的幫助程序(儘管原始程序沒有運行)重新編譯第一個程序。

如果你真的想這樣做(這是不難的),我會考慮GNU g++。 如果您使用的是Windows,您可能需要MinGW(我相信它附帶了g ++)。兩者都是自由/開源並根據GNU GPL下降(你需要看一下,如果你正在計劃銷售程序什麼的。不過,你可以自由地送人)

基本上你可以運行程序,在關閉之前調用另一個程序,並讓該程序充當腳本來調用g ++重新編譯您的代碼。我之前做過這個,但是爲了更快的調試,而不是實際發佈一個可以這樣工作的程序。

+0

如果你決定走這條路...... [這裏](http://stackoverflow.com/questions/5689437/compile-cpp-file-to-exe-inside-of-programexe)一個SO問題涉及到這一點 – blakek 2012-03-16 18:49:55

相關問題