1 名前:Part28の1000 mailto:sage [2008/02/15(金) 01:45:56 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
2 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:00:12 ] Part28 ttp://pc11.2ch.net/test/read.cgi/tech/1196430042/ Part27 ttp://pc11.2ch.net/test/read.cgi/tech/1189394427/ Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/ Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/ Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/ Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/ Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/ Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/ Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/ Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/ Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/ Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/ Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/ Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/ Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/ Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/ Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/ Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
3 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:00:34 ] Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※ Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※ Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
4 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:01:00 ] 【関連スレ】 ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/l50 Win32API質問箱 Build57 pc11.2ch.net/test/read.cgi/tech/1189255282/l50 【C++】 DirectX初心者質問スレ Part14 【C】 pc11.2ch.net/test/read.cgi/tech/1182351826/l50 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/l50 C++相談室 part56 pc11.2ch.net/test/read.cgi/tech/1185377587/l50 C/C++の宿題を片付けます 95代目 pc11.2ch.net/test/read.cgi/tech/1187944110/l50 【初心者歓迎】C/C++室 Ver.42【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1188748806/l50 【関連サイト】 猫でもわかるプログラミング www.kumei.ne.jp/c_lang/ MSDN ライブラリ ※変更された msdn.microsoft.com/library/ja/ msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち) Platform SDK Update ※変更された www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Google www.google.co.jp/
5 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:01:26 ] 【このスレの前身 VisualC++相談室 過去スレ】 part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html テンプレ終わり。
6 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:26:38 ] Platform SDKの中で一番新しいのはこっち Microsoft Windows Server 2003 R2 Platform SDK Web Install www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en (ISO版などあり) これ以降、Platform SDK + .NET Framework SDKとして Windows SDKが公開されていて、その中で一番新しいのはこれ。 Windows SDK for Windows Server 2008 and .NET Framework 3.5 www.microsoft.com/downloads/details.aspx?FamilyID=f26b1aa4-741a-433a-9be5-fa919850bdbf&DisplayLang=en 少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、 日本語化されているのは専ら.NET Framework部分だけ。
7 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 03:41:49 ] VC6対応の、最後のPSDKはここ。 www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
8 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 06:04:51 ] >>1 乙 ブチキレるのは勝手だがし、新スレも立ってねーのに くだらねーKYレスでうめんなよな、998
9 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 07:59:05 ] 前スレ 997 です。 999 さんありがとうございました。
10 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:50:53 ] こんなスレに立ち寄るだけ無駄。
11 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:52:02 ] スレ削除すべき
12 名前:デフォルトの名無しさん [2008/02/15(金) 10:52:36 ] >>10-11 ってリアルでも人生こんなもんか
13 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:22:51 ] うるせーよ。 まともに俺の質問にも答えられない愚民どもが。
14 名前:デフォルトの名無しさん [2008/02/15(金) 14:19:22 ] 前スレ>>995 >ポインタのポインタではだめなの? freeとかdeleteを使うのがめんどくさいので CArrayあたりでできないかと思いこのスレに来ました。 CArrayだとプログラムが終わったら領域解放してくれると 聞いたことがあるけど間違いかな?
15 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:33:18 ] CArray はよく分かんないけど、 とりあえず vector ならこうできる。 typedef int Four[4]; std::vector<Four> data;
16 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:41:03 ] mallocだろうとnewだろうとCArrayだろうとと、 プロセスが死ねばOSが解放する。 それが適切であるかどうかは別にして。
17 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:45:28 ] デストラクタが領域を解放してくれる、だな。
18 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:52:34 ] >>17 ちゃんと読んでるか?
19 名前:デフォルトの名無しさん [2008/02/15(金) 16:21:54 ] push_back' : 1 番目の引数を 'int' から 'const int (&)[4]' に変換できません。 理由: 'int' から 'const int [4]' へは変換できません。 配列型への変換はありませんが、参照またはポインタから配列への変換があります。 int i,j; typedef int Four[4]; std::vector<Four> data; for(i=0; i<5; i++){ data.push_back(i); for(j=0; j<4; j++){ data[i][j]=j; } }
20 名前:デフォルトの名無しさん [2008/02/15(金) 16:23:41 ] >15 となりました。 根本的に使い方が間違っているのでしょうか? ちなみにCArrayで同じことをやろうとすると、 宣言自体でコンパイルエラーになりました。
21 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:35:37 ] >20 VCやる前にCやC++の基礎をしっかりやった方がいいと思う。 数学の授業で足し算や引き算みたいな数学以前の質問されたら迷惑だろ
22 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:40:35 ] CArrayなんか使ってるやついるの?
23 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:42:56 ] カレーってよむの?
24 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:00:49 ] 課題で「点数をキー入力してファイルに出力せよ」 →「次に作成したファイルから点数を入力し、合計と平均を出せ」 って言われたんだけど、「作成したファイルから点数を入力し」 の部分がよく分からない。 最初に入れた点数に意味は無いのかな? 入力したら上書きされるよね?
25 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:06:56 ] >>24 ここはガキの宿題に答えるスレじゃない。 入力とはキー入力の事だけをさすのではない ファイルからデータを読み込むことをファイル入力 データを書き込むことをファイル出力という その分は説明が不十分な気はするな。 キー入力、ファイル出力、ファイル入力までは書いてあるのに 合計と平均を何に出力するのかが書いていない。 まあおそらく画面出力のことだ。 「ファイルからデータを読み込んで、合計と平均を画面に出力せよ」 こういう事だろうよ。
26 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:20:33 ] >>25 分かりやすい解説ありがとうございます 自分の不勉強でした
27 名前:デフォルトの名無しさん [2008/02/15(金) 21:27:14 ] すいません。 vectorについてお礼を言うのを忘れていました。 2次の動的配列ならいろいろと検索すれば すぐに出てくるのですが、1次が固定で2次が動的 意外にないものですね。 スレ違いなのでここまでにさせていただきます。
28 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:14:36 ] std::vector< boost::array<int,4> >
29 名前:デフォルトの名無しさん [2008/02/16(土) 08:30:33 ] >28 ありがとうございます。 他のスレで構造体を使う方法と,boost::arrayを 使う方法を教えてもらいましたが、 boost::arrayは自分でコンパイルしないといけないみたいですね。
30 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 09:22:02 ] マルチうぜーよ。子ね
31 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 09:31:10 ] 番号、氏名、英語、数学、国語 こんなのを動的に追加するサンプルはよくあるだろ これをこうして 番号、氏名、成績[3] こうしたら 成績[3] 3つ固定のデータを動的に追加じゃないか
32 名前:デフォルトの名無しさん [2008/02/16(土) 11:10:46 ] すいません。vector 構造体も vector boost::arrayも 問題は両方解決しました。 マルチでスレを汚してそのまま去るのもいい加減なので お礼だけ言っておきます。
33 名前:デフォルトの名無しさん [2008/02/16(土) 13:30:18 ] ここでき聞いていいのか分かりませんが・・・。 MFCでAppWizardでSDIを選択しましたが、 デフォルトのCViewではなくCFormViewを 使いました。 そのFormの上にエディトボックスを貼り付け、 テストで試しに線を引いてみるとこにしました。
34 名前:デフォルトの名無しさん [2008/02/16(土) 13:40:30 ] OnInitialUpdate()で次のように描いています。 CDC* pDc; pDc=m_Edit1.GetDC(); //m_Edit1はエディトボックスをメンバ変数に CPen NewPen; NewPen.CreatePen(PS_SOLID, 1, RGB(0,0,0)); CPen* OldPen=pDc->SelectObject(&NewPen); pDc->MoveTo(0,0); pDc->LineTo(50,50); pDc->SelectObject(OldPen); NewPen.DeleteObject(); どこが間違っているかさっぱり分かりません。 それともエディトボックスに描画はできないのでしょうか? ホームページとかで調べるとできるようなことは書いているのですが。
35 名前:デフォルトの名無しさん [2008/02/16(土) 14:02:47 ] 別にボタンを作って同じコードを書いてボタンを クリックしたら描画するようにしたらできた。 不思議だ。なぜ?
36 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:04:01 ] Windowsでは見えない部分は描かれない。 OnInitialUpdate()がどんな時に呼ばれるか調べな。
37 名前:デフォルトの名無しさん [2008/02/16(土) 15:54:12 ] MFCでCFormViewのOnDraw関数でウィンドウのサイズが 変わったら再描画するようにしても一瞬だけ表示されて 消えてしまいます。 いいアドバイスがあったらお願いします。
38 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:57:53 ] 何でエディトボックス? 違うもので試してみようと思わないのか?
39 名前:デフォルトの名無しさん [2008/02/16(土) 17:19:41 ] グラフを書くのに文字も入れないといけないかと思い 実験していたところです。
40 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:25:22 ] エディトボックスじゃなくても字はかけるよ
41 名前:デフォルトの名無しさん [2008/02/16(土) 17:41:19 ] そうですか、それではピクチャーボックスで試してみます。 しかし、エディトボックスで再描画がおかしくなる理由が 分かりませんね。
42 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:33:12 ] >>41 CFormViewのOnDrawではCFormViewのクライアント領域に描いてるから。 その上に乗ってるエディットボックス自身の再描画で上書きされる。 エディットボックスに描きたければ、サブクラス化してエディットボックスの再描画を乗っ取れ。
43 名前:デフォルトの名無しさん [2008/02/16(土) 22:38:08 ] >42 ピクチャーボックスで再描画すると普通にできるのでとりあえずは そっちでやることにします。 別に質問します。 ずっと前に、エディトボックスの右クリックを実現しようとして、 サブクラス化したのですが、なぜかリソースエディタが使えませんでした。 仕方ないので、createしてコードで作ったのですが、そういう場合でも リソースエディタを使うことができますか?
44 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:39:14 ] >>36 こんな糞スレじゃなくてム板いけ。 書き込む前にスレに軽く目を通せばおかしいってわかるだろうが。 ★初心者にVisual C++を教えるスレ★ Part29 pc11.2ch.net/test/read.cgi/tech/1203007556/
45 名前:44 mailto:sage [2008/02/17(日) 02:42:01 ] 誤爆orz
46 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:47:34 ] バーかw
47 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 03:02:53 ] >>44 に感謝して質問させていただきます。 自分のパソコンで一時的に(実家にいるときとかとかに)コードとかを書いて、出来ればデバッグまでおわらせて 実行するのは大学のパソコンで行いたいんだけど、この場合はプロジェクトの種類は何を選べば良いでしょうか? 使ってるのはVisual C++ express editionなんですが。 大学のlinuxではバージョンは分からないですがg++でコンパイルです。 Makefileも欲しいんですが、そんなことって出来ますか?
48 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 03:03:05 ] 誤爆で説得力なくなる文だなw 専ブラはたまにこれやらかすな
49 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 03:06:06 ] >>47 Win32コンソールでいいかなあ Makefileは昔のVCは作れたけど、今のは無理かな まあMAKEだけ別管理にするのがよさげ
50 名前:デフォルトの名無しさん [2008/02/17(日) 03:16:17 ] >>47 Cygwin入れた方が手っ取り早いと思う。
51 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 03:26:55 ] >>49 なるほど。サンクス。 >Makefileは昔のVCは作れたけど 「全般」っていう種類のプロジェクトにメイクファイルプロジェクトっていうのがあるけどこれ? >>50 今wikipedia見たらvmwareみたいなやつか。 vistaで不安定って書いてあったからちょっと引け腰。
52 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 05:04:57 ] vmwareとはエミュレートするレベルが違う vistaで不安定ならvmwareにXPでも入れて動かせばいいじゃない
53 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 05:09:57 ] >>52 vmwareを入れるのならXPでなくターゲットのlinuxそのものをその上にインストールすればいいんじゃないかw >>51 エミュレーションソフトを入れて大学のlinuxと同じもので開発環境を構築してみては?
54 名前:47 mailto:sage [2008/02/17(日) 05:50:19 ] 再度すみません。>>47 です とりあえずmakefileプロジェクトでクラスを書いてメインで動作確認のコードを書いてみたんですが、 ビルドを押すと、 実行するビルド コマンド ラインがありません。 と出てしまってよく分からないんだけれどこれはどういう状態です google先生でも一応調べたんですが分からないっす。
55 名前:デフォルトの名無しさん [2008/02/17(日) 08:09:53 ] >>54 その無駄な努力はやめて、CDブート可能なLinux使うかCygwin入れるかしろ。
56 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 08:18:34 ] なんとしてもVCでやりたいんだなwww
57 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:02:26 ] >>54 makefile プロジェクトは実行するコマンドから全て自分で指定 しないといけないから、君にはまだ無理。 そもそも、Visual Studio には make コマンドなんかついてない ことすら知らないでしょ? nmake で代用することもできるけど、makefile の文法が gmake とは違う部分があるので、お勧めしない。 他の人が書いてるように、VMware とか入れて Linux 走らせるの がいいと思う。VMware が不安と言うなら VirtualPC でやれば MS の加護が受けられるのでちょっぴり安心かもしれない。 (まともに使ったことないからよく知らんけど。)
58 名前:デフォルトの名無しさん [2008/02/17(日) 09:39:08 ] だからもう、vmwareじゃなくてCDbootのLinuxでいいよ。キノピなら問題ないでしょ。
59 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:44:31 ] 別にcygwinでいいだろ
60 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:53:41 ] VC関係ない
61 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:13:50 ] itpro.nikkeibp.co.jp/article/NEWS/20070912/281813/ vmware + linux 無料だお
62 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:44:13 ] >57 Windowsの上に載ってるVirtualPCにはMSのサポートがあるけど、 そのVirtualPCの上に載ってるLinuxはどこがサポートするんだゐ?
63 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:14:38 ] サポートがいるなら、 Windows Vista / VirtualPC 2007 -> WindowsXP / VirtualServer 2005 R2 SP1 -> Red Hat Enterprise Linux ってやればいいんじゃないかな。
64 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:35:59 ] OSだけで何万費やすつもりなんだw
65 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:09:46 ] 環境を同じにするんじゃなけりゃ、ソースだけを共通にするほうが面倒がないよ。 まあ環境同じが楽だけど、行ったり来たりするほうが鍛えられる
66 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:15:04 ] という勘違いした人が一人いると無駄な作業が増える。
67 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:21:11 ] 同じソース使うことのどこが勘違いなんだか。 デバッガにVCが使えるメリットは大きい。
68 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:22:42 ] いまだにデバッガとか使うやついるの? printfで十分だろ
69 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:23:34 ] まあprintfで十分な規模ならprintfで十分
70 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:32:54 ] 学校で作るもんなんてそんな規模だろ
71 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 19:17:13 ] すみません、ちょっと質問です。 ダイアログにwebbrowserコントロールとボタンコントロールを貼り付けて ボタン押下でgoogleのページを表示させています。 その時にフォーカスがgoogle検索ページの エディットボックスにフォーカスするのですが、 このフォーカスを移動させたくない場合、どのようにすれば良いでしょうか。 Navigate2のメソッドを利用しており、このメソッドのフラグを調べてみましたがないようです。 また、webbrowser2側でSetFocus()をオーバーライドしようとするも webbrowser2側ではSeFfocus()を呼んでないようです。 webbrowser2にフォーカスを移動させない方法ってありますでしょうか?
72 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 19:22:21 ] javascriptをoffにすればいいんじゃない?
73 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 19:50:21 ] >>72 ありがとうございます! IEのオプションでjavascriptをオフにしたらフォーカスが移動しなくなりました。 今現在は自分だけのローカルPCだけに反映されると思いますが、 他のPCでも有効にするためには、Navigate2のheaderとかに組み込めばいいのかな… とりあえず、調べてみます。 ありがとうございました。
74 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 20:22:14 ] C++とC++/CLIは微妙に違うらしいのですが、素のC++の勉強がしたい場合「空のプロジェクト」というやつでプログラムを書けばいいのでしょうか?
75 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:04:10 ] >>74 CLR ではなく、Win32 で
76 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:21:11 ] >>75 最初それのコンソールアプリケーションというのを選べばいいのかなと思ったのですが、 mainの代わりに_tmainというのがあったので、違うのかなと思ってましたが、気にしなくていいんでしょうか・・・? あ、すみませんVisual C++ 2008 Express Editionをインストールしました
77 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:34:49 ] _tmain はあんまり気にしなくていい。 消して問題ない。
78 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:40:12 ] >>77 ありがとうございます、気にしないで進めることにします
79 名前:デフォルトの名無しさん [2008/02/18(月) 16:15:02 ] テンキーの+ボタンはVK_ADDフラグで取得出来るのですが、 ノートPC等でテンキーが付いてない場合、 +キーに相当するキーが押されたかを検出するには、 どのようししたら、良いでしょうか? + ;れ ↑ このキーのフラグは?
80 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:17:26 ] >>79 ノートPCでもFnキー併用とかNumLock併用でVK_ADDを発行すると思うけど。
81 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:17:53 ] 「;」か「シフトand;」ってわけじゃないの?
82 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:23:19 ] それだったらフルキーボードでも使えるわけで、だとしたらVK_ADDでは当然拾えないのだけれど。
83 名前:79 mailto:sage [2008/02/18(月) 16:25:14 ] シフトを押されてなくとも、「;」が押されたら+を押したと解釈してあげたいのです。 case ';'では引っかからず、case -69で引っかけられました。 (デバッグモードでメッセージ見ました) -69って一体・・・・? case ';'で掛からないのが納得行きません。
84 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:30:14 ] ちょっと待て、私のキーボードではShift+;は:なんだが。 つーか、Shift+=が+なんだが。
85 名前:79 mailto:sage [2008/02/18(月) 16:37:45 ] 英語キーボード配列 とかいろいろありそうですね・・・ 素直にShiftキー押してもらおうかな・・・
86 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:38:40 ] つまり、ややこしいことに日本語キーボードでは';'キーはVK_OEM_PLUS(0xbb = -69)であり、 英語キーボードでは';'キーはVK_OEM_1になると。英語キーボードで'+'の刻印がある'='キーはVK_OEM_PLUSなんだけどね。
87 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:48:31 ] これだな #define VK_OEM_PLUS 0xBB // '+' any country
88 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:07:33 ] c++にかぎったものじゃないんですが、 今ゲーム作っててマス移動の当たり判定なら変数でなんとかなるけど ドット単位であたり判定作ろうとしたらどういう風に管理すればいいんですか?
89 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:30:31 ] ドット単位で当たり判定もてばいいじゃない 1ドット1ビットで十分だが、面倒ならcharで取るとかな。
90 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:31:50 ] あと、マップに属性もたせるならそれ相応のビット数が必要
91 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:36:03 ] 円形なら半径だけもっとけばいいし、 正方形なら角度も保持しとけばいい。 あとは数学的に判定。 範囲が極端に小さければ マス移動と似た形で判定してもいいかもね。
92 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:53:18 ] ちょっと質問です cliext::hash_map<array<char> ^, int> って型を作りたいんですが、 比較演算子の定義の仕方がわかりません 一応、こんなのを比較演算子として予定してます int compare(array<char> ^left, array<char> ^right){ if (left->Length == right->Length){ for(int i = 0; i < left->Length; i++){ if (left[i] != right[i]) return left[i] < right[i] ? -1 : 1; } return 0; } return left->Length < right->Length ? -1 : 1; } どうすればいいんでしょう…
93 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:59:51 ] STLと同じで、比較関数は基本的にlhs < rhsなboolを返すもの。 msdn2.microsoft.com/en-us/library/bb385779.aspx あとは、hash_setのコンストラクタに比較関数へのデリゲートを取る奴があるから、そいつに渡す。 キーの型がoperator <が多重定義できるものなら、そっちを多重定義してもいけるはず。 ところで、hash_mapだけど、ハッシュ関数は気にしなくていいの? デフォルトでは、GetHashValueが使われるけど、これもコンストラクタで指定できる。 ほかにも、ハッシュを使わず、比較関数だけで順序付けるsetもあるよ。
94 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:23:07 ] >>93 Myhash_set c2 = cliext::greater<wchar_t>(); この部分ですよね bool comp(array<char>^, array<char^>) の関数を渡してもエラーになるので、 定義の仕方が違うのかなと思ってるのですが…どうにも解りません
95 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 23:43:01 ] 質問です。 「点数のデータが入った1次元配列のアドレスと人数を受け取り、 それらの最大点〜(略)を求めて返す関数を作成する」 という問題なのですが、@「〜を受け取り」、A「〜返す」 とはどういう意味なのですか? どうか教えていただけませんでしょうか
96 名前:デフォルトの名無しさん [2008/02/20(水) 23:51:09 ] 引き数を受け取り、戻り値を返す。
97 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:38:58 ] スケルトンを作るとするとこんな感じ。 int GetMaxPoint( const int * points, int num ) { // 最大値検索処理 return max; }
98 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:44:33 ] 「返す」とはreturn();の空白に数値などを入れることですか? この問題ってサブルーチンを作るようなものですか?
99 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:46:42 ] >>97 ありがとうございます。教科書で似たような処理を見つけたので 勉強します。
100 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 02:23:15 ] うざい。VCと関係ないし。