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
457 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:52:42 ] 2つ以上unzipしたときの動作とかも考えとけと
458 名前:デフォルトの名無しさん [2008/02/11(月) 16:53:02 ] この方法では、どういつDLLの関数でもハンドルを個別に用意しなくてはならないですが 便利なので主要なDLLの関数は書き換えようと思います
459 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:56:47 ] DLL見付からなかったらあぼーんだな。その対策入れろよ。
460 名前:デフォルトの名無しさん [2008/02/11(月) 17:50:44 ] 自由落下で物体がどのくらい落ちるか計算させたいんですが、めちゃめちゃな計算結果になります。 どこが間違ってますか? float h; DWORD before = timeGetTime(); DWORD after = timeGetTime(); h -= ( 9.8 / 2 * ( after - before ) * ( after - before )/1000000 );
461 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:51:53 ] >>460 hの初期化してる?
462 名前:460 mailto:sage [2008/02/11(月) 18:05:10 ] >>461 hには元の高さの3.0fが入っています。
463 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:05:49 ] afterとbeforeが同一だったら0除算発生しないか? めちゃくちゃなのはその処理だと思うぞ・
464 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:07:34 ] >>460 先ずはtimeGetTime()を使わずに、自分で時間軸を制御してみたら?
465 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:38:08 ] >>460 h=(1/2)gt^2 だったら -= していくのはおかしいだろ。
466 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:41:18 ] 計算結果を普通に代入すれ
467 名前:460 mailto:sage [2008/02/11(月) 18:46:30 ] beforeはウィンドウが作られたときに数値を入れて、afterは重力計算直前に数値を入れています。 (after-before)の部分を手動で数字の1や2に書き換えたら正常に動作しました。 DWORDとfloatの単位とかの問題ですか? >>465 すみません、落下距離じゃなくて必要なのは現在の高さでした。
468 名前:デフォルトの名無しさん [2008/02/11(月) 18:56:48 ] UNZIP32.DLLの解凍時の進行状況を抑止するにはどうすればいいですか
469 名前:468 [2008/02/11(月) 19:02:03 ] 自己解決しました
470 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:20:58 ] >>467 たぶん>>463 だろうな。 数百メガから数ギガHzで動くCPUからしてみたら、 ミリ秒なんて気の遠くなるほど長い時間。
471 名前:465 mailto:sage [2008/02/11(月) 20:56:12 ] >>467 そうじゃなくて。 h = 3.0 - ( 9.8 / 2 * ( after - before ) * ( after - before )/1000000 ); だろ?
472 名前:デフォルトの名無しさん [2008/02/11(月) 21:00:10 ] 先に質問したものです。 iccについての質問なのですが、-Wall付きでコンパイルすると沢山警告がでます。 これらの警告は対応すべきなのでしょうか? $ icc test.cpp -Wall test.cpp(5): remark #1418: external function definition with no prior declaration double g(double s) { ^test.cpp(6): remark #383: value copied to temporary, reference to temporary used return std::max(s - 100.0, 0.0); test.cpp(6): remark #981: operands are evaluated in unspecified order return std::max(s - 100.0, 0.0); ここで使っているソースはこれです。 #include <iostream> using namespace std; double g(double s) { return std::max(s - 100.0, 0.0); } int main() { double x = 150.0; cout << g(x) << endl; return 0; }
473 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:12:06 ] 警告なんだから、気にならなきゃ別に対処しなくてもいいんでないかい。 おれは、気にする性質だから可能な限り対処するけど。
474 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:48:10 ] >>470 0除算は発生しないよ。乗算してるんだから。
475 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:11:40 ] >>472 remarkは警告ですらないよ。
476 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:15:11 ] >>474 orzぼけていた。
477 名前:デフォルトの名無しさん [2008/02/11(月) 22:24:26 ] ものすごく初歩的な質問でごめんなさい・・・ c++で、任意の位置に文字を表示させる方法を教えてください。例えば「1」を上から100ピクセル100ピクセルの位置に表示させるやり方を。 それと、もう一つ。 文字を上書きする方法を教えてください。上記の「1」の文字を消して「2」に書き換える方法です。 色々検索して調べたのですが、わかりませんでした。 お願いします。
478 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:28:22 ] >>4 とりあえず何に表示してるか教えろ winのコマンドプロンプトか?
479 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:29:25 ] >>477 手始めに、VRAMとかフレームバッファとか呼ばれるものにアクセスする方法を探してみてはどうだろうか。
480 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:29:56 ] >>477 環境によって違うので、先ずは環境を明らかにしてください。
481 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:30:27 ] >>479 ちょw
482 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:49:04 ] 「質問の仕方が」初歩的だと、手の施しようがないよな・・・。
483 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:40:09 ] すいません、プログラミングとは直接は関係ないのですが、 他に適当なスレが見つからなかったので質問させてください。 Dev-C++を使ってプログラムを打っているのですが、 プログラムを作成してソフトから実行するとコマンドプロンプトが一瞬で消えてしまいます。 ↓のような簡単なプログラムで試してみましたが無理のようでした。 どなたか解決策が分かるかた教えてください。 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { printf("test\n"); return 0; }
484 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:40:56 ] getchar();でも入れておけば?
485 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:23:58 ] char型、int型の宣言ひとつで何バイトの領域が確保されますか? 環境によって違うってよく聞くけど例えばXP32bitの場合
486 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:25:40 ] sizeof(char) sizeof(int)
487 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:29:08 ] char型は常に1バイトじゃなかったっけ?
488 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:52:00 ] >>486 ありがとう。そういえばそれで見れたね いつもよくsizeof使ってるのにその発想がでてこなかった >>487 char型はかわらないのか。勉強になりました
489 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:56:23 ] 疑問文の内容をまんま受け入れることで「勉強」しないほうがいいのでは。
490 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:18:48 ] char型は常に1バイトだが、1バイトが常に8ビットとは限らないからな。
491 名前:デフォルトの名無しさん [2008/02/12(火) 08:16:21 ] >>490 ?
492 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:18:44 ] 生暖かい目で・・ってのはこういうことを言うんだろうな
493 名前:デフォルトの名無しさん [2008/02/12(火) 08:19:52 ] perlをコンパイルしてC言語から使えるDLLを作成できますか
494 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:21:42 ] 1Byte==sizeof(char)が9bitだったり7bitだったりすることもある
495 名前:デフォルトの名無しさん [2008/02/12(火) 08:22:04 ] アセンブラをソースに埋め込めますが、perlとかフォートランはないですか
496 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:26:22 ] >>494 それは既に論外 charこそ1バイトの基準だとでも思ってるのか? 卵が先か鶏が先かとかいうレベルじゃないぞ?
497 名前:デフォルトの名無しさん [2008/02/12(火) 08:29:26 ] >>493 ですが DLLでなくてもC++から使える方法ならいいです
498 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:53:16 ] >>496 客観的な事実として、 - sizeof(char) は常に1。 - もともと、1文字分のデータ量が「バイト」。 - 1バイトは必ずしも8ビットでない(正確に8ビットを表現したい場合は「オクテット」と言う)。 - 1バイトが6ビットや7ビット、9ビットのアーキテクチャが実在した。 - C99では少なくとも1バイトにつき8ビットあることが保証されている(CHAR_BITは8以上)。
499 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:58:38 ] 疑問を投げかけるだけ投げかけて 496は海の藻屑と消えました。
500 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:00:25 ] 組み合わせの計算させるようとしたんですが、出力が0になってしまいます。 ブレークポイントで止めて確認したところ、Anの値がAnrの値より小さくなって いるみたいなんですが何故でしょうか? もしかして表現できる桁数を越えてるから? そうだとしたらこれ以上大きな値が扱える型ないですか? unsigned long long int Kumiawase(int); int main(){ int n=36; int r=6; unsigned long long int Ar=Kumiawase(r),An=Kumiawase(n),Anr=Kumiawase(n-r); cout<<An/(Ar*Anr)<<endl; } unsigned long long int Kumiawase(int n){ unsigned long long int Ans=1; for(int i=1;i<=n;i++){ Ans*=i; } return Ans; }
501 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:11:10 ] >>500 36! は 371993326789901217467999448150835200000000 であって、 2^64 = 18446744073709551616 を大幅に越えている。 二項係数の値を求めたいのであれば、 パスカルの三角形を使って足し算だけで求めると良い。
502 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 10:43:24 ] >>501 ありがとうございます。扱える数字をオーバーしちゃってるんですね パスカルの定理調べてみたけどよく分からない… 高校の時の数学の教科書引っ張り出してきます
503 名前:デフォルトの名無しさん [2008/02/12(火) 12:50:57 ] >>497 COMの知識があれば使えるかも。
504 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:16:35 ] perlembed ? 俺には無理そうだが君なら!
505 名前:デフォルトの名無しさん [2008/02/12(火) 16:04:32 ] クラス内でchar *filename;というメンバ変数を持っているのですが、 コンストラクタ内で、 filename = "memo.txt"; とかやると、 warning: deprecated conversion from string constant to 'char*' と言われます。static_cast<char *>("memo.txt")としても同じでした。 このワーニングが出ないような書き方はないでしょうか?
506 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:09:15 ] >>505 char *filename → const char *filename
507 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:14:45 ] >>484 言われた通り実行すると、確かにコマンドプロンプトは表示されたままで止まりました。 原因は分かりませんが、しばらくはこれでやってみたいと思います。 もし、どなたか原因が分かる方がいれば教えてください。
508 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:26:28 ] >>507 原因ったって、そのプログラムが一瞬で終了するからだろう。 "test\n" を出力したあと、すぐに return してるじゃないか。 プログラムが終了したら窓は消える。
509 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:30:51 ] >>508 今まではreturn 0を入れると「終了するには何かキーを押してください」と言う表示がでてたんですが、 急にでなくなって困っています。 getchar();を入れた場合は止まりますが、キー入力待ちにはなりませんでした。 言っていることが聞かれている事とちがったらすいません。
510 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:42:18 ] >今まではreturn 0を入れると「終了するには何かキーを押してください」と言う表示がでてたんですが、 そりゃぁ、IDEから起動してたからだろ。
511 名前:デフォルトの名無しさん [2008/02/12(火) 17:57:15 ] #include <iostream> using namespace std; namespace HW { class test { public: test(); virtual ~test(); }; test::test() { cout << "FFF" << endl; } }; int main() { return 0; } これをコンパイルできません。 どうしてですか? /tmp/ccsyUc0A.o: In function `HW::test::test()': samp174.cpp:(.text+0x12d): undefined reference to `vtable for HW::test' /tmp/ccsyUc0A.o: In function `HW::test::test()': samp174.cpp:(.text+0x163): undefined reference to `vtable for HW::test' collect2: ld returned 1 exit status
512 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:15:43 ] >>511 デストラクタの宣言があるのに実体がないから。 ついでに言えば、コンストラクタの後にイリーガルなセミコロンがある。
513 名前:デフォルトの名無しさん [2008/02/12(火) 18:19:13 ] VS2005のC++でDXUT,STL使って開発してるのですが、 class A{ std::string m_name; public: void func(std::string str){ m_name = str; } } このコードがデバッグでは何の問題もなく動くのですが、 リリースにするとfuncを呼び出してm_nameに代入した時にthisポインタが0x000001を指し、 バッファオーバーランで落ちてしまいます。 何かご存知の方が居ればどうかご教授ください。
514 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:22:49 ] コンストラクタの後のセミコロンはネームスペースの終わりのとこだべ。 なくてもいいけど。 で、デストラクタはオブジェクトを作ってないから呼ばれないので、通所は無くてもいいが virtual の場合は別。
515 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:24:58 ] それだけじゃ判らんから、気になったことだけ。 ・なんでstd::stringを値渡ししているの? ・そのAの実体はどこにあるの?
516 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:32:17 ] >>511 namespaceの終わりにセミコロンは不要。 仮想関数には定義が必要。定義が無いと仮想関数テーブル (そのメッセージでいうvtable)のエントリーを作れない。 仮想でなければ呼ばれなければ必ずしも定義は必要ない。
517 名前:デフォルトの名無しさん [2008/02/12(火) 18:40:03 ] >>514 セミコロンは付け忘れました、 まだ継承は知らないのでなんとも。。 >>515 値渡しでうまく動いてたので特に意味なく使ってました、 ためしにfunc(string *str) に変えてみたら見事に動きました。。。 なぜこういう結果になるのかよくわかりません。。。 すばやい解答ありがとうございました。
518 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:42:07 ] >>517 どうでもいいが、>514は>512宛てだ。 ついでに言えば、ポインタ渡しじゃなくて参照渡しにするだろ。常考
519 名前:デフォルトの名無しさん [2008/02/12(火) 18:49:20 ] >>518 勘違いしました、、 なぜデバッグだと動いていたのか、と 値渡しだとだめなのかを知りたいのですが。。
520 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:54:58 ] >>519 >515
521 名前:デフォルトの名無しさん [2008/02/12(火) 19:06:43 ] >>520 というか良く見たらDebugモードになってまして、 Releaseだとやっぱりオーバーランしてましたorz だめだめだ。。。 class A{ string m_str; public: func(string str){ m_str=str; ← }; }; class X{ public: func(string str){ A hoge; hoge.func(str) }; }; DWORD WINAPI doloop(LPVOID lpParam){ x.func("test"); ←xはグローバル変数になってます }; 最初はこんな感じです。。
522 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:11:48 ] >>513 mainもないのが、問題なく動くのか……最近のC++は凄いな
523 名前:513 mailto:sage [2008/02/12(火) 19:13:15 ] >>520 Releaseでビルドプロパティの最適化を無効にしたらReleaseでも大丈夫でした。
524 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:14:50 ] >>521 問題が再現する最小のテストコードを作って 検証してから質問してくれ
525 名前:513 mailto:sage [2008/02/12(火) 19:15:45 ] >>522 mainからdoloopをスレッドで動かしてます。。 簡略化しすぎました。。 DWORD WINAPI doloop(LPVOID lpParam){ while(!bMainLoopExit) { EnterCriticalSection(&cs); x.func("test"); LeaveCriticalSection(&cs); } ExitThread(NULL); }
526 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:16:01 ] class A{ std::string m_name; public: void func(std::string str){ m_name = str; } } int main(int, char**) { A test; std::string str = "abc"; test.func(str); } // これでも落ちるか?
527 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:16:44 ] >>525 まて、複数のスレッドからグローバル変数にアクセスしてるのか?
528 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:18:51 ] このあと、衝撃の新事実が!
529 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:21:42 ] D3DPRESENT_PARAMETERS d3dpp; ZeroMemory(&d3dpp, sizeof(d3dpp)); D3DPRESENT_PARAMETERS d3dpp = {0}; 結果に違いはありますか?
530 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:23:24 ] STL使っておいてExitThreadってのも相当ヤバイ匂いがするけどな
531 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:27:49 ] そもそも〜Thread系の関数って使いどころあるのかね?
532 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:27:50 ] うむ、少なくともA::funcが問題って訳じゃなさそうだよね。 ってか、なんで値渡し……?
533 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:36:24 ] 構造体のメンバに、名前と番号両方からアクセスしたいとおもっています。 typedef struct particle{ double data[3][3]; typedef data[][0] position[]; typedef data[][1] verosity[]; typedef data[][2] angle[]; /* ようするに、data[][]に、position[]……という名前でもアクセスしたい */ /* data[][]のままで、loopを回して全部に値を流し込む、ということもしたいので、二重配列も残したい*/ }PARTICLE; 当然のようにエラーなのですが、こういうばあいどのように記述すればいいのでしょうか。
534 名前:513 mailto:sage [2008/02/12(火) 19:38:00 ] >>526 mainの中身を >>521 のX::funcにあたる場所に入れて実行してみましたがだめみたいです。 >>527 そうです。。 >>530 書かなくてもいいけど明示的に書いても良いって書いてあったので書いてあります。 クリティカルセクションで排他処理した気分になって 親が実体持ってるクラスを使ってます。。
535 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:44:25 ] 2chcity.myminicity.com/env 環境優先的に修復を。たぶんこの項目が一番減る。 NEJITUのように少し公園を先行させてもいいかもしれん。 ランク 国名 .... 街名 人口 (増減) 前日 --- 1 US1 .LUELand 314897 (. +528) 314369 --- 2 US2 .GoonTown ......187254 (. +490) 186764 --- 3 US3 .CreateMyCity Forum 105044 (. +804) 104240 --- 4 Slovenia1 Staregate 100076 (+1393) .98683 --- 5 Poland1 #debian.pl .... .90733 (. +618) .90115 --- 6 Germany1 isnichwahr.de .89782 (. +224) .89558 --- 7 Japan1 ...2ch_city .... .69147 (+1870) .67277 --- 8 Germany2 deluxebits .59250 (. +279) .58971 --- 9 France1 .FanaZ . .56613 (+1377) .55236 --- 10 . Germany3 upOTia . .54802 (. +130) .54672 20位までのランクは下記URLご参照ください mmc.from.tv/world.html
536 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:49:09 ] 宣伝するのはいいけど、糞重いページだと注意書きしろよ。
537 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:53:41 ] >>533 typedef union particle{ double data[3][3]; struct { double position[3]; double verosity[3]; double angle[3]; } named; }PARTICLE;
538 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:59:41 ] 例外を投げるときどういう型で投げるのが一般的なんでしょうか? エラーメッセージ? エラーコード? それともクラスで投げて型判別? どういう形がスマートでしょうか
539 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:03:05 ] CAtlException
540 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:20:13 ] >537 ありがとうございます // strtest.c #include <stdio.h> typedef union particle{ double data[3][3]; struct { double position[3]; double verosity[3]; double angle[3]; } named; }PARTICLE; int main(void){ PARTICLE pt; pt.data[0][0] = 10; printf("%lf\n",pt.named.position[0]); return 0; } >gcc strtest.c >./a.out 10.00000 所望の動作が得られました。
541 名前:513 mailto:sage [2008/02/12(火) 20:42:48 ] 答えてくださった方々ありがとうございました。
542 名前:460 mailto:sage [2008/02/12(火) 21:10:50 ] >>471 ! なるほど。そこの部分と、>>460 では省略した速度のvをintからfloatにしたらなんとなくうまくいきそうな感じになってきました。 ありがとうございます。
543 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:18:08 ] Cの基本的なこと(繰り返しや条件分岐、演算子、ポインタ、構造体)をやってからC++(visual C++)をやろうと思ってるんですが他にCで勉強してた方がいいことってありますか?
544 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:35:53 ] STLとATLで、 std::stack<CAutoPtr<Hoge>> hoges; hoges.push(CAutoPtr(new Hoge())); hoges.top()->func(); とすると、Hogeの実体がすでに破棄されているみたいでエラーが出ます。 std::stack<CAutoPtr<Hoge>> hoges; hoges.push(CAutoPtr(new Hoge())); hoge.top().Attach(new Hoge()); hoges.top()->func(); とすれば動きます。 どうして上のだと捨てられているですか?
545 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:52:39 ] すまぽい
546 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:54:00 ] CAutoPtrってSTLのコンテナに突っ込んで平気だったっけ。実装的に。
547 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:03:06 ] auto_ptrと一緒じゃないか? hoge.top().Attach(new Hoge()); で新たなアドレス突っ込んでるから動くだけで。
548 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:13:30 ] >>529 D3DPRESENT_PARAMETERSがPOD型なら無い
549 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:13:52 ] CAutoPtrが原因だね。
550 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:14:39 ] CAutoPtr専用のコンテナがあったはず
551 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:16:31 ] >>548 そいつたぶん釣りか荒らしかただのバカだよ…。
552 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:16:54 ] それかCSharedPtr
553 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:24:25 ] >>534 スレッド中でWindowsAPIのみ使うならCreateThread, ExitThreadでいいよ。 でもCランタイム使うなら_beginthread, _endthread使わないとダメだぜ。 あと、ExitThread等でスレッド終わらせると、スコープ抜けずにスレッドが終わる。 C++使うなら、ローカル変数のデストラクタ呼ばれなくなるからやめた方がいい。
554 名前:460 mailto:sage [2008/02/12(火) 22:48:42 ] すみません、やっぱり無理でした。 ( after - before )の部分をtimeに置き換える。 ・・・・ 正常に動作。 (ただし、事前に float time = 0.1; を宣言しておく。) ( after - before )の部分を数字の0.1に置き換える。 ・・・・ 正常に動作。 ( after - before )の部分をtimeに置き換える。 ・・・・ おかしい (ただし、事前に DWORD time = 0.1; を宣言しておく。) ここから考えるにDWORD型が悪さをしていると思うんですが、 ( after - before )の部分を( float )( after - before )に置き換える。 ・・・・ おかしい 何か特殊な変換をしなければいけないんでしょうか?
555 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:52:40 ] >DWORD time = 0.1; DWORDが何のtypedefか分かってる?
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になっているときじゃないか?