DOSプロンプトで動かしたい

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DOSプロンプトで動かしたい

by konisi » 2006年2月24日(金) 00:09

そういう意味合いで「動かせません」てなってたのか。
やっと理解できました。

by イグトランス » 2006年2月22日(水) 19:25

#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を作ると言う技法もあるようです。

へぇ。

by konisi » 2006年2月22日(水) 18:41

#console使ったやつ、Dos窓で直に動くんだ・・・。

いやね、DosTest.abpって言うファイル作って#console (改行) Print "test"とか書いた奴コンパイルしてみた時に生成されるexeファイルの拡張子をtxtに変更して普通に読み込んでみると・・・
This program cannot be run in DOS mode.
とか書いてあったりして、これはつまり、「このプログラムはDOSモード内で実行することができません。」って書いてあるもんだからてっきり動かないもんかと・・・。
ん?こう書いてあって動くってことはコンパイラのコード生成プログラムのミス、つまりバグになるのか? とか思ってみたり・・・。

独り言を長々書いてスミマセンでした^^;

by 7 » 2006年2月20日(月) 21:32

Win32プログラミング講座の「Step19. DOS窓で動くコンソール アプリケーションの作成」を参考にしてはどうでしょう。

by イグトランス » 2006年2月20日(月) 21:30

ABのコンパイラ自体はDOSプロンプトでは動きません。(ウィンドウが出てきます)
ただしDOSプロンプト上でコンパイルするファイルなどを指定することはできます。

或いはあなたがDOSプロンプト上で動くプログラムを作りたいのなら,
ヘルプに書いてあるとおりに#consoleをつけてコンパイルします。
Print/Inputはそのまま使えます。

DOSプロンプトで動かしたい

by 初心者 » 2006年2月20日(月) 20:47

DOSプロンプトでABを使うにはどうしたらよいですか?

ページトップ