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