我有一个应用程序,我需要移植到Linux上。我在考虑使用Free Pascal,问题是应用程序使用Windows API来执行串口通信等任务。是否有针对linux用户的msdn或一本介绍linux内部工作原理的书(如果有apis )。
我很困惑。
发布于 2012-05-21 04:54:27
Robert乐福有一本关于Linux系统编程的书--这本书将涵盖这一领域,而乐福的书一般都很好,所以它值得一读。
从你的问题中还不能完全清楚,但如果你担心的是Windows应用程序中对硬件控制函数的特定调用使得移植变得困难,我认为这是一种错误的担忧。Windows和Linux都遵循这样的原则,即应用层程序员应该远离硬件,所有这些都应该由操作系统内核处理,并且只能由应用程序通过系统调用来访问。由于不同操作系统的内核面临着来自用户/应用程序的相似需求,它们往往具有执行相同类型事情的系统调用。有必要将系统调用相互匹配,但我看不出为什么这是不可能的。
更麻烦的是,您的Windows应用程序可能严重依赖于Windows执行者的窗口代码/API。同样,为你的代码找到类似的东西并不是不可能的,但可能会更复杂一些,例如在Linux中,这些东西通常根本不会在内核中处理(不像Windows)。
但话又说回来,你的代码可能是针对像Qt这样的可移植工具包/库编写的,这将使事情变得更容易。
无论如何,祝你好运。
发布于 2012-05-20 23:16:38
好吧,很遗憾地说,如果你的代码依赖于Windows(不依赖于VCL )那么,从一开始就编写应用程序可能会比移植它更快。
但是如果只是串行端口的问题,那么可以尝试多平台SynaSer库,可以在这里找到它:http://synapse.ararat.cz。
希望这能对您有所帮助:)
发布于 2013-02-19 22:58:22
如果程序包含GUI代码,则必须使用GTK/XLIB等linux库来创建窗口、表单、按钮等。
特定于Windows的函数(如EnterCriticalSection、WaitForSingleObject或_beginthreadex)必须替换为等效的linux api函数(可以在此处找到一个很好的教程:"www.ibm.com/developerworks/systems/library/es-MigratingWin32toLinux.html"),也可以使用库,如w2lpl或wine
https://stackoverflow.com/questions/10674577
复制相似问题