- ベストアンサー
C言語を始めよう!
- NT4/2000/XPで16ビットプログラムの実行結果が表示されない問題の解決方法
- Windows NT4/2000/XP上でLSI C-86を使って16ビットプログラムを実行する際の問題とその解決策
- NT4/2000/XPで16ビットプログラムの実行結果が表示されない場合についての調査結果
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>機械が新しくなっても、古いなじんだソフトを使いたいものです。 理解します。しかし、ソフトウェアを取り巻く環境はMS-DOSの時代とはあまりにも変化しています。 メモリやハードウェアへのアクセスは、ユーザープログラムとの間に強くOSが入り込んでいます。 OSを考慮せずにできるプログラミングでは、できることが限られます。 >ボーランドが無料のソフトを提供してくれていると言っても、インストールは、難しそうだし、機能があるだけ操作も複雑そう 実際にインストールされましたか?それほど手順は複雑ではありませんし、 機能は、CやC++の標準規格の範囲内で使用すれば何も違いはないでしょう。 道具を使いこなしてこそ、職人。道具に振り回されて本来の目的を達成できないなら、 それは理屈ではなく、ただのできない言い訳になってしまいます。 C言語を使いこなすことに比べたら、インストールは造作もないことでしょう。 >これなら、なるべく、単純なほうが使いやすいと考えているのです。 「C言語を始めよう! 」は、一発クリックでコンパイル・実行をするためのもので、 LSI-CやBorlandの異なるコンパイル手順を吸収してくれるソフトでしょうから、 設定が完了すれば、どちらも同じ使い方になるはずです。 >世の中色々な考え方をする人がいるので、理屈で、押し込もうとしても、なかなか、うまくいかないものです。 色々な考え方をする人がいることは理解しますが、 単に「楽そう」という考え方では、現実とは向かい合えません。 ハードもソフトも日進月歩です。ハードウェア・OSともにセットで古いものを使用し、 その範囲の中で懐古に浸るなら、今の選択も悪くないと思います。 >プログラムから、直接印刷とかできるんですか? OSを経由して、OSが提供する口(インターフェース)を使えば印刷は可能です。 それを直接と言わないということでしたら、ほぼできないという回答になります。 #ドライバレベルではやってるので、できないわけではない いずれにせよ、学習目的ということなら、不具合のある状態ででも、 LSI-Cを使ってみてはどうでしょうか?画面出力の問題もPIFファイルを使う という方法で逃げることができるところまでわかっているとのことですし。 10数年前のソフトウェアです。エンストを起こしても笑顔で付き合ってあげて下さい。
その他の回答 (2)
- hidebun
- ベストアンサー率50% (92/181)
それから、「C言語を始めよう!」の作者は、題記の原因について、 「NTVDM.EXEが問題の原因となっていそう」と、おっしゃっていますが、 NTVDM.EXEは、仮想的なMS-DOSマシンをWindows上で再現するもののようです。 結局、作成したソフトウェアは、Windows上のMS-DOSマシンで仮想的に 動作することになるので、ネイティブなMS-DOSと違い、ハードウェアに 直接アクセスすること等はできない(Windowsで許可されない)と思います。 また、LSI-C86 試食版は、Wikipediaによると、 http://ja.wikipedia.org/wiki/LSI_C-86 === LSI C-86 は商用ソフトであるが、ver 3.3.0のMS-DOS版に対して、サポートしている4つのメモリモデルの中で、スモールモデル(Code Segment、Data Segment に割り当てられるメモリが共に64KB以下のモード)のみしか使用できない、デバッグ機能がないなどの機能制限を課したものを「試食版」としてフリーウェアで配布している。 === とあり、使用可能なメモリの制約が強く、デバッグ機能もありません。 (デバッガを使いながら、C言語の勉強をすることは、個人的に有効と思います) 具体的には、例えば、配列を使用するために、 double test[100][1000]; とした時点で、使用可能なメモリ容量を超えています。 このような制約からも、学習目的として使うには、ハンデが大きいです。 私からの提案は#1のままです。
- hidebun
- ベストアンサー率50% (92/181)
64bitが主流になろうとしているこの時代に、なぜに16bit時代のコンパイラを 好き好んで使っているのでしょうか?学習目的であれば、Visual Studio等もあります。 このC言語を始めようは、Borlandのコンパイラもサポートしているようです。 http://www.codegear.com/jp/downloads/free/cppbuilder こちらもサポート等は受けられませんが、まだ32bit用ということで、LSI C-86よりは 互換性という意味で、動作は信用できるのではないかと思います。 クラッシックカーを修理するのが好きならまだしも、クラッシックカーで運転を 習得しようとして、車が動かないと悩んでいるのであれば、普通自動車を買って 練習する方が、効率が良いですよ。 目的が、C言語の習得なら、無料の新しいコンパイラを使いましょう。 それとも、LSI C-86を使ってコンパイルした実行ファイルが必要な状況だったりするんでしょうか。
お礼
>hidebunさん、そして、皆さん、こんにちは。いつも回答頂きありがとうございます。 >目的が、C言語の習得なら、無料の新しいコンパイラを使いましょう。 言われていることは、よく分かります。自分も、最後は、提案のかたちになるかも、知れません。 なぜ、と言われたら、少しは、MS-DOSの時代に、LSI C-86 Ver.3.30c 試食版を使ったことがあり、使いやすいのではないかと考えているからです。 機械が新しくなっても、古いなじんだソフトを使いたいものです。 ボーランドが無料のソフトを提供してくれていると言っても、インストールは、難しそうだし、機能があるだけ操作も複雑そう、これなら、なるべく、単純なほうが使いやすいと考えているのです。 世の中色々な考え方をする人がいるので、理屈で、押し込もうとしても、なかなか、うまくいかないものです。 絆創膏と理屈は、どこにでも、ひっつく。 いろんな人が、いるから、それで良いのではないかと考えています。 >それとも、LSI C-86を使ってコンパイルした実行ファイルが必要な状況だったりするんでしょうか。 必要な状況に無くむしろ、不便な状況になりそうです。 プログラムから、直接印刷とかできるんですか? 最近は、色々な印刷機によって、ドライバーが違うし、こんなばらばらなドライバーの要求に合わせて、印刷を直接プログラムから指示するのは、複雑すぎてできないのでは、無いかと考えているのですが、いかがでしょうか? >
お礼
レスありがとうございます。 プログラム作者から、以下の通りの回答を得ました。 ******************************************* Re: NT4/2000/XP で、16 ビットプログラムの実行結果 ( No.3 ) 日時: 2012/07/09 09:16 名前: AOK 2005年頃に深く頭を悩ませた問題ですね。 2000/XP より NT の方で、 高い頻度で発生した現象だったと記憶しています。 当時、Microsoft の資料を読み漁ったり、 まだ会社に NT マシンが何台か残っていたので、 何度も検証を繰り返した覚えがあります。 ご質問の件は、引用の通りで、それ以上のことはありません。 もっとも安定した検証結果が得られた方法を採用しただけです。 CPad さんで採用している方法については初めて知りました。 そういう方法もあったのですね。