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


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

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



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


556 名前:デフォルトの名無しさん [2008/02/12(火) 23:19:54 ]
すみません質問です。
下記のようなコードでBar::fugaを初期化する方法が
よくわからないのですが、教えていただけませんでしょうか?
この場合はやはり引数空っぽのコンストラクタを作るほかに手はないのでしょうか?

class Foo{
 public:
 Foo( int hoge ){ ... }
};

class Bar{
 public:
 Foo fuga[ 3 ];
 Bar( void ) : ???? { ... }
};

557 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:22:46 ]
>>554
おかしいというときは、after - beforeやtimeの値が0になっているときじゃないか?

558 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:34:52 ]
timeGetTimeが何を返す関数なのか理解しないで使っているに1ガバス。

559 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:42:03 ]
戻り値で
return *(hoge + (sizeof(piyo) + 2);
みたいに書くのって非推奨なんでしょうか?*は無くてもいいんだけれども

560 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:52:53 ]
ケースバイケース。
つか、それだけじゃ分からん。

561 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:55:35 ]
>>559
まあ、非推奨だろうね。








コンパイルできないし。

562 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:57:36 ]
>>559
*があるとないじゃ内容が変わるが?括弧の数が合わないのはtypoでいいよね?
個人的には、あんま複雑になるようならローカルに落として欲しいけど、これくらいなら許容範囲。
ってか、ポインタを+2するだけならreturn hoge + 2;でもいいんでねぇの?


563 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:58:57 ]
>>559
何がいいたいのかさっぱり分からない。

564 名前:460 mailto:sage [2008/02/13(水) 00:45:52 ]
うあああああああああ!できました!
>>555
整数型って分かってたつもりなのに小数いれてました!
あと、>>557で言われたとおりにtimeの値調べてたら、
ウィンドウ生成時に
before = timeGetTime();
そして計算時にも
before = timeGetTime();
ってやって、afterに何も入ってないような状態になってたような感じでした!
今度こそ解決しました!ありがとうございます!



565 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:53:15 ]
そもそもさ、めちゃめちゃな計算結果って具体的にどんなんよ

566 名前:460 mailto:sage [2008/02/13(水) 01:11:10 ]
3Dのモデルを動かしてて、チェックするまでは数字の表示の仕方がよく分からなくて数字に出してなかったんですが、
とりあえず物体のy座標しかいじってないのにカメラの位置が変わってました。

567 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:53:03 ]
一時的でなくそこからずっと指定の型で宣言したみたいに扱う方法ってないですか?
例えばchar型で宣言したのを一々(int)とかしなくてもずっとint型として扱う
みたいな感じで

568 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:02:10 ]
>>567
言いたいことがわからない。キャストを毎回するのが面倒ってことか?
ずっとintならはじめからintにしとけばいいんでねぇの?

569 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:08:09 ]
>>567
union{
char a;
int b;
};
ちょっと違うかもしれんが

570 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:08:59 ]
>567
#define char int
なにが起きても責任とらないよ。

571 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:26:22 ]
>>568-470
ごめん_beginthreadが引数としてvoid*しか渡せないからそれをchar*として扱える
ようにしたかったんです
関数内でchar *xxx=(char *)xxxとすることで解決しました。ご迷惑おかけしました

572 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:27:27 ]
>>568-470
ごめん_beginthreadが引数としてvoid*しか渡せないからそれをchar*として扱える
ようにしたかったんです
関数内でchar *xxx=(char *)xxxとすることで解決しました。ご迷惑おかけしました

573 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:28:44 ]
「charとint」と「void*とchar*」はだいぶ事情が違うだろ・・・

574 名前:デフォルトの名無しさん [2008/02/13(水) 06:39:24 ]
>>514
>>516
ありがとうございます。なるほど、仮想関数は定義が必須なのですね。
あと、純粋仮想関数は定義が必要ないけど、デストラクタの純粋仮想関数の場合は
やはり定義が必要になる、というのは正しいですか?




575 名前:デフォルトの名無しさん [2008/02/13(水) 08:56:43 ]
質問です。
マルチスレッドプログラムを作った事がないためわからないです。
スレッドAで作ったデータをスレッドBに渡すには普通どうやって渡すのでしょうか?以前お遊びで作った時、グローバル変数を使って渡したのですがデータが化けちゃったんですね。。

【作りたいもの】
ダイアログベースのターミナルソフト。
・シリアルデータ受信スレッドでデータを受けて表示用(windowsのメッセージループ待ちをしてる)に送りたい

【開発環境】
VC。MFCはつかいません。猫でもわかるレベル

576 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:45:29 ]
AはBの作成者、じゃないのね?
グローバルデータが化けた理由がわかれば解決すると思うよ。

577 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:49:28 ]
同時に書き込んだんじゃね?
もしくは書き込んでない(初期化してない)のに取得したか

578 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:58:22 ]
どうせ排他してないだけなんだろうな

579 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:00:48 ]
>>575
多分GUIスレッドにはPostMessage()でブン投げてるんだろうが、
GUIスレッドがPostされたメッセージをメッセージキューから読み取るまでの間に
受信スレッド側からの再Postが発生し得るから、その場合グローバル変数では
当然上書きされてしまうだろ。

Post側は毎回malloc()等でメッセージ用の領域を確保して、受け側で
メッセージを処理したらfree()するように汁。

580 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:57:14 ]
C++の一時オブジェクトについて質問します。gcc 3.2.1です。
下記のようなコードで"taking address of temporary"のWARNINGが出ますが、
この場合は無視しちゃってもいいですか?いいですよね?

#include <stdio.h>

class CTmp
{
public:
int x,y;
CTmp(int a,int b):x(a),y(b){};
};

int Foo(CTmp* pTmp)
{
if(pTmp) return pTmp->x + pTmp->y;
return 0;
}

int main(int argc,char** argv)
{
int result=Foo(&CTmp(1,2));
printf("%d\n",result);
return 0;
}


581 名前:580 mailto:sage [2008/02/13(水) 11:16:23 ]
こうするのがスマートかな。
スマートさ以外で>>580のまずい点あったら教えてください。

#include <stdio.h>

class CTmp
{
public:
int x,y;
CTmp(int a,int b):x(a),y(b){};
};

int Foo(const CTmp &Tmp)
{
return Tmp.x + Tmp.y;
}

int main(int argc,char** argv)
{
int result=Foo(CTmp(1,2));
printf("%d\n",result);
return 0;
}


582 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:58:15 ]
スマートというかそれが普通じゃね。

583 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:01:25 ]
>>580
標準 C++ ではエラーになるはず。 gcc のバグっぽいな。
gcc.gnu.org/bugzilla/show_bug.cgi?id=21386
(だいぶ古いけど CONFIRM されてない。)

584 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:02:19 ]
んじゃ、列挙。
・ポインタである必要が内のにポインタを使うな
・どうしても使いたいならconst修飾しろ
・そもそもデータメンバは公開するな
・クラスに依存する関数ならメンバにしろ



585 名前:デフォルトの名無しさん [2008/02/13(水) 12:15:31 ]
下記のように、fstreamの参照に、ifstreamを渡したいのですが、できません。
そこで、fstream *fsというようにポインタにしてやってるのですが、参照で
やる方法はないでしょうか

void func(fstream &fs)
{
return;
}
int main()
{
ifstream ifs;
ifs.open("ttt");
func(ifs);


586 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:19:49 ]
return文で計算したりって避けてたけど結構普通にやるもんなんだな

587 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:20:57 ]
>>585
fstream は読み書き両用。読み取り専用の ifstream を渡せないのはあたりまえ。
なんで ifstream& にしないの?

588 名前:580 mailto:sage [2008/02/13(水) 12:26:17 ]
>>582-583
レスありがとうございます。
まあ動くけど将来にわたって安全とは言い難い、
ってかやはり>>581推奨ってとこですかね。

>>584
あくまでサンプルなんで御容赦ください。
でもお気遣い感謝します。

589 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:46:25 ]
まずい点あったら教えてくれと書いてるのに
まずい点を指摘したら言い訳ってどーなんだ

590 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:46:29 ]
>>585
ファイルストリームのクラス階層を確認してみるべき。
fstreamとifstreamは継承階層の中で関係が全く無い。


591 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:53:03 ]
>>589
いや、質問の主眼が"taking address of temporary"のWARNINGでしたので。
その他は瑣末なことと手を抜いてしまいました。
とりあえずお詫びまで。

592 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:56:48 ]
まあありゃ誰がどう見てもただの揚げ足取りだな

593 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:03:19 ]
>>585
ちょっとややこしいけど、そのコードには、一般によくある勘違いにかすっている
君独自の勘違いがある。

まず、ifstreamはistreamを継承してる。fstreamは、iostreamを継承してる。
そのiostreamが、istreamとostreamを継承してるから、つまり両者に共通する近い祖先はistream。
iostreamはistreamの子だけど、fstreamはifstreamの子ではない。これが一般に良くある勘違い。

で、君はこれを踏まえて、fstreamにifstreamを渡すという、更なる勘違いをしてる。
読み書き両用クラス「が」読み取り専用クラス「の」子であるのは明白なわけで、つまり君は、
このセンスがまだ身についていないか、あるいは、普通に渡すだけでダウンキャストが可能になるという、
C++の仕様に対する勘違いをしていることになる。

594 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:19:14 ]
std::cinをstd::ifstreamに渡しても問題なかですか?



595 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:36:47 ]
std::istreamじゃイヤなのか? なぜ f が必要?

596 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:47:04 ]
>>593
そんなくどい説明必要ない。
クラス階層見れば一発で分かる。
他人の勘違いまでも決め付けるなんて教えたがりも甚だしい。


597 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 14:10:16 ]
>>596
現実に「クラス階層見てない」人なんだし、
他に可能性が無い状況は決めつけとは言わないよ。
変な理屈で変なスイッチ入っちゃった人に絡まれるのってやだなぁ。

598 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:23:56 ]
using namespace std;
は何かヘッダをincludeした後じゃないとだめなの?

599 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:28:19 ]
書くだけならお好きにどうぞ

600 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:39:47 ]
VCで先に書くとstdと認識してくれないのですが


601 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:41:55 ]
makeファイルがLinux、Windows、Macを識別する方法を教えてください

602 名前:デフォルトの名無しさん [2008/02/13(水) 15:46:10 ]
>>600
これを機会にusing namespace std;をグローバルに置くのを
やめちまいなよ

603 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:50:50 ]
どこに置くのが正解なのでしょうか?
mainの中?

604 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:58:42 ]
グローバルに置くのが正解



605 名前:602 [2008/02/13(水) 16:00:48 ]
>>603
いや、mainの中の先頭に置いても良いけど
スコープはmain内だけであってまぁ・・なんていうか・・・

using namespace std;の宣言自体を俺は勧めない

606 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:11:52 ]
>>603
原則 using を使わず全部書くのが推奨だな

607 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:18:05 ]
std::vector<int> hoge;

面倒でもこういう記法に慣れるが吉。

608 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:25:19 ]
cout cin endlくらいはusing宣言したいな

609 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:39:53 ]
(swap内で)
using std::swap;
using boost::swap;
using 俺ライブラリ::swap;
(definition内で)
using namespace boost::spirit;

これしか使ってないな

610 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:44:03 ]
>>608
おれもそう思う。stdにいろいろ詰め込み過ぎだ。

611 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:55:48 ]
::boost::mplを使うときに
専用の名前空間に放り込んでusing namespace ::boost::mpl;してから
共通名前空間にエイリアスとなるメタ関数を書くようにする
ぐらいは許してください


612 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:52:47 ]
専用名前空間って、それのためにしか使わないなら、
名前空間のエイリアスnamespace hoge = boost::mpl;で十分では?

それに限らず、cppファイル内ではよくやるんだが。
namespace bll = boost::lambda;
namespace algo = boost::algorithm;

namespace dr = System::Drawing;

613 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:36:33 ]
VC++のusing namespaceは壊れてるから
専用の名前空間でも使わない方がいいよ

614 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:52:15 ]
std::mapから登録していないKeyつかって[]で取り出そうとすると
出来立てのValueが返ってきますか?



615 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:55:30 ]
うん

616 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:32:31 ]
_beginthreadでマルチスレッドで実行する関数って戻り値設定できないの?

617 名前:デフォルトの名無しさん [2008/02/14(木) 03:53:29 ]
くずたれの質問ですいません
class内でのstaticメソドはどういう役割をするんでしょうか
csharpやjavaだとわかるんですが
C++でのstaticメソッドは、いまいち解りません
どなたか解説お願いしていただけないでしょうか


618 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:58:05 ]
>>616
_endthreadex()を使えば整数は返せる。


619 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:58:44 ]
>>617
C#やJavaと同じだと思うんだけど。なんで違うと思うの?


620 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 04:26:56 ]
win32が名前空間対応してくれればいいのに

621 名前:デフォルトの名無しさん [2008/02/14(木) 10:06:21 ]
vectorを初期化するときに、配列を初期化するみたいに、
vector<int> vec = {1,2,3,4,5,6};
みたいな書き方をする方法はありませんか?

622 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:08:44 ]
>>621
その書き方は現行の C++ ではコンパイルできない。
「みたいな」という幅がどこまであるのかによっては、
似たような書き方ができることもあるけど。

623 名前:デフォルトの名無しさん [2008/02/14(木) 10:22:11 ]
batファイルで、処理の途中でキー入力を求められるとき
どうすれば入力できますか?
パスワード入力を自動的に行いたいのです。

624 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:32:29 ]
>>621

>>10



625 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:34:51 ]
誤爆してしまった…

C/C++でGUIを実装する場合、どういった手段が適当でしょうか?(Windows環境)

色々調べてみたところ
・実際の職業プログラマさんなんかはC#やVB.NETみたいなのを使う
・WinAPIを直接、みたいなことは趣味でやる人が使う
(山を登るのに、ロープウェイを使うのが賢いが趣味で山登りを楽しむ人がいるみたいな意味で)

で、実際人に聞くと今度はMFCという意見が出てきました
調べるとWinAPIを糖衣したようなもののように感じたものの情報がすごく少ない

と、こんな感じでして、どっちに進むべきか悩んでいます
やりたいのはどっちだ、というのは手段と目的がryってやつでGUIの実装の手段をどうしたものか、という質問です
C#/VB.NETというものも一応考慮のうちに入れておきたいです
(GUIの実装はC/C++の枠を超えればそれがベターだから、という意見も考慮したいからです)
それではよろしくお願いします

626 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:36:58 ]
>実際の職業プログラマさんなんかはC#やVB.NETみたいなのを使う
業種にもよるけどMFC使ってる職業プログラマも多いよ
むしろそっちの方が多いはず

MFCの情報が少ないのは調べ方が悪いと思う

627 名前:デフォルトの名無しさん [2008/02/14(木) 10:44:20 ]
template <>の中にかけるのは、classと、typename、それにintだけですか?


628 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:46:03 ]
>>623
スレ立てるまでもない質問はここで 第89刷
pc11.2ch.net/test/read.cgi/tech/1202726651/

SET /P password=

629 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:56:59 ]
>>627
type parameter
non-type parameter(intは可 現規格では幾つか制限アリ)
template template parameter(デフォルト引数は考慮されないことに注意)
の三つがOKだよ。

(例)
template<typename T>
template<int I>
template< template<typename, typename> class C >

630 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:59:57 ]
template<class A, class B> void Foo( B b ){}

という関数があったとき、使う側で

Foo<int>( bar );

と引数から特定できない型のみを指定できるのは、
C++において正しい仕様なのでしょうか?VS2005では一応コンパイルが通る
ようですが…


631 名前:625 mailto:sage [2008/02/14(木) 11:05:33 ]
>>626
なるほど・・どうにもうまく調べられないようで、ちょっと離れたプログラム関連の本が多い
書店へ行ったのですが、MFCについての本は独習シリーズを書いている方のものが1冊(古い)と
その他薄いものが何冊かしかありませんでした
それと合わせて情報が少なくマイナーなのかと思ってしまっていました
もうちょっとMFCについて調べてみます

632 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:08:19 ]
というかそのプログラム関連書籍が多い書店を教えて欲しいw

633 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:23:26 ]
池袋にあるジュンク堂ってとこです
大型書店何件か回ったけどあそこが群を抜いて多かったです

634 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:30:11 ]
あそこいいね
立ち読み客のために椅子まで用意されてたし
ちょっと前まで近所だったからよく行ってたよ



635 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:49:07 ]
ただちょっと会計が面倒ですよね

一応MFCやってみようと思います、WinAPI知らないままで不安ですが独習シリーズの人の本買ってみようと思います
ありがとうございました


636 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:18:20 ]
今更MFC?……
目的にも依るし、ここで続けるのもスレ違いだから詳しくは書かないけれど。

637 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:19:34 ]
MFCはこれから落ち込んでいくんじゃないか?.NET系(C#とか)やるべきだと思うの俺だけ?

638 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:31:40 ]
落ち込んでから.NETなり時代に沿ったものに切り替えればいい
目的にもよるけど

639 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:45:38 ]
MFCはまあ、最初の枠組みやってくれるのだけあてにして使ったりするな。

640 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:07:23 ]
>>621
ttp://www.kmonos.net/alang/boost/classes/assign.html

641 名前:デフォルトの名無しさん [2008/02/14(木) 13:28:04 ]
サブスレッドがデータ更新した事を知るためにはwhileなどで繰り返しチェックする以外にどのような方法がありますか

642 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:29:25 ]
>>635
その本は良書だしMFCを少しでも触ったことがあれば難しくはないが、
MFCの情報を探し出せないという検索の腕からいってもお前さんにその本はまだ早い。
というかMFCなんて仕事で必要でない限りは今更初心者が手を出すべきものでもない。

643 名前:641 [2008/02/14(木) 13:32:48 ]
イベントドリブンっていうのはきいたことあるのですが、BCBとかでは無い標準のC言語、C++でどうやるのかわかりません

644 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:51:27 ]
>>641
Windowsならイベントオブジェクト、Unixなら条件変数
>>643
標準のC/C++にサブスレッドなんて概念は無いと思うが…



645 名前:641 [2008/02/14(木) 14:02:49 ]
サンクス

646 名前:デフォルトの名無しさん [2008/02/14(木) 14:13:28 ]
CreateEvent() の使い方がわからないので適当なSleepいれてwhileでチェックしようかと思うのですが
CreateEvent()のほうが断然良いですか? たとえば500msとか、100msとか待ったとき
CreateEvent()のほうが即時性とCPU負荷低いですか

647 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:15:07 ]
やってみると、それ自体は簡単だからまずやってみろって。

648 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:16:31 ]
断然良いです
即時性は高いです
負荷は100msも寝るなら大差ない

649 名前:デフォルトの名無しさん [2008/02/14(木) 14:18:13 ]
DLLにしたいんのですが、なるべく負荷を下げたいんです 
一つのサブスレッドがデータを受信したらそれを知りたいのですが、間隔は2〜10秒くらいです
whileで監視しても変わらないですか

650 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:20:42 ]
少しでも下げたいならイベントオブジェクトの方がいいんじゃね
通知が来るまで寝っぱなしだし
100msごとに起きるよりは当然

651 名前:デフォルトの名無しさん [2008/02/14(木) 14:22:04 ]
初心者がわかる文書ありませんか

652 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:30:41 ]
CreateEventの使い方なんか簡単だ。
HANDLE handle;
handle = CreateEvent(NULL, FALSE, FALSE, NULL);
これで良い。

653 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:31:42 ]
winapiのメリットってなんでsか

654 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:34:42 ]
>>653
何に対するメリット?比較対象は?



655 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:41:07 ]
ウィンドウプロシージャではよくswitchが使われていますが、
ifではなくswitchを使う理由みたいなものがあるんでしょうか?

656 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:42:24 ]
>>655
ifでも書けるから、ためしにifで書いてごらん。
理由がわかると思うよ。






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

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

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