[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/27 13:34 / Filesize : 231 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.41【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:26:08 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.40【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1184717430/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

684 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:39 ]
>>680
せめて
ttp://www.microsoft.com/technet/sysinternals/default.mspx
あたりのツール使って、実際のスレッド数をまず確かめてはどうか?

685 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:47 ]
ある

686 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:11:53 ]
自分で作ったのなら自分で管理して数えればいいじゃん

687 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:27:41 ]
ProcessWalkerを使ってみたんだが、やはり複数立ち上がってる・・・

確かに自分で数えればいいんだが、
パフォーマンスログでスレッド数見ると
自分で立ち上げたスレッド数以上立ち上がってて
たまに増減するんだよね。

688 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:28:33 ]
だから何だ?チラシの裏にでも書いてろ。

689 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 12:36:37 ]
そりゃ裏でスレッドを作られったって、それはWin32の勝手だろうに。

690 名前:デフォルトの名無しさん [2007/08/26(日) 13:03:42 ]
C/C++の文法自体は大体理解できたが、大規模なプログラムの作り方が
さっぱり分からん

大規模なものだと、だいたいフォルダごとに纏められていて総数数百、数千のファイルがあるが
どのような感じでそんな構造をつくっていけばいいのかさっぱりです。

Webにはどこも同じような、内容ばかりポリモを動物を使っての説明w

結局みんな大規模なものはかけないのかな?

691 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:07:39 ]
はは

692 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:09:43 ]
>>690
大規模っつーことで複数人での開発を想定するが
個人的にはプロセスやDLL等の境界で切ってあるほうがずっとやりやすかったかな
切らないんなら、適切にスタブを作るのが常套かと思う
Facadeなどの下に隠すのも良い
画面がいっぱいあるだけの良くある業務系なら、それぞれの画面に飛べるように
なっていて、それぞれが独立していれば概ね問題は無い
まあ所詮ケースバイケースで王道は無いだろ
「銀の弾丸はない」のだと知れ



693 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:10:03 ]
大規模なプロジェクトと動物ポリモとどういうつながりが?

694 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:20:38 ]
>>687
オーディオデータとか動画扱ってる場合とかWindowsが勝手にスレッド作る場合はよくあるお

695 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:25:54 ]
>>675
>でも実装してないときはコンパイラが勝手に作ってくれるんじゃないんですか?

各メンバのコピーコンストラクタを呼び出す、というコピーコンストラクタを作ってくれる。
同様に代入の場合は各メンバに対しoperator=を呼ぶ。
メンバにポインタがある場合ポインタがコピーされるだけで、ポインタが指す先は複製されない。

696 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:30:15 ]
まーメンバがコピーコンストラクタが上手く動くクラスとポインタ以外の
基本型だけならデフォのコンストラクタで問題ないことも多い
ポインタ生のままで保持せずにboost::shared_ptrでくるんだりしてれば
適切に参照カウント処理してくれる

そうでないならちと考えろってこった


697 名前:デフォルトの名無しさん [2007/08/26(日) 13:31:27 ]
>>693
私が言いたいのはWebで恰もC++知ってますみたいな講座書いてる奴の大半は
動物ポリモみたいなことかいてるだけで実用的なことは一切出来ないのかな?

と思っただけですよ

698 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:33:05 ]
しらねぇ
つーかどうでもいい

動物ポリモは確かにくだらねぇしオリジナリティはねぇな

699 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:37:16 ]
初心者の為に端折って説明してるだけなんだよ

700 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:39:50 ]
あれで初心者が解るのか疑わしい

701 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:42:37 ]
わからなかった?
精進するよ

702 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:44:29 ]
>>697
動物ポリモみたいなこと書いてないで君もさっさと大規模なもの作れる頭持つか諦めなさい。



703 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:50:52 ]
そうだね
スレ汚しすまそ

704 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:26:55 ]
逆に実用的でコーディング時の仕様に依存しないポリモーフィズムってなに

705 名前:デフォルトの名無しさん [2007/08/26(日) 14:30:57 ]
まだ、いってんの?

C++ 講座
で検索してみなよ

どこもおなじようなことしか書いてないからw



706 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:35:06 ]
そりゃC++ 講座だもん

707 名前:デフォルトの名無しさん [2007/08/26(日) 14:41:55 ]
偉そうに書いてるわりには、実際に作ったソフトを公開してる人いないよね

実際はC++の文法だけしか理解できていない可能性高し





708 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:42:57 ]
だからなんだよ?どうでもいいだろ?
チラシの裏にでも書いてろよ。

709 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:45:45 ]
有能だけどそこまで親切じゃない人もいるんだよ

710 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:54:36 ]
>>707はアホそうに書いてるだけで、実際に作ったソフトを公開してないよね

実際はC++の文法ですら理解できていない可能性高し

711 名前:デフォルトの名無しさん [2007/08/26(日) 14:56:11 ]
大規模な開発なんて経験つんでやっていくものじゃないの
Webのしかも言語自体の解説に何期待してんだか

712 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 14:57:08 ]
>>707
遊びの延長や使い捨てや自分専用で作るのと
公開するソフトを作るのではかかる手間が桁違いだろ



713 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:06:54 ]
公開ライブラリを作ってる人達の実力は底が知れない
具体的にいうとboost関係の人達

714 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:23:49 ]
知れるかどうかって話で言うと、何も公開していない人のほうが底が知れないね。

715 名前:デフォルトの名無しさん [2007/08/26(日) 15:25:40 ]
>>713
そうか?
以前正規表現を使いたくてboostを使ったが速度でイマイチだったから
自前で実装したけど?

716 名前:デフォルトの名無しさん [2007/08/26(日) 15:30:47 ]
>>715
そうか?
以前正規表現を使いたくてお前のを使ったが速度でイマイチだったから
自前で実装したけど?

717 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 15:32:20 ]
どうでもいから出て行ってくれないかな。

718 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 16:38:43 ]
boostはC++の実験場だから
チューニングはしてないよ


719 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 17:18:01 ]
チューニングに関する実験でもチューニングしてないよ

720 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 18:59:25 ]
boost::uniform_01< boost::mt11213b, float > rnd( boost::mt11213b( (unsigned long)(time(0)) ) );
oven::random_shuffle( vec, _1 * rnd() ); // std::random_shuffle( vec.begin, vec.end, _1 * rnd() );
std::random_shuffleの乱数生成関数オブジェクトにboost::uniform_01を使ってみたんですが
なんかうまくばらけてくれませぬ
というわけでstd::random_shuffle用のいい乱数発生方法を教えてください

721 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:48:44 ]
Boostなんてたいしたこと無いだろ
これが一番典型的な例

____              progress_
|← reject|  boostの中の人  display   ユーザー
. ̄.|| ̄ ̄        ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
  ||            ┏┗  ┗┗  ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

722 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:58:05 ]
それがboostの典型なら、boostの中でrejectされたりしないだろう。
boostの中で平均的に評価されているものが、他との比較でreject扱いになって
初めて「boostなんてたいしたことない」になる。



723 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 22:35:06 ]
progress.hppには
まるで役に立たないprogress_displayと
すごく役に立つprogress_timerが同居しています
そんな兄弟いますよね

724 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:18:30 ]
Visual Studio .NET 2003環境の問題について教えてください。

アラビア語リテラルの入った.ccのソース(MySQL)のコンパイルが出来ません。
 error C3209: '・ァル館・' : Unicode 識別子は現在サポートされていません。
というエラーが表示されます。(ソースUTF8の場合)

秀丸でShift-JISにしたり、UTF8にしたりしたのですが、どちらもエラーでした。
VSのエディターではShift-JISの場合、アラビア語が文字化けもなく表示されます。
(UTF8では文字化けして表示されます。)

2時間くらいググッても分かりませんでした。
この問題の解決法を教えてください。
エロイ人お願い! 

725 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:21:48 ]
>>724
VC が UTF-8 を認識できてないんだろ。どうやるのか知らんけど。
Shift_JIS でアラビア語が扱えないのは確実。

726 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:26:42 ]
英語版に言語パック入れたら?


727 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:29:28 ]
BOMつきUTF-8ってVS2003で食えたっけ
VS2005なら大丈夫のはずだが

リテラルはワイド文字なのか?
そうだと仮定すると、ソース修正して
16進でUnicodeのコードポイントを記述してやるのが一番手早い
Perlか何かを使えば簡単だろ


728 名前:724 mailto:sage [2007/08/26(日) 23:45:35 ]
素早いレス、感謝感激です。

>>725
アドバイス、d。
どこで聞けば分かりそうですか?ご存じでしたら教えてください。
オプションやらヘルプやら一通り見てみたのですが、分かりませんでした。

>>726
ちょっと難しそうです。d。

>>727
> BOMつきUTF-8ってVS2003で食えたっけ
BOMつきかどうかを確認する方法をご存じでしたら教えてください。

> リテラルはワイド文字なのか?
リテラルはワイド文字です。
確かにソース修正が一番簡単ですね。
ただ、ソースの下の方を見てみたら、ヒンディ語・ヘブライ語・・・と限りなく続いてますので、結構大変かも。

729 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 23:51:04 ]
>>728
BOMを確認したければファイルの先頭をバイナリエディタで見てみろ。
BOMつきでなければ、VS2005でも食えない。

ワイド文字リテラルなら、話は簡単だな。
手でやらずに簡単なフィルタープログラムを書いて、機械的に変換してしまえ。
そんなら多国語でも関係ない。

730 名前:デフォルトの名無しさん [2007/08/26(日) 23:55:03 ]
助けて!以下のプログラムでメモリがおかしくなるお!
分母150 試行回数100000で繰り返すとなるお!
助けて!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int i,j,dom,cnt,max,ret,k;
int ch;
int array[128];
int over, less;
long int times;

i = j = k = dom = cnt = times = max = 0;

printf("input dominator >");
scanf("%d", &dom);
printf("input times >");
scanf("%ld", ×);


731 名前:730続き [2007/08/26(日) 23:55:39 ]
LOOP:
k = 0;
over = less = 0;
while(getchar() != '\n');
printf("dominator = %d times = %d\n", dom, times);

sleep(1);
srand(time(NULL));
for(i=0; i<times; i++){
cnt++;
ret = rand() % dom;
if(ret == 7){
array[k] = cnt / 100;
array[k]++;
k++;
array[k] = -1;
printf("%d\n", cnt);
if(cnt > max){
max = cnt;
}
if(cnt > dom){
over++;
}
else{
less++;
}
cnt = 0;
}
}

732 名前:730続き [2007/08/26(日) 23:56:15 ]
for(i=0; array[i] != -1; i++){
for(j=0; j<array[i]; j++){
printf("*");
}
printf("\n");
}

printf("MAX = %d\n", max);
printf("OVER = %d ELSE =%d\n", over, less);
printf("%d/%d\n", over+less, times);
printf("%f\n", times / (double)(over + less));
printf("Retry ? (y/n) >");
ch = getchar();
if(ch == 'y' || ch == 'Y'){
goto LOOP;
}

return 0;
}




733 名前:730 [2007/08/26(日) 23:56:54 ]
このままじゃパチンコで勝てないお!
助けてお!

734 名前:デフォルトの名無しさん [2007/08/27(月) 00:00:33 ]
こんなプログラム書いて何になるの?


735 名前:デフォルトの名無しさん [2007/08/27(月) 00:01:41 ]
>>734
>>733

736 名前:724 mailto:sage [2007/08/27(月) 00:01:41 ]
>>729
ありがd。見てみたら、BOMついてませんね。
付けてオンパイルしてみます。ノシ

737 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:04:27 ]
>>730
ざっとみだけど

>int array[128];

が足りてないだけじゃないの?

738 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:06:54 ]
>>730
メモリをケチるな!
array[128] → array[2048]
期待値は (1/150)*100000=666.67

739 名前:730 [2007/08/27(月) 00:10:46 ]
できたおおおおおおおおおお!
これで勝てるお!

740 名前:730 [2007/08/27(月) 00:11:55 ]
期待値の詳細希望

741 名前:730 [2007/08/27(月) 00:14:06 ]
なるほどお!ボヌスが666.67回くるってことかお!
ありがとお!

742 名前:730 mailto:sage [2007/08/27(月) 00:17:43 ]
やっぱりすごいお
さっぱりわからなかったのに
すぐ回答がきたお
どうしたらそうなれるかお?



743 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:20:17 ]
>>742
毎日2時間、電灯のヒモでボクシング。これを1年続けること。

744 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:21:02 ]
みんな半年から1年ぐらい
アーバンチャンピオンと
スパルタンXで鍛えてるはず

745 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:26:58 ]
>>740
100000回×(1/150)=666.67回 kがインクリメントされるわけだから
array[k]はarray[668]って式で参照される可能性があるわけで
array[128]と宣言したのではあきらかに足りないってことなんではないかと>期待値云々
こういう実行時に入力される値に依存するような大きさの配列はメモリの動的確保で扱うべきだとは思うけどね

746 名前:724 mailto:sage [2007/08/27(月) 01:39:46 ]
>>736
ファイルの先頭にBOM(というか、ZERO WIDTH NON-BREAKING SPACE。ef bb bfの3バイト)を付加したら
無事、オンパイルできました。

747 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 01:42:28 ]
>>746
いや、ファイル先頭にある場合、つまりBOMである限り、
それはBOMであってZERO WIDTH NON-BREAKING SPACEとは言わないんだ。

748 名前:724 mailto:sage [2007/08/27(月) 02:02:45 ]
>>747
添削ありがd。

WikipediaのUTF-8(ja.wikipedia.org/wiki/UTF-8)のところに記述がありました。
> プロトコルが常にUTF-8である事を強制しているものである場合はBOMを禁止するべきで、
> この場合ファイル先頭のBOMは "ZERO WIDTH NO-BREAK SPACE" と見なされる。
> 逆にプロトコルがそれを保証しない場合BOMは禁止されずファイル先頭のそれはBOMと見なされる。(tools.ietf.org/html/rfc3629#section-6

2文目ですね。

749 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 10:40:28 ]
www.vista-osx.com/kensaku.htm

750 名前:デフォルトの名無しさん [2007/08/27(月) 15:06:25 ]
ヘッダファイルの書き方について質問です。

自分で複数ファイルのプログラムを作ったとき、
たとえば、mian.c , sub.c , sub.h という3つのソースファイル
からなるプログラムの場合、
$ gcc main.c sub.c
としますよね。

でも#include<stdio.h>などでは、
stdio.hにはプロトタイプ宣言しか無くて、printf( );とかの定義が無いはずなのに
$ gcc main.c stdio.c
などとしなくてもいいのはなぜですか?

751 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:09:05 ]
パス通ってるからじゃないん?よーわからんけど

752 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:11:52 ]
引数で指定しなくてもリンクされるようになってるから。



753 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:17:52 ]
C++のvector配列って結構処理重いんでしょうか。
10MB前後のテキストデータをmallocしたポインタ読み込んで、区切り文字単位に編集・分解していった場合と、
stringに読み込んでからvector<string>に編集・分解していった場合で、
処理時間が前者が約25秒、後者が約60秒掛かったのですが、こんなもんなんですかね。

754 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:28:49 ]
コードplz

755 名前:デフォルトの名無しさん [2007/08/27(月) 15:34:02 ]
vector に malloc なんか使ってるから・・・

756 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:36:15 ]
>>753
vector<string>版も意外に速いなw
STLコンテナは基本的に値を保持するんで、その場合はstringのインスタンスを
コピーしまくることになる
ポインタだけで操作すれば格段に速いのは当たり前だ

vector<>が遅いというよりはメンバのコピーに時間がかかっているだけなので、
そこが性能のボトルネックになっているのなら、
vector<char*>でポインタを保持するなり
vector<int>でインデクスを保持するなりするとよいだろう

757 名前:753 mailto:sage [2007/08/27(月) 15:45:43 ]
>>756
なるほど、言われてみればインスタンスのコピー云々で納得です。
御指導ありがとうございましたm(_ _)m

758 名前:デフォルトの名無しさん [2007/08/27(月) 16:01:38 ]
質問です。
i = (char*)malloc(sizeof(char) * 256);
でメモリ領域を確保したのですが、256バイト以上使用することができます。
なぜでしょうか?教えてください

759 名前:デフォルトの名無しさん [2007/08/27(月) 16:03:02 ]
>>758
たまたま

760 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 16:07:29 ]
>>758
本来アクセスしちゃいけないところにアクセスしてるだけ
CはC#などとは違ってそんな事しても例外は発生しないし
たまたま何のエラーも出ない事がある
だからってそんな事やってたらきっとそのうちクラッシュするよ

761 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 16:10:57 ]
>>758
一般的にmallocは、予めOSから確保しておいたでっかいメモリの塊から
必要な分だけを切り分けて自身の戻り値にしている(残りは次回以降のmallocなどで使う)。
理由は、OSのメモリ確保処理が大抵大容量の確保に向いていて小回りが利かないから。

そういうわけでその256バイトの後ろにも、OSから見れば
アプリケーションが確保した(実態はmallocが抱えていたり
他のmallocなどの呼出で使われている)メモリ空間が広がっている。

だから一見256バイトの後ろも読み書きできるように見えるというわけ。


762 名前:デフォルトの名無しさん [2007/08/27(月) 16:16:24 ]
758です。
勉強になりました。
ありがとうございます。



763 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 16:19:05 ]
運が悪いと範囲外に書き込んだときに他の変数の値書き換えたりすることがあるから範囲外アクセスはNGよ

764 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:10:51 ]
質問させて頂きます。
現在UNIX環境でコンソールベースのプログラムを組んでいるのですが
CUIからメニューの操作、カーソル操作の為のエスケープシーケンスに悩んでおります
コンソールベースのプログラム自体あまり組んだ事ないのですが
CUIからメニュー操作というのは可能なのでしょうか?

765 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:16:05 ]
環境によるかもだけど、ncursesとか調べてみると幸せになれるかもしれない。

766 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:27:24 ]
>>764
こんなのでいいなら簡単にできるけど
エスケープシーケンスの設定が済んでいることが前提
#include <stdio.h>

int main(void){
int i, x, y;
printf("\x1b[2J"); // clear screen
for(i=1;i<=9;i++){
x=i;
y=(i%2)+1;
printf("\x1b[%d;%dH", y, x); // cursor move
printf("%d", i);
}
return 0;
}


767 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:31:35 ]
malloc使う奴はクソだとか言われる事が増えてきてる中、このスレは落ち着きますね…

768 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:34:39 ]
まじで?そんなこと言う奴がいるのか・・・

769 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:52:36 ]
vector型の配列をランダムに並び替えるには自前で作るしかないですかね?

770 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 20:56:12 ]
std::random_shuffle だっけ

771 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 21:25:47 ]
>>770
ありがとうございます

772 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:44:37 ]
>>765-766
有難うございます。
ncursesについて詳しく調べて見たいと思います。

エスケープシーケンスからの操作なのですが、設定とはどう行うかご教授願えないでしょうか?
検索しても見つからなくてorz



773 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:51:24 ]
>>772
UNIX環境なら使うターミナルを選ぶだけかな…
MS-Windows環境なら ansi.sys を読み込ませる



774 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 22:53:34 ]
>>772
TERM環境変数
普通はシェルの初期化スクリプトなどで設定するが、
普通にシェルを操作できてるんなら、まあ大丈夫だろう

775 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:01:57 ]
>773
えー。それって、Windows環境で、DOS-Exeを動かす場合だけでそ。

776 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:12:20 ]
>>773-775
有難うございます。
凄く勉強になります。
ご教授して頂いた所を詳しく調べてみたいと思います。

777 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:48:42 ]
>>775
bashとかでもあるよ。

778 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:54:03 ]
だれか俺にbashとansi.sysの関係を教えてくれ。

779 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 23:58:10 ]
すまん。レス番見間違えた。

780 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 03:00:09 ]
プログラム初心者なのですが,助けてください.
VC++2005Express,WinXP Pro環境で,
コンソールアプリケーション上でWM_TIMERを使いたいのですが,
調べてみると不可視ウィンドウを作れば良いと書かれていました.
そこで,以下のようなウィンドウを生成しているのですが,うまく動きません.
ご教授いただけないでしょうか?

HWND Create(){
WNDCLASS wcHide;
HWND hwndHide;
// ウィンドウクラス
wcHide.style = 0;
wcHide.lpfnWndProc = (WNDPROC)MWndProc;
wcHide.cbClsExtra = 0;
wcHide.cbWndExtra = 0;
wcHide.hInstance = (HINSTANCE)GetModuleHandle(NULL);
wcHide.hIcon = NULL;
wcHide.hCursor = NULL;
wcHide.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcHide.lpszMenuName = NULL;
wcHide.lpszClassName = "";

hwndHide = CreateWindow ( wcHide.lpszClassName, "", WS_DISABLE, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, wcHide.hInstance, 0);
}

781 名前:780 mailto:sage [2007/08/28(火) 03:01:24 ]
LRESULT CALLBACK WndProc( HWND hWnd, UINT iMessage, WPARAM wp, LPARAM lp)
{
switch ( iMessage ) {
case WM_CREATE:
SetTimer(hWnd , 5000 , 1 , NULL);
return 0;

case WM_TIMER:
printf("test\n");
return 0;
}
return 0;
}

とりあえず,5秒毎に"test"を出力できるようにしたいのですが,
よろしくお願いします.

782 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 03:04:49 ]
www.google.co.jp/search?q=%E3%81%94%E6%95%99%E6%8E%88&btnG=%E6%A4%9C%E7%B4%A2
うまく動かないってのはどんな状況?



783 名前:780 mailto:sage [2007/08/28(火) 03:20:40 ]
正しくはご教示でしたか
間違えて使っていました.ありがとうございます.

>うまく動かないってのはどんな状況?
何も表示されずに終了してしまいます.
以下を試してみましたが何も表示されませんでした.
・main文でCreate()を呼び出した後にwhile(1)やsleepをはさんでみる
・WndProc()関数の最初にprintfでチェッカーをはさむ

よろしくお願いいたします.

784 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 03:23:52 ]
>>780
メッセージループはあるか?
なければググれ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef