2013-03-26 14 views
0

否決這個問題是罰款明顯,但請告訴我,爲什麼這是愚蠢的或不希望,我只是努力學習如何編寫複雜的可執行文件?


我的目標是理解Chrome等複雜的程序。

據我所知,這些文件可能只需要幾行就可以將文件提取到指定位置,編輯註冊表或執行簡單任務(如.bat文件)。

但是複雜的.exe文件如acrobat.exe或game.exe(如..... bioshock.exe)怎麼辦?


糾正我,如果我錯了:

我認爲它會工作得同樣喜歡
加載某些文件到RAM和到其他文件。 它會存儲所有可能的命令或指向某處(右鍵單擊=選擇/火槍)

但是,公司如何使這些.exe?
可以/是否有人用java編碼?
而其他人怎麼能入侵他們改變一些東西?就像關於模擬城市離線模式的爭議一樣(儘管我不認爲這個破解是在.exe中)
最後我記得,你不能像打開檔案一樣打開一個.exe文件嗎?

回答

2

寫一個完整回答你的問題是很難做到的。然而,讓我們看看如何寫複雜的「.exe的」。

假設你想寫一個寫字母的程序。您將首先爲此開發一個名爲Software requirement specification的東西。你需要爲此做一些requirement gathering

因此,您將開始記下:
1.可以選擇添加收件人。 2.有一個工具來給文字添加文字。 3.有一個機制來簽署這封信。

等等......

然後你會開始編碼。

首先,您將開始編寫一些代碼以符合您的要求。 (你的複雜exe已經開始成形;耶!)

然後,你可能需要重新考慮你的原始策略(除非你是專家)並重寫一些代碼..這個過程將繼續迭代。

直到現在,你將有一大堆的「源文件」:

  1. 接受來自用戶的一些文本的Java程序。
  2. 使用POP一個Java程序發送電子郵件(電子信函就是:))
  3. 使用openssl分配一個digital certificate Java程序「簽名」你的信。

但是現在你會意識到你已經制作了3個有3個主要程序的程序。但你需要一口氣做這些事情!因此,您將刪除主程序並編寫一個創建三個源文件的對象的「主類」。您的主程序可能如下所示:

AcceptText ap = new AcceptText("My letter content"); 
Letter L = new Letter(); 
L.addContent(ap); 
Signature S = new Signature(); 
S.sign(); 
L.addSignature(S); 
L.send(); 

現在您將編譯成可執行文件或可執行文件。你甚至可以使用swing或類似的方式添加一些GUI。

因此,你有你的第一個複雜的EXE準備!運行它自己發送電子郵件! 現在,當你看到像bioshock.exe這樣的東西時,它們是由成千上萬的源文件組成的,它們整齊排列在一起。他們也有大量的藝術作品,動畫,剪輯,聲音添加到他們。他們一點一點地創造出如此複雜的節目。沒有祕密技術。你可以很容易地學習創建exe的基礎知識。但需要極端的毅力和誠意來開發大規模的東西。

如果你真的感興趣,徹底學習2-3種編程語言。然後學習一些「框架」或庫。這些可以是像[opengl](http://en.wikipedia.org/wiki/OpenGL)這樣的圖形庫。慢慢但肯定地;你將學習如何製作這些複雜的exe文件。這需要時間和很多努力。快樂的編碼!並歡迎來到俱樂部。

+0

哇,謝謝你花時間寫這篇文章,其實並沒有失去我。當我是一個狂熱的遊戲玩家時,我一直在調整,並且幾次涉足3ds + maya,因此瞭解資源文件以及它們的功能如何很好,我喜歡想。而且,我計劃繼續跟你的建議類似,謝謝。只是有一個問題,說這個exe指的是否是一個巨大的「if」和「when」指令代碼(除了圖片和其他可能的內部資源)的集合是否公平? ? – House3272 2013-03-26 17:26:36

+0

是的,你的exe文件肯定會有很多條件表達式。但它並不是全部。 – Chani 2013-03-27 16:49:51