ページ 1 / 1
DOSプロンプトで動かしたい
Posted: 2006年2月20日(月) 20:47
by 初心者
DOSプロンプトでABを使うにはどうしたらよいですか?
Posted: 2006年2月20日(月) 21:30
by イグトランス
ABのコンパイラ自体はDOSプロンプトでは動きません。(ウィンドウが出てきます)
ただしDOSプロンプト上でコンパイルするファイルなどを指定することはできます。
或いはあなたがDOSプロンプト上で動くプログラムを作りたいのなら,
ヘルプに書いてあるとおりに#consoleをつけてコンパイルします。
Print/Inputはそのまま使えます。
Posted: 2006年2月20日(月) 21:32
by 7
Win32プログラミング講座の「Step19. DOS窓で動くコンソール アプリケーションの作成」を参考にしてはどうでしょう。
へぇ。
Posted: 2006年2月22日(水) 18:41
by konisi
#console使ったやつ、Dos窓で直に動くんだ・・・。
いやね、DosTest.abpって言うファイル作って#console (改行) Print "test"とか書いた奴コンパイルしてみた時に生成されるexeファイルの拡張子をtxtに変更して普通に読み込んでみると・・・
This program cannot be run in DOS mode.
とか書いてあったりして、これはつまり、「このプログラムはDOSモード内で実行することができません。」って書いてあるもんだからてっきり動かないもんかと・・・。
ん?こう書いてあって動くってことはコンパイラのコード生成プログラムのミス、つまりバグになるのか? とか思ってみたり・・・。
独り言を長々書いてスミマセンでした^^;
Posted: 2006年2月22日(水) 19:25
by イグトランス
#consoleを付けても32ビットWindowsアプリケーションであることに変わりはありません。
つまりWindowsのDOS/コマンドプロンプト内でしか動かせないということです。
これは現在のVC++などでコンソールアプリケーションを作る場合も同じです。
> This program cannot be run in DOS mode.
そしてこれは本当のDOSや16ビットWindowsなどのような,
32ビットWindowsアプリケーションが動かせない環境のためのものです。
32ビットWindowsのEXEファイルはDOSのEXEファイルの構造を拡張してできていて,
最初はDOSのEXEファイルがそのまま埋め込まれた構造になっています。
32ビットプログラムが誤まって実行されないようにするための仕組みと言えるでしょう。
その埋め込まれたDOSのEXEの中身が件のメッセージを表示して終了すると言うプログラムになっているのです。
ちなみにABではできませんが埋め込むDOSのEXEはDOSなどで動けば何でもよいことになっています。
これを利用してDOS/Win両用のEXEを作ると言う技法もあるようです。
Posted: 2006年2月24日(金) 00:09
by konisi
そういう意味合いで「動かせません」てなってたのか。
やっと理解できました。