1 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 23:25:17 ] 1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14 Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 。
152 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:48:47 ] include の path 指定の書式について質問です。 stdafx.h #include <../creptopp/sha.h> と記述してこれをコンパイルすると、 -------------------------------------------------------------------------------- コンパイルしています... debug.cpp c:\test\Anonymous\stdafx.h(126) : fatal error C1083: include ファイルを開けません。'../../creptopp/sha.h': No such file or directory -------------------------------------------------------------------------------- ファイルの階層は下のようになっています。 test - creptopp/ - Anonymous/stdafx.h #include <sha.h> #include <../creptopp/sha.h> #include <../../creptopp/sha.h> と試してみたのですが、うまくいきませんでした orz どうぞよろしくお願い致します。m(__)m
153 名前:152(追記) mailto:sage [2007/05/20(日) 18:53:27 ] * Crypto++ Library 5.4 www.cryptopp.com/ cryptopp/sha.h cryptopp/sha.cpp 展開するとみたいになっていました。これを利用したいです。
154 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:54:15 ] #include <file-name> 使うならちゃんとpath通しとけよ
155 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:59:35 ] >>152 相対パスの元は、stdafx.h の場所ではなく コンパイルしている cpp の置かれた場所なんじゃね?
156 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:13:50 ] 解凍してそのまんまビルド ライブラリができたらヘッダとlibを適当な場所へ置いて使うだけ
157 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:29:58 ] C++で普通に関数にするのとクラスのメンバ関数にするのとではとちらが遅いのでしょ?
158 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:38:42 ] 一概には言えない。コンパイラの最適化で、実質的な差が出ない可能性も高い。 速度に関しては、個別に実測する以外は全てただの憶測。
159 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:33:48 ] オーバーヘットとかは無いの?
160 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:40:45 ] 非仮想関数ならthisを積む程度の差しかないだろうなあ まぁそんなこと考えるのは時間の無駄だから、コードの見易さ・美しさを考える方がいいよ
161 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:00:15 ] >オーバーヘットとかは無いの なんですか? その「オーバーヘット」って。
162 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:06:05 ] 夏塩蹴
163 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:54:16 ] まあ韓国の文化は冷麺のどんぐり麺?あれだけは評価できるね
164 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:07:28 ] VC++2005アカデミック日本語版で質問です 「warning C4996: 'scanf' が古い形式として宣言されました。」 scanf()を使うと2005から上記の警告が出ることはググって分かったのですが 当方の警告文は全て英語のままで上記の一文が出てきません ↓これだけ 'This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.' 日本語の警告文の説明を表示させたいのですがどこを設定すればいいのでしょうか? よろしくお願いします
165 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 07:41:21 ] C4996でググればいい。 というより、MSDNライブラリインストールしろ
166 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 07:58:06 ] 役に立たねぇ香具師だなぁ。警告を日本語にしたいって書いてんだろ。 C4996だけの問題じゃねぇんだよ。判ってねぇなら書くなよ。
167 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 08:11:29 ] すいませんした。俺が悪いんです。この通りです。許してください。読み違えただけなんです。怒らないでください。日本語にするやり方分かります。でも教えないです。ごめんなさい。
168 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 08:13:17 ] どんな警告・エラーもCxxxxの番号が振られているんだから、 C4996以外もその番号でググればいい。
169 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 09:58:06 ] わざわざ英語で出るように自分で設定変えたくせに 元に戻す方法は人に聞くのってどういう了見なんだ?
170 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 11:00:13 ] C4996でググったらみんな日本語で警告が出るのに 俺の環境じゃ英語しか出ねえよ て解釈した 英語にアレルギーがあるかしらんがこの機会に慣れたら?
171 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 11:32:05 ] VC++2005日本語版に付属のコンパイラとは別に英語版のコンパイラも入れたの?
172 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 11:33:59 ] 特に何もしてない
173 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 11:37:29 ] 何もしないで変わるかっつーの
174 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 13:00:30 ] MSのサポートに訊けばいい
175 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:58:17 ] MSマンセー
176 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:24:09 ] 誰かがVC++2005EEでも入れて混ざってんじゃないのかね
177 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:31:25 ] VS2005無印にSP1当てたら俺も英語だけになったぞ でもたいして問題じゃねえしMSDNライブラリあれば心配ねえよ
178 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:27:34 ] それは、英語版のSP1を入れてしまったのでは?
179 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:56:28 ] (´,_ゝ`)プッ ソンナオチダッタノカ
180 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:14:52 ] んなわけない
181 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:24:41 ] そうだな。 本人は「特に何もしてない」と言ってるんだからSP1だってあててるわけが無い
182 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:31:01 ] 痴呆か。
183 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:31:36 ] 俺もSP1当てたからかしらんが英語だよ その程度の日本語の説明なら要らんけど あと、うちはProfessionalだな
184 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 11:38:23 ] SP1入れてない。 MicrosoftUpdateで時々入れようとしてるんだけど毎回失敗する。
185 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:17:33 ] 俺も前失敗続いてたけど最近あらためてやったら成功したな 何が原因だったんだろ
186 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:43:17 ] ちょっとツンだっただけさ
187 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:18:31 ] SP1を当てたが別に英語になっていないぞ
188 名前:デフォルトの名無しさん [2007/05/24(木) 10:37:27 ] MFCで×ボタンを押してアプリケーションを終了するとき どこになんと言う名前でその処理が書かれているか教えてください 終了するときに処理を付け加えたいのでお願いします
189 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:54:40 ] WM_CLOSEのハンドラを追加
190 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:58:08 ] SC_CLOSE → WM_CLOSE → WM_DESTROY の順じゃないかな。それぞれのデフォルトハンドラで MFCだと、OnSysCommand() からクローズ投げて OnClose() が呼ばれ、そこでDestroyWindow()して OnDestroy()が呼ばれる。 もしかしたら違うかも。spy++やデバッガで確認してみて
191 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:00:22 ] 処理内容によっちゃExitInstanceでという選択肢も
192 名前:デフォルトの名無しさん [2007/05/24(木) 11:16:42 ] ありがとうございます処理内容はダイアログを表示させて パスワード入力とOKボタンを押し終了させるものです パスワードが違っているかキャンセルボタンを押した場合終了しません という処理をしようと思っています
193 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:47:00 ] クラックしてやんよ
194 名前:デフォルトの名無しさん [2007/05/24(木) 11:47:19 ] 連レスすいません ハンドラの追加でON_WM_CLOSE()を追加したんですが 対応する関数に反応ありませんでした
195 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:54:15 ] ×ボタンってダイアログの話なの? 何がどうなってるのかよくわからん、反応が無いとは何で判断?
196 名前:デフォルトの名無しさん [2007/05/24(木) 11:57:31 ] >>195 フォームビューによるダイアログです プロパティのメッセージから追加しました ブレークポイントをつけて通っているか判断しました
197 名前:デフォルトの名無しさん [2007/05/24(木) 11:58:45 ] www.kumei.ne.jp/c_lang/sdk/sdk_08.htm ↑簡単に言うとこういうことをMFCでやりたいのです
198 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 11:59:40 ] んーと、WM_CLOSEが来るのはその閉じるウィンドウにくるんだよ。 こないのはおかしいね。spy++で観察してみては。
199 名前:デフォルトの名無しさん [2007/05/24(木) 12:14:47 ] spy++でみてみるとWM_CLOSEはちゃんとありました
200 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:17:58 ] エスケープキーでダイアログが閉じないようにするので、そのへんやったことあるけど ダイアログベースじゃない場合は、どのクラスがメッセージを処理してるかだな
201 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:25:40 ] sdi/MDIでeditビューの場合は編集中にプログラム閉じようとすると 保存しますか? みたいな確認でたような気がするけどどうだったかな?
202 名前:デフォルトの名無しさん [2007/05/24(木) 12:27:28 ] 観察した結果は WM_DESTROY→WM_NCDESTROY→WM_CLOSE→WM_SYSCOMMAND でした
203 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:45:28 ] CMainFrame::OnCloseにちゃんと来るじゃん そのあと閉じていいか確認が出る
204 名前:デフォルトの名無しさん [2007/05/24(木) 13:13:44 ] 閉じていいか確認が出ないのですが CMainFrame::OnCloseをオーバーライドして使えばいいということですか? そこも通らないような・・・
205 名前:デフォルトの名無しさん [2007/05/24(木) 13:15:33 ] あとWM_DESTROYは反応ありましたがウィンドウが閉じたあとでした
206 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 13:24:39 ] sdi/MDIでeditビューが基本 最初からそういう風に動作するようになってる
207 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 13:37:57 ] >>205 まあいろいろ試してあちこちにハンドラ置きまくってみればいろいろわかることもある。
208 名前:デフォルトの名無しさん [2007/05/24(木) 13:40:25 ] 通りました!!CMainFrame::OnCloseでした!! ありがとうございます!
209 名前:デフォルトの名無しさん [2007/05/24(木) 16:34:45 ] 自作ダイアログ表示させようとしたら 自分でつけたコントロールのほかに TODO: コントロールをここに置く のテキストボックスと OKとキャンセルボタンがついてごっちゃになってました Jisakudlg dlg(this); dlg.DoModal(); なぜなのか教えてください
210 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 16:47:48 ] >>209 ダイアログの選択したパーツを整列するボタン押したんじゃないの?
211 名前:デフォルトの名無しさん [2007/05/24(木) 16:52:44 ] すいませんよくわからないですけどhtmlが入ってたみたいで 作り直したらいけました
212 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:34:23 ] 可変個引数の簡単な使い方(できれば、va_arg,va_end,va_startを使わない)を教えてください。 やりたいことは、下記のようにprintf系の関数に引数をそのまま渡したいのです。 void printfWithHeader(char *str, ...) { char buf[1000] = "Header:"; strcat(buf,str); printf(char *str, ...); } 環境は、Visual Studio 2003です。 皆様、お願いいたします。
213 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:53:23 ] VCというか普通のCの質問だろ そんなことをわざわざVCスレで質問する意味がわからん
214 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:57:12 ] できません 規約も護れないやつぁ帰れ
215 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:00:07 ] vprintf 系を使えよ・・・。
216 名前:デフォルトの名無しさん mailto:age [2007/05/25(金) 00:06:50 ] Visual Studio.net2003を使っているのですが、 UTF-8のソースを扱うにはどうすればいいのでしょうか。 コンパイルはできるのですが、日本語の表示ができません。
217 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:24:02 ] >>215 thx. vprintf系でできそうです。 >>213 > VCというか普通のCの質問だろ > そんなことをわざわざVCスレで質問する意味がわからん レスありがとうございます。 VCの拡張機能も含めて、回答を頂きたかったからです。 老婆心ながら、>>213 さんは行間をうまく読めないようですので、コミュニケーション能力を鍛えた方がよろしいかと思いました。
218 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:27:25 ] 質問等で、行間を読んでくれる事に期待するってのは、 一般社会ではコミュニケーション能力不足と判定されます。
219 名前:217 mailto:sage [2007/05/25(金) 00:29:21 ] 確かにその通りですね... (-_-;)
220 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:34:52 ] >>216 先にShift_Jisに変換してからコンパイル、が一番楽。 .NETベースのコンパイラは、文字列=Unicodeで保持、と決め打ちできるんだけどねえ。
221 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:51:21 ] Windows は UTF-16 で動いてるけど、 .NET を通す場合だとどうなんだろう。 よく知らん。
222 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:03:25 ] >217 人が多いスレで質問した方が適切な回答が得られやすい ここはVC限定でしかも初心者限定だから人が少ない
223 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 04:26:27 ] いやこんな質問初心者レベルだろ
224 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 07:09:43 ] >>216 VS2003にもVBとか色々あるが、ここで質問するからにはVC++2003でいいんだな?
225 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 09:14:21 ] 仕様書の行間なんぞ読まれたらと思うと・・・
226 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 11:24:20 ] >>217 は技術者としては失格だろ 技術者が設計図の行間とか読んだら、ものは出来上がらない 行間読むくらいなら、設計を詳細まで確認するのが正しい
227 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:26:21 ] VC2002を初めて使っているのですが、DllプロジェクトとMainのプロジェクトがあり DLL側のヘッダをincludeし、定義しているクラスをメインのexeで使いたいのですが 宣言はできるのですがビルドすると 未解決の外部シンボル と怒られます。 どうしたらよいのでしょうか。
228 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:54:27 ] 複数のプロジェクトをいっしょに扱うのが難しかったら DLLを先にビルドしてしまえば、DLLで配布されてるライブラリなんかと同様に扱える
229 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:29:18 ] 即レスありがとうございます。 実はcppUnitを使用したいと思いまして、現在のプロジェクトをそのままに 新規でテスト用のプロジェクトから該当のクラスにアクセスしたいと考えておりました。 おっしゃられるように入出力だけのテストなら、dll呼び出せばできそうです。 ありがとうございます。
230 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 07:54:30 ] フリーでVisualC++用のリファクタリングアドインある?
231 名前:230 mailto:sage [2007/05/27(日) 08:29:21 ] 自己解決 www.devexpress.com/Products/NET/IDETools/RefactorCPP/
232 名前:デフォルトの名無しさん [2007/05/28(月) 12:20:46 ] VisualC++6.0でCDialogについて質問です。 1つのプロジェクトに複数のダイアログ画面でがあり、 各画面で同じ処理を行うメンバ変数・関数が存在します。 これをまとめるため、CDialogから派生したCCustomDialogを作成し、 各画面の基底クラスに使用することを考えました。 通常のC++クラスであれば、上記のことが可能であるとわかりますが、 CDialogクラスでも可能でしょうか? (Windowsのイベントとかメッセージとかが、正常に処理されるのか心配しています。)
233 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 12:32:20 ] >>232 CDialogを派生して各ダイアログクラスを作るように、CCustomDialogを派生すればいい。 CCustomDialogの作成には幾つかMFC特有のおまじないが必要だから、どっかでサンプルを探すのがいいね。
234 名前:232 [2007/05/28(月) 19:36:24 ] >>233 レスありがとうございます。 参考にさせていただきます。
235 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 20:40:37 ] メッセージループとか使わないプログラムで、 キーボードの入力を待たないでキーボードの入力を取得するにはどうすればよいのでしょう? (押されてなかったらNULLかなんかで抜けてくれる関数等)
236 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 20:54:06 ] GetAsyncKeyState
237 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:26:24 ] >>236 これで出来ました。どうもありがとう。
238 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 13:17:56 ] VisualC++2005,XPで開発してます。 ダイアログボックスに画像とその説明のテキストのリストを載せたいのですが、 どのコントロールを使えば最適でしょうか?
239 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 13:19:49 ] さあ
240 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 13:43:28 ] >>238 ケースバイケース
241 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 14:26:19 ] ありがとうございます。 適当にやります。
242 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 15:29:04 ] 使わないのが最適
243 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:01:43 ] 初めまして、VisualC++2005のC++/CLI でフォームのすべてのイベントに反応させたいのですが、 そのようなイベントが見つかりません。 そのようなデリゲートはないのでしょうか?
244 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:33:18 ] メソッドだけどWndProcは?
245 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:58:28 ] HideCaret(static_cast<HWND>(this->textBox1->Handle.ToPointer())); で、キャレットを非表示にすることまでは分かったのですが、常に非表示にするにはすべてのテキストのイベントで実行させなければなりません。 もっと効率よくキャレットを非表示にする方法はないものでしょうか?
246 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 16:59:47 ] またお前か
247 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:11:25 ] ご無沙汰しております。
248 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:27:57 ] ないだろ どうせ普通はそんなこと誰もやらないし
249 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:29:32 ] サブクラス化してしまえ
250 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:31:36 ] テキストつかわなきゃいい
251 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:34:25 ] ウインドウズの電卓はテキストBOX使ってない
252 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 17:51:14 ] キャレットに用意されているマウスカーソルイメージを弄れば。