- 1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 433 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:23:40 ]
- >>430
ランダムアクセスイテレータはポインタ互換だと勘違いしてた そういう実装が多いだけか
- 434 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:25:07 ]
- >>433
使用可能な演算子はポインタと同じだが、 ポインタとの間で相互変換することはできない。
- 435 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:26:14 ]
- ただし、ポインタもランダムアクセスイテレータの一種だけどね。
- 436 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 01:01:40 ]
- >>424
プロキシクラスを返す。 class A { public: class Proxy { public: double operator[](int y); }; Proxy operator[](int x); };
- 437 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 01:06:20 ]
- ポインタ返せるならそれでいいと思う。
範囲チェックしたければ何かクラス返すことになると思うけど。
- 438 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:48:56 ]
- >>431
スレ違いだということ、サルでも分かるかな?
- 439 名前:411 mailto:sage [2008/04/06(日) 12:00:53 ]
- >412
回答ありがとうございます。 遅くなる原因がわかり、勉強になりました。 ありがとうございました。
- 440 名前:デフォルトの名無しさん [2008/04/06(日) 12:57:53 ]
- >>436-437
ありがとうございます。 以下のような実装でいいですか? (あまりスッキリしてないような、、) class test { public: test(int arg_size); struct Proxy { Proxy(int arg_size) : size(arg_size) { vec.assign(size, 0.0); } double &operator[](int y) { return vec[y]; } std::vector<double> vec; int size; }; Proxy &operator[](int x) { return proc_vec[x]; } std::vector<Proxy> proc_vec; int size; };
- 441 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 13:36:20 ]
- ていうかよっぽどの理由が無いなら()演算子のでいいじゃん
- 442 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 14:08:59 ]
- クラスの中身の先頭にusing namespace 〜;は書けないの?
- 443 名前:デフォルトの名無しさん [2008/04/06(日) 14:11:20 ]
- >>441
なるほど、たしかに全然すっきり書けますね。 メンテもしやすそうだし、こっちにします。 ありがとうございます。 class Matrix { public: Matrix(int arg_size) : size(arg_size) { vec.assign(size, std::vector<double>(size)); } std::vector< std::vector<double> > vec; int size; double &operator()(int x, int y) { return vec[x][y]; } };
- 444 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 14:18:34 ]
- >>443
440でもそうだったけど、size変数って不要じゃね?
- 445 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 15:13:16 ]
- >>443
更にで何だけど、要素数のパターンが少なくて、定数でしか使わないなら要素数テンプレートにしちゃうと ベクターも使わずに済むが・・・ 用途分からんからしらね
- 446 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 15:15:45 ]
- エラー 1 error LNK2001: 外部シンボル ""private: static int Forms::Application::nCmdShow" (?nCmdShow@Application@Forms@@0HA)" は未解決です。 main.obj
ってどういう意味のエラーですか?
- 447 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 15:21:22 ]
- >>446
宣言だけされてて関数が定義されていない。
- 448 名前:デフォルトの名無しさん [2008/04/06(日) 15:34:25 ]
- >>445
どうやるんですか? 要素は、二次元ベクトルなんですが、1000×1000要素くらいです。
- 449 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 15:36:35 ]
- >>446
プロジェクトのリンクするライブラリの設定で 必要な関数入ったLIBファイルを設定しわすれてるんじゃない
- 450 名前:デフォルトの名無しさん [2008/04/06(日) 15:37:08 ]
- >>444
その通りですね。 size変数は消します。
- 451 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 15:46:43 ]
- >>448
vectorの要素数って変わるの?
- 452 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:25:26 ]
- >>448
横レスだが、こういうことだと思う。 template<int size_x, int size_y> class Matrix { public: double& operator()(int x, int y) { return v_[x][y]; } private: double v_[size_x][size_y]; }; 1000×1000は大きいので、スタックには置けないけど。
- 453 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:43:03 ]
- よくみるLPクラス名って、そのクラスのポインタ型って事?
- 454 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:00:20 ]
- >>453 そういう名前付けの規則が昔はやってたんだよ。
- 455 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:02:13 ]
- ある天気予報サイトの三重県の天気情報の文字列だけを抽出して自分のホームページに乗せるプログラムを書きたいのですが、どういったことを勉強すれば良いのかご教示願えないでしょうか。宜しくお願いします。
- 456 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:13:54 ]
- >>455
・サイトにアクセスしてページを入手する ・ページを加工する ・自サイトに貼り付ける WebProg板へどうぞ。
- 457 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:32:48 ]
- エラー 1 error C2143: 構文エラー : ';' が 'Forms::Application::frm' の前にありません。 application.cpp 7
エラー 2 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません application.cpp 7 エラー 3 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません application.cpp 7 エラー 4 error C2371: 'frm' : 再定義されています。異なる基本型です。 application.cpp 7 >>449 >>447 解決しました。 が、今度はこんなエラーが。 定義はしたんですが、今度は定義した場所でエラー吐くようになりました。
- 458 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 17:52:08 ]
- >>457
>>54-
- 459 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 19:44:31 ]
- ありがとうございました。
名前空間をちゃんと指定してなかったのが原因でした。
- 460 名前:デフォルトの名無しさん [2008/04/07(月) 02:21:47 ]
- ヘッダに定義とか書けちゃうんだけど、
分けた方がええの? 分ける理由ってなんですか?
- 461 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:41:53 ]
- >>460
定義のほうをあらかじめコンパイルしてオブジェクトにしとける 小さいなら定義も一緒でいいだろ boostとかにもそういうのあるよ
- 462 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:46:51 ]
- >>460
プログラムサイズが増えたり重複オブジェクトができたりコンパイルが通らなかったりする
- 463 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:49:17 ]
- ヘッダに関数書くならstaticつけるかファンクタにするかテンプレートにしとけよ。
- 464 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:54:18 ]
- こういう質問をする人のレベルだと、一番掴みやすいのはコンパイル時間の問題かなぁ。
>>460 たとえば、計10万行くらいあるソースファイル群のすべてが 直接or間接的にhoge.hppというヘッダファイルをincludeしているとして、 hoge.hppが実装まで全部書いてあるモノだったとすると、 その実装部分をほんの1行変更しただけで、10万行のソースファイル群が すべて再コンパイルされることになる。 定義を別ファイルにしておけば、変更したときに再コンパイルするのはそのファイルだけで済む。
- 465 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 04:53:14 ]
- LinuxにおいてHDDの容量を取得したいのですがどの様にすればよいのでしょうか?
- 466 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 04:59:01 ]
- ただのグローバル変数とstaticをつけたグローバル変数って同違うんですか?
- 467 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:43:59 ]
- >>465
Linux板へどうぞ。ulimitでできるでしょ。 >>466 前者は文字通りGlobal。後者はファイルスコープなので違う翻訳単位からは見えない。 どちらにしても、可能な限り使わないに越したことはない。
- 468 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 07:14:53 ]
- >>464
>>463 >>462 >>461 ありがとう。 なんとなくわかった。
- 469 名前:デフォルトの名無しさん [2008/04/07(月) 07:45:15 ]
- >>463
ヘッダに関数書くときに、static付けたり、ファンクタにしたり、テンプレートにしたりすると、 どういう点でいいですか?全然考えてませんでした。
- 470 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 07:59:53 ]
- 関数が複数実体化されることを抑制できる。
- 471 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:23:30 ]
- ★ 今世紀最大の大祭り!聖火を巡る障害物リレー 日本イベント来たる! ★
【目的】 街中をオニが駆け巡ります。 オニは聖火を持って移動します。これを消すのが目的です。 ただし、今回は参加者が多いため難易度がはね上がりました。 今回のみ、オニは壁役に守られながら走ります。 壁役を突破して聖火を消せばゲームクリアとなります。 【ルール】 〜勝ち〜 オニが持っている聖火を消すとその時点でゲームクリアとなります。 〜負け〜 オニが若里公園まで逃げ切るとその時点でゲームオーバーとなります。 【日時 】 2008年4月26日(土)8:30スタート 【場所 】 長野県長野市 【ルート地図】 ttp://www.city.nagano.nagano.jp/upload/1/taiiku_lane.pdf 【詳細情報 】 ttp://www.joc.or.jp/beijing/torchrelay/index.html ------------------------------------------------------------- イギリスで行われたイベントの様子 ttp://jp.youtube.com/watch?v=1-KMVWRFLes フランスで行われたイベントの様子(1分30秒から) ttp://jp.youtube.com/watch?v=9mYEtkW2bsw 『2ch大規模OFF会場』 ttp://sports11.2ch.net/test/read.cgi/offmatrix/1207495088/ ttp://sports11.2ch.net/test/read.cgi/offmatrix/1207418064/ 『各国の競技結果』 ttp://ja.uncyclopedia.info/wiki/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%83%BB%E8%81%96%E7%81%AB%E3%83%AA%E3%83%AC%E3%83%BC
- 472 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 18:43:10 ]
- 四則演算ってさ、
char でも int でも double でもしてくれるが、 それってコンパイル時に適切にマシン語に変換してくれてるんですか? CPUが持ってる算術演算の機能を使えるように 置き換えてるのであってCPUが int なのか char なのか判断して 処理してるわけではないですよね?
- 473 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 18:51:06 ]
- >>472
そうだよ ないです
- 474 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 19:12:35 ]
- ただし格上げされて計算されるので種別はそんなに多くないです。
- 475 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 20:03:56 ]
- 格上げ、というか汎整数拡張あたりじゃないのかな
- 476 名前:デフォルトの名無しさん mailto:age [2008/04/07(月) 22:26:22 ]
- とりあえず宿題スレの方で提出が終わったので、
自分なりに作ろうと思っているのですが、いきなり行き詰ってしまいました; 整数の場合8桁、負数の場合9桁、エラー仕様など、問題が山積みですが、 どうかご教授お願いします。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6203.txt
- 477 名前:476 mailto:sage [2008/04/07(月) 22:28:20 ]
- #define buffersize 10ですね;
- 478 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:41:06 ]
- >>476
何がしたいんだ?宿題をといて自分なりに課題を拡張して勉強しようとしたのか? そのテキストファイルを見せられても、課題を丸投げされているようにしか見えないが。 とりあえずバッファオーバーフローしてたり、いろいろまずいぞ。
- 479 名前:デフォルトの名無しさん [2008/04/08(火) 10:55:17 ]
- ttp://www.nicovideo.jp/watch/sm2820444
この動画でやっている、画像ファイルをテキスト(AA)に変換は どのようにやっているのですか?
- 480 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 11:03:12 ]
- 動画にコード出てるじゃないか……
- 481 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 11:08:11 ]
- 画像の輪郭抽出→予めこのパターンにはこの文字を使うというデータを登録しておく→
画像の上から順にパターン解析と文字割り当てを行う。 って感じしか思い浮かばん
- 482 名前:デフォルトの名無しさん [2008/04/08(火) 11:08:35 ]
- >>480
初心者なもので・・・ 画像を読み込んで、テキストに変換してさらにそれの色を判別してつけるのは どの辺のコードを見たら良いのでしょうか?
- 483 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 11:19:20 ]
- 今動画見てきたぜ。想像してたのと違ったぜ。とりあえずBMPを配列にするとこからはじめたら?
BMPのフォーマット↓凄く簡単だからすぐできるはず。 ttp://www.kk.iij4u.or.jp/~kondo/bmp/ 後は色に合わせて<font color="色">■</font>をひたすら出力すればできるだろ。 中級入門くらいじゃね?動かしたいならJavaScriptの解説かじればおk
- 484 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:38:37 ]
- >>476
とりあえず、どのあたりで困ってるのかな。? mainに全部書くのではなく関数を作ってみよう。 引数をまとめれば、何をするべきかわかるんじゃないかな。
- 485 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:43:09 ]
- 昔、先輩が「コンストラクタではnew使うな」と言っていたのを思い出したのだけど、
これってどういう意図なのでしょう。 一般的なルールなのか、特定の状況で有効な話だったのか……。
- 486 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:47:03 ]
- >>485
コンストラクタ内で例外が発生すると、デストラクタは呼ばれない (仕様) → new でコケたらリーク! じゃね? コンストラクタ内の例外は漏れなくコンストラクタ内で処置すれば無問題。
- 487 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 13:04:20 ]
- >>479
お絵かきとかでもあるネタだけど、むしろどうやって動画にしてる のかの方が気になる。コーディング中ずっと録画してあとで編集 してるんだろうが…根性あるなw
- 488 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 13:17:33 ]
- コーディング中のキータイプを記録、編集
↓ 動画を取りながら記録したキータイプをマクロで動かす ↓ (`゚'Д`゚')
- 489 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 13:24:03 ]
- >>479
画像を読み込んで表示するところから始めたらいい 結構親切っぽいから彼のサイトの掲示板で聞いてみれば 講座の方はかなり酷いスパゲティコードだからお勧めしないw
- 490 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:01:19 ]
- この講座、どんな感じ?
ttp://weblearningplaza.jst.go.jp/cgi-bin/user/top.pl?next=lesson_list&type=simple&field_code=40&course_code=585
- 491 名前:デフォルトの名無しさん [2008/04/08(火) 18:21:58 ]
- cinからdoubleを1つまたは複数入力させます。入力されたのが1個なのか、複数なのか判定したいのですが、
以下のコードでよいですか?Macだとうごくのですが、windowsでもこれでいいのかわかりません。 double a; std::cin >> a; if (std::cin.peek() == '\n') { // 数字は一個だった } else { // 一個じゃなかった。 }
- 492 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:48:09 ]
- >>491
やってみりゃいいじゃない。
- 493 名前:デフォルトの名無しさん [2008/04/08(火) 19:06:50 ]
- >>492
ありがとうございます。今手元にwindowsがないのです。 また、自分のところのwindowsでやってみて動いても、ほかの人のwindowsでは どうなるかわからないし… その、規格的に入力の文字列末判定はこれでいいのかどうか、知り痛いです。
- 494 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:10:04 ]
- >>485
VC8で大量にメモリの確保しているとコンストラクタの中のnewで「メモリが不足しています。」とエラーがでる。 理由が分からずallocにしたら問題なかった。 というか今も原因が掴みきれない件。
- 495 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:20:20 ]
- 使う型がある程度限定できるテンプレートだったら
MyTemplate<型名>をtypedefしてしまえば良いような気がするけど これってありなんですかね?
- 496 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:38:16 ]
- まさにstringとwstring
- 497 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 20:08:28 ]
- >>493
つボラギノール
- 498 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:56:33 ]
- >>495
あり。
- 499 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:59:56 ]
- ありあり。
- 500 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:04:32 ]
- ありありありあり。
- 501 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:05:12 ]
- ありが十匹で
- 502 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:14:19 ]
- さよならだ
- 503 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:23:50 ]
- アリーヴェデルチ
- 504 名前:476 mailto:age [2008/04/08(火) 22:28:39 ]
- >>478様
ですよね、失礼しました; >>484様 エラー仕様を作ろうとしたのですが、 【整数の場合最大8桁までを有効とし、9桁以降を無視する。 負数の場合は、最大9桁までを有効とし、10桁目以降は無視する。】とあり、 【『−』のみ、または改行のみ入力されたらエラーメッセージを表示し、終了】 というのもあるので、 エラーとしては if(a[0]=='\n') if(a[1]=='-' && a[0]=='\n') みたいなのを使えばいいのかなぁ、程度で考えてるのですが、 どこに入れればいいのかなどイマイチ判らないのです;
- 505 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:34:19 ]
- ひょっとしてその数え方だと、「-1」は2桁なのか?
- 506 名前:476 mailto:age [2008/04/08(火) 22:53:28 ]
- >>505
私的にはそういう風に考えてます;
- 507 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:54:05 ]
- >>486
なるほどー例外ですか。それは思い浮かばなかった。 newしたときの初期化の処理が無駄だったりするのかとか当時考えたのを思い出した。
- 508 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:02:41 ]
- >>504
whileを抜けて >if(a[0]=='\n') if(a[1]=='-' && a[0]=='\n') の場合にreturnで終わればOK returnの前にprintfで適当にエラー出せば目的のものになるだろ。 >どこに入れればいいのかなどイマイチ判らないのです; どこに入れてダメだったんだ?
- 509 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:09:47 ]
- classのなかにnamespaceは作れますか?
- 510 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:19:28 ]
- muri
- 511 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:14:20 ]
- 質問なのですが、(VC++ 2008 EE を使用しています。)
以下のコード。 COORD coord; HANDLE hConsoleStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsoleStdOut, coord); は、<windows.h>をインクルードして使える、というのは判断できますが、 これはwindowsプログラミングなのでしょうか? WinMain()関数も無いし、DOSで表示されるのですが、 こういったコードの総称は何と呼ばれているのですか? 説明下手で申し訳ないです。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:17:27 ]
- WindowsのAPIに依存してるならどう考えてもWindowsプログラミングだと思うが…。
- 513 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:39:45 ]
- WindowSystem(≒GUI)プログラミングではないが、
(MS-)Windowsプログラミングだな。 ついでに言えば、コンソールウィンドウはDOSではない。
- 514 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 04:02:03 ]
- >>512
>>513 ありがとうございます。 この「COORD coord;」や「HANDLE」の意味が解らず、 じゃあ総称が判ればネットで検索できる、と思い至ったのですが、 ネットを見ても、C言語による(MS-)Windowsプログラミングが掲載されていないんですよね。 はぁ。。。
- 515 名前:デフォルトの名無しさん [2008/04/09(水) 05:19:59 ]
- >>514
日本語訳は無いけどMSDNに載ってるよ。
- 516 名前:Alexander The Great WAS ALBANIAN, the PROOF by Flamuri [2008/04/09(水) 06:53:32 ]
- www.youtube.com/watch?v=YHmV_1nXpX8
- 517 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:30:25 ]
- >>507
ちゃんと delete すれば問題ない。 例外を一旦コンストラクタ内でキャッチして delete するのもいいが、 スマートポインタに入れておけばあとはデストラクタが勝手に何とかしてくれる。 コンストラクタ内で例外が発生した場合に呼ばれないデストラクタは 構築中のオブジェクトのデストラクタだけだからね。 既に構築されたオブジェクトのデストラクタは全て呼ばれる。 例えば基底クラスのデストラクタとか 構築されたメンバ変数のデストラクタとかは全て呼ばれる。 new に関して気をつける必要があるのは事実だけど、 使っていけないってことはあり得ない。 まあ、初心者は使わない方が無難ってこと程度の話じゃないのかな。
- 518 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:01:29 ]
- いいえ、newを生で使っている人はちゃんとスキンをつけるようにしてください。
- 519 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:26:43 ]
- newに限らず例外を投げる可能性のある関数をコンストラクタ内で
呼び出すときはstack unwindを考えて対応する。
- 520 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:32:36 ]
- コンストラクタ内でnewが例外吐いたのをキャッチしたとして、
そのあと何をすれば良いのですか?
- 521 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:38:26 ]
- >>520
ケースバイケース スワップが頻発してるなどメモリ不足でシステムがヤバイ状態なら 終了してシステム全体のシステムの再考。 そのエラーを無視してでも少しでも長く生き続ける必要が条件なら ログにでも吐いて続行。
- 522 名前:デフォルトの名無しさん [2008/04/09(水) 11:47:43 ]
- VC++2008EE
ListBoxの1行削除ができたので、今度は削除前に メッセージボックスを出して見ようとしたのですが、 エラーがものすごい数出てしまいました。 System::Windows::Forms::DialogResult result; result = MessageBox::Show("削除しますか?","DELETE CHECK",MessageBoxButtons::YesNo); Debug::WriteLine(result); if(result != System::Windows::Forms::DialogResult::Yes)){ return; } if文全体を削除すると問題なく動作し、 また、出力ではYes,No確認できるので、 if文のSystem::Windows::Forms::DialogResult::Yesが、 問題なのかと思い、"Yes"とかにしてみたのですがやはりエラーが出てしまいます。 これはなぜエラーが出てしまうのでしょうか
- 523 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:56:41 ]
- >>519
それコンストラクタ関係ないだろ。
- 524 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:00:08 ]
- >>522
それ.netじゃん AfxMessageBoxかAPIのMessageBox使うべし
- 525 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:03:48 ]
- >>520
コンストラクタ内で catch なんて書かないでいいように RAII を徹底したほうがいい。
- 526 名前:デフォルトの名無しさん [2008/04/09(水) 12:14:47 ]
- >>524
ひと目でわかる Microsoft Visual C++ 2008 アプリケーション開発入門 という本を読みながらやっていて、 本書はC++/CLIで書いてある。とあるので、たぶん.netというやつだとおもいます。 この本の通りにやるとエラーが出てしまい、 エラーの内容見てもよく分からなくて、 いろいろ試してたのですが、結局原因が分からず聞いてみました。 この本で使っているMessageBoxにはなにか問題があったりするんでしょうか
- 527 名前:デフォルトの名無しさん [2008/04/09(水) 12:21:41 ]
- >>526
C++/CLIてのはC++でなんとか.net使いましょうよ・・・っていう仕様 .netだけならC#の方がいいし、速度的にC++ならC++/CLIしないでMFCかAPI使った方がいい
- 528 名前:522 [2008/04/09(水) 12:30:18 ]
- 申し訳ありません。もの凄く下らないミスでした。
if(result != System::Windows::Forms::DialogResult::Yes)){ かっこが一つ多かったです・・・スレ汚しすみませんでした。 >>527 うう、本まで買って気合い入れてしまったため再スタートは辛いです。 とりあえずこの道進んで、あとから徐々に方向転換してみます。 ありがとうございました。
- 529 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 12:33:15 ]
- >>528
C++/CLIなら↓の方で聞いた方がいいよ C++/CLI part3 pc11.2ch.net/test/read.cgi/tech/1206447234/
- 530 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:29:32 ]
- >>528
甘いな。俺は最初どの本買ったらいいかわかんなくて結局3冊目まで買ったぞ
- 531 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:36:05 ]
- MFCってまだ使われてるのか?
- 532 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:44:23 ]
- >>531
きみのPCのMFC関連のDLL等を全て削除して使用してみればきみの環境での依存度が分かる
- 533 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:46:40 ]
- >>532
滑ってるよ
|

|