• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:現コンパイラがサポートしていない関数について)

現コンパイラがサポートしていない関数とは?

このQ&Aのポイント
  • 現コンパイラがサポートしていない関数とは、コンパイラが予め用意している関数の中に、現在のコンパイラが認識・実行できない関数のことを指します。
  • 具体的には、C++ビルダー2009付属のコンパイラBCC32が現コンパイラとして使用されている状況で、SEDのソースコードに含まれる「intdos」関数がサポートされていないことが問題となっています。
  • この場合、intdosの代替として「findfirst関数」や「findnext関数」を使用できることが分かっていますが、質問者はpspのアドレスを取得する方法について知りたいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

そもそもなんのためにPSP領域を参照しているのでしょうか? DOS用のsedというだけで詳細がわかりませんが、PSP領域の後半にある コマンドラインで入力された内容を直接解析しているのではないでしょうか? であれば、WindowsプログラムでPSP領域のアドレスをどうこう、ではなく、 Windows API でコマンドライン領域を取得するというやり方で代替すべきでは ないかと思います。 GetCommandLine 関数 http://msdn.microsoft.com/ja-jp/library/cc429108.aspx

その他の回答 (1)

noname#194317
noname#194317
回答No.1

intdosはMS-DOSサービスコールを呼び出す関数なので、それってDOSベースのソースファイル(つまり16ビットモデル)ですよね。もう少し別物を参照した方が・・・って言う答えは却下ですか? Win32にintdosはないので、これを使えと言うヒントがマイクロソフトから示されていますが、その中に51H,62Hは含まれていません。まあ、思いっきりMS-DOSに依存した処理内容のサービスコールなので、どうしようもない気が。 http://msdn.microsoft.com/ja-jp/library/cc438736(VS.71).aspx 次の説明を見てもらえれば、そのソースをベタ移植してWin32で動かすのは絶望的に感じられると思います。 http://www5c.biglobe.ne.jp/~ecb/assembler2/7_5.html 一応、サービスコール一覧はこちらからどうぞ。実はこれ、DR-DOSのものですが、互換性があるので説明は通用するはず。 http://hp.vector.co.jp/authors/VA003720/lpproj/drdos/progdoc/sysprog/chap2j.htm

関連するQ&A