我不想构建 Thunderbird 功能。我只是想构建一个具有插件功能,跨平台,易于安装的项目。是否有任何文件指向 Firefox 或 Thunderbird 的开发?
我知道 Thunderbird 是用 C++ 构建的,那么我怎样才能获得这些图形和所有其他功能。
请帮我。
我不想构建 Thunderbird 功能。我只是想构建一个具有插件功能,跨平台,易于安装的项目。是否有任何文件指向 Firefox 或 Thunderbird 的开发?
我知道 Thunderbird 是用 C++ 构建的,那么我怎样才能获得这些图形和所有其他功能。
请帮我。
本着其他答案的精神,我觉得有必要指出 Mozilla 提供了他们用来构建应用程序的平台,包括 Firefox 和 Thunderbird,请参阅XULRunner。
使用 XULRunner,您
以下是基于 XULRunner 构建的应用程序的部分列表:XULRunner Hall of Fame。
为了回答您最初的问题,Mozilla 平台通过指定一组跨平台 API(例如(过度简化)用于接口定义的 XUL)并在每个平台上实现每个 API,在许多平台上提供了丰富的功能。
从头开始实现这样一个跨平台层需要做很多工作,所以不要尝试查看和复制 Thunderbird 的实现,而应该选择此处答案中提到的跨平台解决方案之一(Mozilla、Eclipse、QT、wxWidgets、 ETC。)
每个都有其优点和缺点,如果不了解您当前的专业知识和要求,就不可能为您挑选一个。
您可以在这里浏览 Firefox 的源代码:
http://mxr.mozilla.org/firefox/source/。
和雷鸟:
http://mxr.mozilla.org/seamonkey/source/。
无论如何,如果您想使用插件构建便携式应用程序,我建议您忘记尝试复制 Mozilla 并学习 Qt 或 wxWidgets。
Eclipse RCP是构建具有插件特性的丰富跨平台客户端应用程序的一个很好的解决方案。Eclipse RCP 基于Java和 SWT 技术。
这是使用 Eclipse RCP 构建的应用程序列表。此处还提供了使用 RCP 构建的演示邮件客户端。另一个使用 RCP 构建的优秀软件是RSSOwl,一个提要阅读器。
在选择开发语言/平台时,我认为需要考虑以下几点:
C++ 简直是一门很棒的语言。剩下的(利用丰富的图形等)是学习......
许多选项和其他选项已经提出了好主意。Java 将使您的生活(相当)轻松,但 C/C++ 以需要抽象 API 为代价为您提供更多功能。
我应该补充一点——一旦您致力于一组技术并在不重新编写的情况下进行了一些认真的开发,就可能很难对您的应用程序进行更改。例如,如果您选择 C 和 Apache Portable Runtime,您可能很难转换为其他东西。同样,如果您在 Swing 中编写 UI,转换为 SWT/Eclipse 将意味着 UI 重写。我不想让你气馁,只是添加一个警告,我认为 x 平台应用程序需要非常仔细的计划。
还有一些关于 Mozilla 树的注释。Thunderbird/Firefox 等基本上是从相同的源代码树构建的,只是使用不同的组件。Mozilla 构建系统相当复杂,在我看来比 Linux 内核更复杂。因此,Manuel 关于忘记 Mozilla 的建议是一个很好的建议,除非他们的路线能有所收获。
Mozilla 的类别管理器可以很容易地为您的应用程序添加插件支持,但就像其他海报所说的那样,在您到达那里之前,您将有一座公平的山需要攀登。