Overview of Free Pascal and Lazarus/zh CN: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Overview of Free Pascal and Lazarus/zh CN
| Old | New | Line | |
|---|---|---|---|
| 1 | + | Free Pascal(FPC)是一个开源的 Pascal 编译器。它有着以下两个显著特点:高度的 [[Delphi]] 兼容性,和在多种操作系统——包括 Windows,Mac OS X 和 Linux——上的可用性。 | |
| 2 | + | ||
| 3 | + | Free Pascal 与 Delphi 的兼容不仅是因为它与 Delphi 同样使用 Object Pascal 语言,而且还因为它提供了许多与 Delphi 相同的、功能强大的例程(routines)和类(classes)。这包括了许多我们熟悉的单元,例如 *System*、*SysUtils*、*StrUtils*、*DateUtils*、*Classes*、*Variants*、*Math*、*IniFiles* 和 *Registry*。并且,而且这些单元在所有支持的平台上都能使用。 | |
| 4 | + | ||
| 5 | + | 当然,Free Pascal 也提供了像 *Windows*、*ShellAPI*、*BaseUnix*、*Unix* 和 *DynLibs* 这样的单元,用于使用特定操作系统的功能。 | |
| 6 | + | ||
| 7 | + | 所有这些单元组成了通常被称作“Free Pascal 运行时库”(run-time library,RTL)的核心。 | |
| 8 | + | ||
| 9 | + | Lazarus 是一个开源的、基于 Free Pascal 编译器的集成开发环境(integrated development environment,IDE)。除了提供语法高亮编辑器、可视化设计器等之外,它还提供了一套与 Delphi 的 VCL 高度兼容的组件(component)库——Lazarus 组件库(Lazarus Component Library,LCL)。LCL 包含的许多组件,如窗体(forms),按钮(buttons)和文本框(text boxes)等等,都与 VCL 中的相应组件功能一致。使用这些组件,您可以创建基于图形用户界面(graphical user interface,GUI)的应用程序。 | |
| 10 | + | ||
| 11 | + | Free Pascal 和 Lazarus 都是用 Pascal 语言编写的软件。Free Pascal 编译器、Lazarus IDE,以及 Free Pascal 运行库和 Lazarus LCL 的全部源代码,都可以免费获得。 | |
| 12 | + | ||
| 13 | + | 像 Delphi 一样,Free Pascal 和 Lazarus 都是通用的编程工具。这意味着您可以用他们开发许多类型的程序(不仅是应用程序),例如: | |
| 14 | + | ||
| 15 | + | ### 控制台应用程序 | |
| 16 | + | ||
| 17 | + | 控制台(console)程序不提供 GUI,而是在控制台中启动,并在其中进行输入/输出(input/output,I/O)的。在 Windows 中,控制台通常被称作“命令提示符窗口”(command prompt window),而在 Mac OS X 和 Linux 中则被称作“终端窗口”(terminal window)。一些小工具(utilities),如 Windows **FC**(file compare,文件比较)程序、UNIX 上的 **cd** 和 **cp** 命令等,都是控制台程序。当然,控制台程序也可能是功能强大的数值计算、建模或数据处理程序——它们不需要引人注目的 GUI,因为他们可由其他程序启动,或者可由批处理(batch)文件(或 UNIX/Linux 上的外壳脚本(shell scripts))调用。 | |
| 18 | + | ||
| 19 | + | Free Pascal 编译器及其包括的工具程序都是控制台程序。这意味着它们可以在控制台中运行,由批处理文件调用,或者在 Lazarus IDE 中启动。 | |
| 20 | + | ||
| 21 | + | 要创建命令行程序,您事实上只用一个文本编辑器和 Free Pascal 编译器就能做到,而不必使用 Lazarus。当然,如果您愿意,在 Lazarus 中也可以创建、编辑、编译和调试命令行程序。 | |
| 22 | + | ||
| 23 | + | ### 动态链接库 | |
| 24 | + | ||
| 25 | + | 动态链接库(dynamically loaded library,DLL)通常是一组已编译函数的集合,这些函数可被其他程序调用。 | |
| 26 | + | ||
| 27 | + | 顾名思义,使用 DLL 的程序并非在编译时将其链接到其中,而是在运行时动态地加载。这类文件在 Windows 中通常拥有 <i>.dll</i> 后缀,在 Mac OS X 上为 <i>.dylib</i>(表示 dynamic shared library,动态共享库),而在 Linux 上则是 <i>.so</i>(表示 shared object library,共享目标程序库)。 | |
| 28 | + | ||
| 29 | + | 动态链接库一般被用于开发程序的插件(add-ons)、开发可被用其他语言(如 C 和 C++)编写的程序调用的函数库,或者用于将大型的项目“化整为零”,使不同开发者能独立开发项目的某一部分。Windows 本身就是由上百个 DLL 组成的。其他一些大型应用程序,如 OpenOffice.org,亦是如此。 | |
| 30 | + | ||
| 31 | + | 像控制台程序一样,您同样只需要使用文本编辑器和 Free Pascal 编译器就可以创建 DLL;同样,您也可以使用 Lazarus 来创建、编译和调试您的 DLL。 | |
| 32 | + | ||
| 33 | + | 值得注意的是,在 Windows 上,DLL 有时被误认为过于复杂,而使系统变得不稳定。这是通常更可能是因为他们的安装方式不当,而不是 DLL 本身的问题。事实上,程序与 DLL 之间的数据交换通常是基于标准的简单数据类型(而不是某些语言专有的对象或结构)的,而这就迫使程序员更多地注意他们在做什么。如果做得对,就会得到更好、更稳定的程序。 | |
| 34 | + | ||
| 35 | + | ### GUI 程序 | |
| 36 | + | ||
| 37 | + | 我们每天使用的多数程序都是 GUI 程序,包括字处理程序(word processors)、Web 浏览器、电子表格(spreadsheet)程序,甚至许多开发工具。比如,Lazarus 和 Delphi 都是功能强大的 GUI 程序的典范。 | |
| 38 | + | ||
| 39 | + | 在用使用 Lazarus 开发 GUI 程序时,您不只编写 Pascal 单元中的代码,而且还需设计窗体(forms)。窗体上可以放置像按钮、列表框之类的可视控件,也可以放置一些非可视控件(non-visual controls)。像 Delphi 一样,在 Lazarus 中的窗体设计过程也是可视化的,控件属性的设置可以在 IDE 中完成,也可用代码实现。 | |
| 40 | + | ||
| 41 | + | 因为 LCL 中的控件在所有支持的平台上都可使用,在某个平台(如 Windows)上开发的 GUI 程序,不加改动就可在其他平台(如 Mac OS X 或 Linux)上使用。 | |
| 42 | + | ||
| 43 | + | ## 贡献者和更改 | |
| 44 | + | ||
| 45 | + | - 简体中文版本由 Chu Jetcheng 于 2008-04-10 创建。 | |
| 46 | + | ||
| 47 | + | --- | |
| 48 | + | *From the Free Pascal wiki, page "Overview of Free Pascal and Lazarus/zh CN", as it stood on 2008-06-08 after a change by Chu Jetcheng, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
