トップページ > 過去ログ > 記事閲覧
コンソールアプリ(DOS窓)について
名前:三郎 日時: 2010/12/20 06:48

私はWinのプログラム、DXライブラリ等上達せず困ったものですが質問します。 組み込み系でDOS窓で今でも使っている人が居られるそうで関心があります。 昔のMSDOSでのC言語、#include <stdio.h> printf("a");の時代のものです。 ためしにVC++でプロジェクトを造りデバックも出来るようです(私は詳しくは操作が出来ませんが)。 何故今でも需要があるのか良く分りませんが、質問は。 このDOS窓アプリにDXライブラリーを組み込み使えるように出来るのでしょうか?。 出来ないような気がしますが宜しくお願いします。  

Page: 1 |

Re: コンソールアプリ(DOS窓)について ( No.1 )
名前:いっち 日時:2010/12/20 18:56

何をなさりたいのか良く分からないのですが、WindowsAPI の AllocConsole を使えば プロセスにコンソールを割り当てられると思うのですが、そういった事ではないのでしょうか?
Re: コンソールアプリ(DOS窓)について ( No.2 )
名前:三郎 日時:2010/12/20 20:14

C言語で、DOS窓のアプリを開発する場合はmainのほうはこのように書いていきましたが void main(void){ ・・・ しかし このサイトの例題、環境設定画面などは全て #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance,            HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {  ・・・・ と書いてあるためDOS窓のアプリにDXライブラリが使えないと思います。 これを実現する方法が分りません。 要するに基本的なことが分らないのです。 >AllocConsole を使えば プロセスにコンソールを割り当てられると思うのですが、そういった事ではないのでしょうか? AllocConsoleとは何のことでVC++で、どうやって使うのですか。
Re: コンソールアプリ(DOS窓)について ( No.3 )
名前:いっち 日時:2010/12/20 22:06

> と書いてあるためDOS窓のアプリにDXライブラリが使えないと思います。 具体的に何をなさりたいのかが分からないので回答に困るのですが、 とりあえず AllocConsole の使い方は以下のような感じです。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { AllocConsole( ); freopen( "CONOUT$", "w", stdout ); freopen( "CONIN$", "r", stdin ); ChangeWindowMode( TRUE ); if ( DxLib_Init( ) == -1 ) return -1; SetDrawScreen( DX_SCREEN_BACK ); int StrColor = GetColor( 255, 255, 255 ); printf( "hello world\n" ); while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { ClearDrawScreen( ); DrawFormatString( 0, 0, StrColor, "TEST" ); ScreenFlip( ); } DxLib_End( ); FreeConsole( ); return 0; } 「コンソールウィンドウにDXライブラリで何かを描画する」と言ったことはおそらく無理だと思います。 (いちおうウィンドウハンドルは取れると思いますが・・・)
Re: コンソールアプリ(DOS窓)について ( No.4 )
名前:三郎 日時:2010/12/21 05:10

いっちさん、有難うございました。示されたコードを実行してみましたら、hello worldの画面表示と もう一つの画面にTESTと画面に表示が出ました。 >具体的に何をなさりたいのかが分からないので回答に困るのですが、 答えます。20年位前に組み込み系(通称)と呼ばれる分野で例えば実験データとか工場等から送られてくるデータで 圧力とか温度等のデータをCRT画面に表示したり、そのデータでグラフ表示(トレンドレコーダ)をしたりして制御監視をしていました。 工場から送られてくるデータはRS232C等のインターフェースでデバイスドライバーを介して計算機に取り込まれる。 その20年位前のソフトウエアはDOSマシーンで動いており現在も残っているのでウインドーズの最近のパソコンで利用したい。 昔のソースを打ち込み、ウインドーズのDOS窓で正常に動きましたが(キャラクターの表示のみ)肝心のグラフ表示が出来ません。 要するにウインドーズ用のグラフィックライブラリーが探せず私の力では処置なしです。 その為、画面に時時刻々と変化するグラフ表示をDXライブラリーを使って出来ないかと思っているのです。 DOSの時代の、ソースコードが長いのでその始めの部分を貼り付けてみます。 #include <windows.h> #include <stdio.h> #include <conio.h> //AIOヘッダファイル #include "caio.h" void main(void){ // 変数宣言     //   関数の戻り値 long Ret, Ret2; //デバイス名 char DeviceName[256]; //ID short Id; //エラーコード文字列 char ErrorString[256]; //変換チャネル short AiChannel; //レンジ short AiRange; //変換データ float AiData; //最大チャネル数 short MaxAiChannels; // デバイス名の入力確認 printf("\nデバイス名を入力してください : "); scanf("%s", DeviceName);     ・・・・・・・・・・・・・・・・・・・・・・・・    
Re: コンソールアプリ(DOS窓)について ( No.5 )
名前:いっち 日時:2010/12/22 20:15

私の知る限りWindowsのコンソールにグラフィックを利用することは出来ないと思います。 (ウィンドウハンドルは取れると思うので不可能ではないかもしれませんが、 普通にウィンドウズプログラムに移植してしまったほうが楽だと思います)

Page: 1 |