delphi - 可启动和跨平台应用程序并使用delphi或Pascal

标签 delphi pascal

是否可以使用 Delphi 或 Pascal 创建可启动(MBR 应用程序)应用程序(我知道我们不能使用 vcl 、 RTL 和其他东西,因为它们依赖于操作系统),但我可以至少使用 Readln 和 writeln 吗?

如果是真的的话!!!我们可以在其他操作系统下运行该程序吗? 但我知道PE(Windows)和ELF(Linux)格式是不同的。但至少通过一些小的修改我可以做到。

最佳答案

值得一提的是,PE 是一种比 ELF 更加多样化的格式。 不仅仅是要修改几个字节...整个布局和库访问是多样化的,并且绑定(bind)是完全多样化的。

为了在控制台模式下启动 Delphi 应用程序,您可以放置​​一个小型 DOS 系统(例如,看看 FreeDOS),然后使用例如 DWPL 运行您的 Delphi 应用程序。 。 DWPL 允许使用WDOSX DOS 扩展器作为核心,在Delphi 5-7 上运行 native 32 位保护模式DOS 程序。我在一些带有网络适配器的旧硬件中使用了它,它的效果非常好。如果您对此感兴趣,我可以发布一些 DWPL 的更新代码。

对于此类目标,您应该查看 Free Pascal 。本质上,您可以根据您想要的任何目标对其进行自定义。甚至有多种使用 FPC 编写的操作系统草案。例如,参见ToroClassiOS - 最新使用 Delphi 可执行文件作为源。

可以看到Toro的启动代码from here ,以及用它创建的“main program ”源代码。

但是对于直接启动的应用程序来说,启动并不是那么困难。真正的问题是硬件层。 BIOS 对它的访问很少。 仅对于网络层,您必须查看 EtherBoot站点等以获得一些低级网络访问...但是手动重写所有这些驱动程序可能非常耗时!

简而言之:所有这些“纯帕斯卡”操作系统都只是理论上的,运行控制台和一些低性能网络(模拟诸如 NE2000 等较差的网络适配器)。所以那些“pascal”操作系统只是概念证明。离可行的解决方案还很远!但在所有情况下都是非常好的技术挑战,非常鼓舞人心。

为什么要重新发明轮子?如果您想要一个轻量且快速的系统,请使用自定义 Linux 内核。

然后使用 CrossKylix将您的 Delphi 应用程序(没有用户界面)编译到 Linux 中,甚至更好的 Free Pascal 中。

关于delphi - 可启动和跨平台应用程序并使用delphi或Pascal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235623/

相关文章:

delphi - 如何对TFileStream进行操作

delphi - 通过滚动/移动消息显示信息delphi xe7

sql - 将 SQL 转换为 OCL?

delphi如何将twitter时间戳转换为TDatetime

Android Rest 客户端到 Delphi XE2 Datasnap Rest 服务器

delphi - 使用哪个拼写检查器?

windows - 适用于 Windows 的 Turbo Pascal : Copy output to clipboard?

c - 将 C for 循环转换为 Pascal

latex - 如何从 .web 文件中提取可读的源代码?

class - 是否可以使用接口(interface)部分的实现部分中声明的类