Linuxに移植する必要のあるアプリケーションがあります。Free Pascalを使用することを考えていました。問題は、アプリケーションがWindows APIを使用してシリアルポート通信などのタスクを実行することです。Linuxユーザー向けのmsdnや、APIがある場合にLinuxが内部でどのように機能するかを説明する本はありますか。
私は非常に混乱しています。
Linuxに移植する必要のあるアプリケーションがあります。Free Pascalを使用することを考えていました。問題は、アプリケーションがWindows APIを使用してシリアルポート通信などのタスクを実行することです。Linuxユーザー向けのmsdnや、APIがある場合にLinuxが内部でどのように機能するかを説明する本はありますか。
私は非常に混乱しています。
悲しいことですが、コードがWindowsに非常に依存している場合(VCLに依存していない場合)、移植するよりも最初からアプリケーションを作成する方が速いでしょう。
ただし、シリアルポートの問題だけの場合は、マルチプラットフォームのSynaSerライブラリを試してみてください。ここで、 http ://synapse.ararat.czを見つけてください。
この助けを願っています:)
Robert Loveは、Linuxシステムプログラミングに関する本を持っています。これはこの分野をカバーし、Loveの本は一般的に優れているので、一見の価値があります。
あなたの質問からは完全には明らかではありませんが、Windowsアプリケーションのハードウェア制御関数への特定の呼び出しがあり、移植を困難にしていることが懸念される場合は、それは見当違いの恐れです。WindowsとLinuxはどちらも、アプリケーションレベルのプログラマーをハードウェアから遠ざけ、すべてをオペレーティングシステムカーネルで処理し、システムコールを介してのみアプリケーションにアクセスできるようにするという原則に基づいて動作します。異なるオペレーティングシステムのカーネルは、ユーザー/アプリケーションからの同様の要求に直面するため、同じ種類のことを行うシステムコールを持つ傾向があります。システムコールを一致させる必要がありますが、それが不可能な理由はわかりません。
さらに厄介なのは、WindowsアプリケーションがWindowsエグゼクティブのウィンドウコード/APIに大きく依存している可能性があることです。繰り返しますが、コードの類似物を見つけることは不可能ではありませんが、もう少し複雑になる可能性があります。たとえば、Linuxでは、このようなものは通常、カーネルではまったく処理されません(Windowsとは異なります)。
しかし、繰り返しになりますが、コードはQtのようなポータブルツールキット/ライブラリに対して記述されている可能性があります。これにより、作業がはるかに簡単になります。
とにかく頑張ってください。
プログラムにGUIコードが含まれている場合は、ウィンドウ、フォーム、ボタンなどを作成するために、GTK/XLIBなどのLinuxライブラリを使用する必要があります。
Windows固有の関数(EnterCriticalSection、WaitForSingleObject、_beginthreadexなど)は、同等のLinux api関数(「www.ibm.com/developerworks/systems/library/es-MigratingWin32toLinux.html」にある便利なチュートリアル)に置き換える必要があります。w2lplやwineなどのライブラリを使用できます
http://www.adontec.com/windows-to-linux-port-library.htmで見つけたこの種の問題に役立つライブラリ
WINEを使っただけで素晴らしい経験ができました。(https://www.winehq.org/)アプリを実際に移植することはまったくありません。WINEのbasc制約の一部に違反していないことを確認し、そのまま実行します。WINE(そうではないと言われていますが)はWindows APIのエミュレーターであり、翻訳を行います。APIのカバレッジはかなり完全です。