1 名前:デフォルトの名無しさん [2008/09/06(土) 22:45:12 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.58【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1218023777/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm ◆ソースのインデントについて 半角やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
465 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:30:31 ] 質問です。 他のプロセスのメモリを監視するプログラム作ろうとしています。 ReadProcessMemoryで値を取得することはできたのですが、 できればそのメモリアドレスの値が更新された時に取得を実行したいです。 この「メモリアドレスの値が更新された」というイベントを取得することは可能でしょうか?
466 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:54:21 ] >>451 コンストラクタならfalseー緒に渡せば、AddRefしないよ。 operator=は無理だな。
467 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 07:22:34 ] >>465 チートツールはほどほどにしとけよ
468 名前:448 mailto:sage [2008/09/22(月) 12:19:03 ] >>449 >>450 おっしゃる通り別の問題でした汗 ありがとうございましたm(_ _)m
469 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:42:19 ] 327です。 >329 ありがとうございます。 u_char *ucharAdr; ucharAdr = (u_char *)(gulngUpdataAddress & 0x0fffffff) + 0x0c800000; memcpy( ucharAdr, gushtUpdataArea, gulngUpdataDataCount * sizeof(short)); で、いけました。
470 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:45:08 ] CImageで(a,b)から(x,y)まで直線を引く方法はありませんか?? MoveTo、LineToを使用せずに描きたいです。
471 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:48:25 ] なんでMoveTo、LineToを使用したくないの?
472 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 13:13:47 ] >>470 おいらのCImageなら、メンバにLine(CPoint from, CPoint to)があるからそれを使えるよ。 でも、あんたの言っているCImageにそれがあるかどうかは知らんけどね。
473 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:04:58 ] const char str1[] = "str"; const char * str2 = "str"; "str"が配置されるのは、前者の場合、配列に格納するコードのところ 後者では文字列を置いておくところだと思うのですが、どういうときに、どちらを選べばいいのでしょうか 自分で考えたところでは、 ・上の場合は、コンパイル時に配列のサイズが決まるのでstrlenなどを使う必要がない ・下の場合は、自動変数の確保がポインタだけですむ(速い?) というちがいだと思うのですが、ほかにも違いがあるのでしょうか
474 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:18:10 ] >>473 後者は str2 = "another" のような代入が可能になってしまう。たぶん意図したものじゃないだろう。 static const char str3[] = "str"; ↑これなら挙げられた前者と同じメリットを得つつ、後者のメリットを上回る(自動変数の確保はゼロ)。
475 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:46:37 ] const char * const str2
476 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 20:16:33 ] >>474-475 ありがとうございます。 475さんのはstr2が同じものをさし続けるようにするのですね。 474さんのは静的変数の初期化に、コストを預けてるわけですね。
477 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 20:31:51 ] >>476 str3 の初期化にコストなんか要らないよ。どのケースでも必要になる文字列リテラルの 実体を直接割り付ければいいだけ。
478 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 22:16:49 ] >>473 #define str4 "str"
479 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:01:02 ] ここの場所でC2614のエラーが起きます。 クラスや構造体の初期化子リストに表示できるのは、メンバか基本クラスだけです。 規定クラスのメンバはどうやって初期化するですか? class A { public: A(int apple) protected: int m_banana; } class B : public B { B(int apple) : A(apple), m_banana(8) ←ここ { } }
480 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:04:32 ] 基底クラスのコンストラクタで行う。 class A { public: A(int apple) protected: A(int apple, int banana) : m_banana(banana) {} int m_banana; }; class B : public A { B(int apple) : A(apple, 8) { } };
481 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:05:16 ] できました。 ども
482 名前:デフォルトの名無しさん [2008/09/24(水) 07:57:18 ] VC++2005を利用しています 例外を勉強しているのですが、例外を発生させたときに、 catchで例外を処理しても、デバッガに例外があったことが出力されます catchで例外を処理するときは、 デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか
483 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 12:37:12 ] >>482 出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。
484 名前:482 [2008/09/24(水) 13:18:40 ] >>483 れす、ありがとうございます。後者です。 例外のつかいかたについては勉強していくところです。 もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。
485 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 14:19:16 ] >>482 Visual Studio のスレで聞いたほうがいいんじゃないかな?
486 名前:346 mailto:sage [2008/09/24(水) 14:42:55 ] >>347-353 超連休で返事が遅くなって申し訳ない。レスありがとう。 グローバルとstaticがいい感じっぽいので、両方試してみます。
487 名前:482 [2008/09/24(水) 15:56:25 ] >>485 ありがとうございます。移動します。
488 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:35:28 ] private List<ISchedule> zTasks = new List<ISchedule>(); これを同じことを NET 1.1でやりたいんですが どうすればいいんですか?
489 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:39:34 ] ArrayList
490 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 17:15:17 ] >>489 すいません>< 具体的なコードを教えてくれると助かります^^;
491 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 17:24:23 ] C#スレ行けよ
492 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 19:38:05 ] tchar.hをインクルードしてあるのですが、コンパイルすると、_tstofが未定義の関数なるのは何故でしょうか?
493 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 20:14:44 ] >>492 ちゃんと確かめて無いので間違ってるかもだけど、 _tstofは内部でatofや_wtofを使ってるので、それらを使う ために必要な<stdlib.h><math.h><wchar.h>をincludeする必要があったかも?
494 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:14:43 ] >>493 その三つをインクルードしてみましたけど駄目でした。 環境の問題でこういう事ってありますかね?
495 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:56:07 ] >>493 その理屈はおかしいよ
496 名前:マジレスチュウ ◆MaJi/01g.w mailto:sage [2008/09/25(木) 00:43:23 BE:279187542-2BP(50)] スペルはちゃんと合ってる?
497 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 06:09:59 ] BCC Developer使ってるんですけど、そのデバッガのTurbo Debugger がダウンロードできません どなたか入手方法教えてください
498 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 06:32:51 ] 自己解決しました すいませんでした
499 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 06:37:59 ] turbodebugger.exe
500 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 21:54:04 ] >>492 includeする順番を変えてみたらどうだろう? tcharではなかったかもしれないけど、以前にそんな感じの現象になったことがある。 そのときは、なにかのバージョン番号とかが順番によっては未定義になって 起きた現象だった。tchar.hの中をみて、どのように定義されているか確認すると いいかもね。
501 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:31:26 ] VC++2008は.NETの関数を使えるんですか?
502 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:49:00 ] 自己解決しました C++/CLI言語で出来ることがわかりました
503 名前:デフォルトの名無しさん [2008/09/26(金) 19:45:12 ] 動的な配列を作るにあたって、 引数付きコンストラクタを呼び出したいんですが、何か方法はありますか? Const なメンバ変数のために初期化リストを使いたいんですが・・・。 CHoge *hoge; hoge = new CHoge[2] //ここでHoge( X )のように引数を指定したい
504 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 20:18:13 ] ない
505 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 20:20:29 ] 0xかCLIでなら・・・・・・
506 名前:デフォルトの名無しさん mailto: Sage [2008/09/26(金) 21:32:03 ] プロパティページの中にスライダーコントロールをつけたいのですが setRangeをする場所がわかりません。 コンストラクタの中でやるとエラーで落ちてしまいます。 OnInitDialogでやっても何もダメでした。 何かよい方法は無いでしょうか? IMPLEMENT_DYNAMIC(CPropOption, CPropertyPage) CPropOption::CPropOption() : CPropertyPage(CPropOption::IDD) , m_xvEditPenthick(_T("")) , m_xvSliderPenthick(0) { // m_xcSliderPenthick.SetRange(0,10); //なぜかこれをつけると壊れる } VC 2003です
507 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 00:49:00 ] >>506 ありません
508 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 07:16:59 ] DLLをlibにするテクありませんか?
509 名前:デフォルトの名無しさん [2008/09/27(土) 07:55:01 ] すみません。質問なんですけど、charとwchar_tを比べたとき、charでは表せない文字やファイル名はありますか? VC++2008ではchar型は、SJISかEUCであってUNICODEは表せませんか?
510 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 07:59:35 ] char型に入るのは英数字とあといくらかなのでsjisとかeucだとか言う時点でなんかおかしい
511 名前:デフォルトの名無しさん [2008/09/27(土) 08:03:10 ] char配列でおねがいします
512 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 08:32:29 ] >>511 ただのバイト列だからなんでも入るよ
513 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 08:51:14 ] >>509 charは只の8bitの数値。それをどの文字コードで解釈するかってこと。 文字コード表を比較してください
514 名前:デフォルトの名無しさん [2008/09/27(土) 13:43:04 ] dクス
515 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:38:26 ] クラスが保持するstaticメンバ関数から 同一クラスのprivateメンバ変数へアクセスできない 書き方が悪いのか、それともそういうもんなの?
516 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:54:48 ] 実体を渡せよ thisとか
517 名前:デフォルトの名無しさん [2008/09/28(日) 03:10:16 ] >>515 class AAA { private: int m_a; public: static void func(int arg, AAA* pinst); }; void AAA::func( int arg, AAA* pinst) { pinst->m_a = arg; } こんな感じか
518 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 04:00:18 ] struct Hoge { Hoge() {} Hoge(const Hoge&) { Sleep(1000); } Hoge& operator=(const Hoge&) { Sleep(1000); return *this;} }; もしこのくらいコピーにコストがかかるクラスをSTLのコンテナに入れる場合、どうするのが良いですか。 特にvectorだとpush_backしていくうちに、サイズ増やすために全部コピーしたりしますよね。(listだとそういうことはないのでしょうか) ポインタ(std::vector<Hoge*>とかstd::vector<std::tr1::shared_ptr<Hoge> >)で管理するのが普通ですか。
519 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 05:00:37 ] >>518 listやset、mapはpush_back(insert)しても新たにコピーされることは無い ただまぁvectorと同じようには使えないので、boost::ptr_vectorあたりがお手軽か?
520 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 08:00:28 ] >>518 そのとおり、shared_ptrが無難
521 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 20:52:45 ] クラスAのメンバの配列を動的確保できるようにnewとdelete用の関数を作りました。 そうするとクラスAに全く関係のないクラスBのメンバの値がおかしくなりました。 調べていくと、 クラスBのコンストラクタで初期化完了 ↓ クラスAのコンストラクタでnewを使う ↓ クラスBのメンバの値がおかしくなる という流れでした。 これは何が原因なのでしょうか? ちなみにクラスAのnew用関数ではクラスBは全く使用していません。
522 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:01:43 ] クラスBのデストラクタにブレークポインタ打ってみそ
523 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:08:37 ] >>522 プログラム終了時のみにしか呼ばれてませんでした
524 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:09:04 ] new用関数て? operator new のオーバーロードをしてるわけじゃないよな
525 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:12:00 ] クラスBのインスタンスをウォッチしながらステップ実行してみそ
526 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:13:28 ] >>524 多次元配列なのでまとめてるんです void New() { int i;; for(i = 0; i < MAX; i++) p[i] = new int [SIZE]; } こんなのです
527 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:15:24 ] 全く関係ないところでスタックやヒープを壊してる悪寒
528 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:23:12 ] >>525 ググって見たんですけどやり方が今一分かりませんでした。 クラスA・Bどちらのインスタンスもグローバル変数でクラスBのほうが先に作られます。
529 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:23:20 ] >>526 pの領域は確保してるか?
530 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:33:09 ] >>529 pは int *p[SIZEX]; と宣言してます。
531 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:41:51 ] >>528 VisualStudioだったら、ウオッチにCLASS Bのインスタンスを表示させてステップ実行すると、値が変わったところで赤くなる。
532 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 21:51:48 ] >>531 クラスAのコンストラクタでnew用の関数が終わったときに値が変わりました。 原因がつかめないのでnewする前にクラスBの値を保存しておいて終わったらそれを代入することにしました。 皆さんありがとうございました。
533 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:12:57 ] 領域が重なってるんだヤバイ状態だ。 解決してから進まないと、あとで手が着けられない状態になるよ
534 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:13:29 ] >>532 MAX > SIZEX になってない?
535 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 22:22:12 ] >>534 思いっきりなってました・・・ 何で気づかなかったんだろう・・・ 直したら正常になりました。 ありがとうございました。
536 名前:デフォルトの名無しさん [2008/09/29(月) 01:08:29 ] Visual C++ 2003 MFC利用 でExcelファイルの読み書きをexcelのtypelibを使って行っているんですが、 CRangeオブジェクトのメンバ CString get_Address(VARIANT RowAbsolute, VARIANT ColumnAbsolute, long ReferenceStyle, VARIANT External, VARIANT RelativeTo) のReferenceStyleに設定すべき定数がどこにあるのかわからず困っています。 XlReferenceStyleをxlA1にすれば良いらしいのですが。 CRangeの"C8"などのアドレスを返す代替手段があればそちらでもかまわないです。 他の部分はほとんどなんとかなったんですがこれだけどうしようもないです。 よろしくお願いします。
537 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 10:10:33 ] >>508 インポートライブラリを作るってこと?できるよ。 環境によって違うけど。
538 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 12:01:34 ] fstreamでパスに日本語を含むファイルを開けないんですが、 std::localeとかimbue()つかってもダメで探してもlocaleのことしか見つかりません。 環境はVC2008使ってるけどやはりVCのバグ?fopenとか_openとか使えってことですかね?
539 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 12:05:07 ] ワイド文字版のコンストラクタを使えばいいよ
540 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 12:22:23 ] ストリーム関連のライブラリは設計段階でダメダメなので使わないほうがいい。 何しろ、一文字は7bitであるという前提が頭からこびりついて離れない西側諸国の連中が作ったんだから。
541 名前:538 mailto:sage [2008/09/29(月) 12:24:00 ] wfstreamでもダメだったんでやはりCライブラリですか
542 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 12:29:31 ] >>541 wfstreamはファイルの「中身」をワイド文字で読み書きしたいときに使うんだ ファイル名の問題とは関係ない つうか>>539 嫁 VC8以降は、fstreamにワイド文字版コンストラクタがあるんだよ
543 名前:541 mailto:sage [2008/09/29(月) 12:34:34 ] つまりfstreamのインスタンス作成のときにアドレスをワイド文字で渡せばおkということですか
544 名前:543 mailto:sage [2008/09/29(月) 12:54:55 ] できましたー >>542 ご指摘ありです。 >>539 理解できてなくてすません。 ところでVC8以降ってことはVC依存のコンストラクタ?他のビルダーとかだとマルチバイトで指定してもおk?
545 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 13:02:17 ] >>544 少なくとも非標準 他の環境でも利用したいのならboost使え
546 名前:544 mailto:sage [2008/09/29(月) 13:14:55 ] なるほど了解しました。
547 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 14:39:12 ] C++…というかC言語自体が初心者です。 C++の開発環境で、PCに『Visual Studio 2005』が入っていたのでそれを使おうとしたのですが、いまいち上手く使えません。 Visual Studio 2005 について解説しているサイトを見ながら設定し、それにのっているプログラムを丸写ししてみたのですが、ビルドが上手くいかなかったり、実行してもエラーが出たり出なかったりでよくわからない状態です。 これ以外で無料で使えて、それでいて使いやすい開発環境はありますか?
548 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 15:19:22 ] あきらめた方がいいよ
549 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 15:39:47 ] 開発環境のせいじゃないだろ。 一歩ずつ進めてみては
550 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:20:09 ] >>547 VS2005は簡単な部類だからあきらめないでね。
551 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:23:04 ] >>547 2008を入れて、この本を買いなさい。 www.amazon.co.jp/dp/4891005823 www.amazon.co.jp/dp/4891005769
552 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:25:45 ] なんか昔アカデミックのおまけについてたような本だなw
553 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 20:56:57 ] そういうツールの解説本は例外なく糞だ。 買うならこれだ。 www.amazon.co.jp/dp/0470843993
554 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:01:45 ] コンパイルができないってのは、独学者がぶつかる最初の壁だろ。 周囲に訊く人間がいなかったら、バカっぽくても画面写真が載りまくりのような本を見るしかない。
555 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:19:19 ] その辺は、まともな本ほど載ってないような話題だしな
556 名前:536 mailto:sage [2008/09/30(火) 00:40:35 ] 自己レスです。 enum XlReferenceStyle { xlA1 = 1, xlR1C1 = -4150 }; でした。全て解決しました。
557 名前:デフォルトの名無しさん [2008/09/30(火) 03:31:12 ] クラス名をつけたらコンストラクタ出来ますが、クラス名無しで変数だけ定義したら コンストラクタは出来ませんか?
558 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 03:34:39 ] 日本語でおk
559 名前:デフォルトの名無しさん [2008/09/30(火) 03:47:13 ] class cls{ int a; public: cls(){・・・} }; というクラスを class { int a; public: } hensuu; と書いた場合に、初期化が出来るか教えてください
560 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 04:12:46 ] それを構造体にしない理由は?
561 名前:デフォルトの名無しさん [2008/09/30(火) 07:25:39 ] >>560 後者にコンストラクタは定義できませんか? 構造体にしないのは初期化したいからですよ。
562 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 07:27:22 ] >>561 構造体にすれば初期化できるよw
563 名前:デフォルトの名無しさん [2008/09/30(火) 07:29:54 ] 初期化は、代入だけとは限らないですが出来ますか? 普通のプログラムも掛けますか
564 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 07:43:16 ] POD(Plain Old Data)の定義からも、 PODの初期化のルールからもはずれるから初期化されないと思う。 第一privateなint a;はどこからもさわれない、そこで警告なりなりラーなりになるような。
565 名前:デフォルトの名無しさん [2008/09/30(火) 07:47:18 ] クラス名を付ければ、初期化出来ますけど、クラス名無しだと初期化は無理って事ですか?