0

私は現在、Mesa3Dと連携して、OpenGLでソフトウェアレンダリングされたグラフィックアプリケーションを作成することを検討しています。

私は今それを使用する方法についていくつかのチュートリアルを探しています、そして多くはDOSまたは古いバージョンのWindowsを念頭に置いて書かれています。Vistaを実行しているので、必要なファイルがないようです。

私が使用しているMesa3Dチュートリアルでは、使用方法outportb()や、機能していないように見える他のいくつかのコマンドを使用しています。周りを見回した後、2つのインクルードファイルが必要であることがわかりました。

  • dos.h
  • pc.h

これらは、Visual Studio 2010(Express)に付属しているWindowのSDKや、現在使用している古いバージョンの2005(Professional)には含まれていないようです。

これらは、DOSでのみ動作し、互換性モードであってもVistaではサポートされていないDJGPPコンパイラで検出されるようです。DosBoxを実行しても、これは機能しません。

私は疑問に思っています-おそらく新しい関数が置き換えられますoutportbか、またはこれらのDJGPPファイルをVSまたはPellesC(Cのみのプログラムに適しています)を使用したC / C ++コンパイラで使用できますか?

さらに、VSとPellesCの両方で持っているconio.htextmode()インクルードファイルには機能がありませんが、DJGPPバージョンには機能があります。

誰かがDJGPPをVistaで動作させるか、DJGPPのdos、pc、conio.hファイルをVSまたはPellesCのいずれかで使用できるようにするのを手伝ってくれるなら、それは大きな助けになるでしょう!

4

3 に答える 3

1

ポート操作関数は、Win32 プログラムでは機能しません。Win32 API を使用して I/O (レンダリングを含む) を行うか、DOS に固執して DOS または動作する DOS エミュレーターでプログラムを実行します。Vista 以降の Windows では、ほとんどの DOS プログラムを直接実行することはできません。これは、DOS のサポートが大幅に削減されるか、完全に削除されているためです (64 ビット Windows など)。

于 2013-01-28T19:01:13.617 に答える
1

のような関数が提供する低レベルのハードウェア アクセスoutportbは、最新の Windows 環境のプログラムでは利用できません。このような機能は、特別に信頼されたコード (OS 内部およびドライバー) 用に予約されています。同じ機能にアクセスするには、より高レベルの API またはドライバーを使用する必要があります。

Mesa3D の Web サイトには、Windows 開発者向けの readmeがあり、インストールと構成に必要なものに関する情報が記載されています。また、プロジェクトの基礎として使用できる公式のデモ コードも参照しています。Mesa3D Web サイトには、あなたが言及した時代遅れのチュートリアルよりも優れた例としておそらく役立つデモ プログラムでいっぱいのリポジトリもあります。

于 2013-01-28T19:21:49.547 に答える
0

vista 以降では 16 ビット コンパイラを使用しないでください。代わりに DOSBOX を使用してプログラムを実行してください。

于 2013-01-28T18:50:33.497 に答える