人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WindowsアプリをC++で作成しています。その際にソート処理が必要なので、標準のSORT.EXEコマンドを使い、パイプ経由でソートの入出力ができるようできました。

問題は、SORT.EXE はコンソールコマンドなので、せっかくWINDOWSアプリにしているにもかかわらず、DOS画面がかってに開いて閉じるので、なんかみっともないです。
このDOS画面を開かない方法はないものでしょうか?

●質問者: goldman
●カテゴリ:コンピュータ 学習・教育
✍キーワード:C++ DoS exe Windows いもの
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● shampoohat
●5ポイント

http://www.hatena.ne.jp/1133014347

人力検索はてな - C言語の勉強をしています。SORT.Cのソースコードが欲しいです。それも最速のロジックで作成された一品を参照できる場所を教えてください。仕様はWINDOWSのSORTコマンドと..

http://freebooks.info.nara-k.ac.jp/archive/ProgrammingII/program...

http://www.paw.hi-ho.ne.jp/takadayouhei/technic/36.html

qsortに渡す関数ポインタにクラスのメンバ関数を渡したい

あの、すみません、以前の質問に回答したものです。


この回答は質問の趣旨には沿っていません。

ですので、ポイントを返せといわれたら返却いたします。

ちょっと気になりましたので、回答を入れさせてください。


外部プロセスSORT.EXEを起動する必然性はどのくらいあるのでしょうか?

つまり、ソート対象になるデータの量がメモリに収まりきらないなどの特殊な事情があるということでしょうか?


上記の事情がない限り、Cの頃からあるqsort関数で簡単にソートできてしまい、

・外部プロセスを呼び出す必要がなくなる。

→ 速い

→ 格好悪くない

→ 環境に依存しなくなる

というメリットが得られます。


手順は、

0. 比較関数を用意する

1. ソートしたいデータを配列に入れる

2. qsort関数を呼び出す

の3手順で、極めて簡単です。


URL2が、Cでの利用法の例。

URL3が、C++でのクラスのメンバ関数を、qsortの引数にする方法です。

(特にメンバ関数に拘る必要がなければ、クラスに属さないCの頃からある普通の関数で良いと思います)


ご存知の上で質問をされていたのでしたら失礼しました。

◎質問者からの返答

入力データの容量はおおよそ、6〜10GBです。メモリは4G積んでいるので、残り6GBをテンポラリファイルで処理してくれる SORT.EXEを採用した次第です。

SORT.EXEは、10GBでもちゃんとソートしてくれるんでありがたいのですがねぇ


2 ● jouno
●45ポイント

http://homepage1.nifty.com/MADIA/vc/vc_bbs/200410_04100027.html

DOS?R?}???h???E?C???h?E???\????????????s????????

CREATE_NO_WINDOWをつかう方法、startupinfo構造体で指定する方法などが紹介されています。

◎質問者からの返答

おお〜すばらしい。まさにこれです。いま動作確認とれました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ