8

この質問は、私たちがここで抱えている問題から生じており、それを解決する方法を探しています。Java で書かれたシリアル アプリケーションと通信する必要がある非常に古いマシン (DOS 6.22 を実行) があります。しかし、DOS マシン用のプログラムを実装するための C/C++ イベント ベースの rs232 ライブラリも (まだ)、このジョブを実行するためのコンパイル済みプログラムも見つかっていません。しかし、動作中の Java イベント ベースの rs232 プログラムが既にあるので、それをコンパイルして .exe を作成し、古いマシンにインストールすることは可能かどうか疑問に思っていました。

可能であれば、それは問題から抜け出す簡単な方法ですが、そうでない場合、古いマシン用のプログラムを構築するための rs232 ライブラリはありますか? 前もって感謝します。

4

1 に答える 1

3

Linux gcj は、Java プログラムを、VM なしで実行される実行可能コードにコンパイルすることができます。したがって、Linux マシンで gcj を使用してクロスコンパイルし、DOS 用の .EXE を作成できます。http://gcc.gnu.org/javaを参照してください。また、サポートされているプラ​​ットフォームのリストについては、 http: //gcc.gnu.org/install/specific.htmlを参照してください。DOS はリストの 7 番目の項目になります。

そうは言っても、あなたが Java ベースの rs232 ライブラリーが機能するとは思いません。たとえプログラムの残りの部分が機能したとしても、有名な640K のメモリ制限。実際のシステムでは 440K に近くなります。

イベントベースのプログラミングで見られるもう 1 つの問題は、DOS がシングル スレッドであることです。そのため、協調型マルチタスク以外のイベント ベースのプログラミングを簡単に使用することはできません。これは難しいことではありませんが、注意してください。

DOS では、オペレーティング システム ドライバーのように、シリアル ポートと通信するためのシリアル デバイス ドライバーを作成し、Linux で char ドライバーが行う方法でレジスタを設定し、データ転送を開始します。http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programmingには、このテーマに関する非常に有益なウィキブックがあります。

于 2012-11-14T23:21:21.940 に答える