0

投票否决这个问题显然很好,但请告诉我为什么它很愚蠢或不受欢迎,我只是想学习


我的目标是理解像 Chrome 这样的复杂程序。

我知道这些文件可能只是几行代码,可以将文件提取到指定位置、编辑注册表或执行简单任务(如 .bat 文件)。

但是像 acrobat.exe 或 game.exe(如 ... bioshock.exe)这样的复杂 .exe 文件呢?


如我错了请纠正我:

我假设它的工作方式与将
某些文件加载​​到 ram 和其他文件中一样。它将存储所有可能的命令或指向某个地方(鼠标右键单击=选择/火枪)

但是公司如何制作这些.exe?
可以/它们中的任何一个都用java编码吗?
其他人怎么能侵入他们来改变一些事情呢?就像关于 SimCity 离线模式的争议(虽然我不认为 hack 是在 .exe 中)
最后我记得,你不能像存档一样打开 .exe 对吗?

4

1 回答 1

2

为您的问题写一个完整的答案是非常困难的。然而,让我试着让你一睹“.exe”的编写有多复杂。

假设你想编写一个写字母的程序。您将首先开发Software requirement specification为此所需的东西。你需要为此做一些requirement gathering事情。

因此,您将开始记下:
1. 可以选择添加收件人。2. 可以在信中添加文字。3. 有签名信的机制。

等等 ...

然后你将开始编码。

首先,您将首先编写一些代码来满足您的要求。(您的复杂 exe 开始成形;耶!)

然后您可能需要重新考虑您的原始策略(除非您是专家)并重写一些代码..这个过程将迭代地继续。

到目前为止,您将拥有一堆“源文件”:

  1. 一个从用户那里接受一些文本的 java 程序。
  2. 一个使用POP发送电子邮件的 java 程序(电子信件是 :))
  3. 一个使用openssl分配数字证书以“签署”您的信件的 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();

现在,您将把它编译成可执行文件或可执行 jar。您甚至可能想使用 swing 或类似工具添加一些 GUI。

这样你就准备好了你的第一个复杂的 exe!运行它来自己发送电子邮件!现在,当您查看 bioshock.exe 之类的文件时,它们是由数千个源文件组成的,所有文件都整齐地放在一起。他们还添加了大量的艺术作品、动画、剪辑和声音。他们一点一点地创造出如此复杂的程序。没有秘诀。您可以非常轻松地学习创建 exe 的基础知识。但要大规模开发,需要极大的毅力和诚意。

如果您真的有兴趣,请彻底学习 2-3 种编程语言。然后学习一些“框架”或库。这些可以是类似于 [opengl] ( http://en.wikipedia.org/wiki/OpenGL ) 之类的图形库。缓慢而坚定地;您将学习如何自己制作其中一个复杂的 exe。这需要时间和大量的努力。快乐编码!欢迎来到俱乐部。

于 2013-03-26T17:01:52.667 回答