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 辺り。
296 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 10:23:31 ] console.hなんてVC6にもないよ
297 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:10:33 ] やりたいことを書いたほうがいい。 やりたいことを探してるうちに、console.hの存在を知り それを探す/使うのが目的になっちゃってないか?
298 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:36:55 ] >>296 そうなんですか……。 >>297 あ、いえ、やりたいことはあるのですが、それを成すにはコンソールAPIがないと出来ないと思ったんです……。 コンソールで文字位置、色を変えたり。それで方法を探してた結果、検索で出てきたのがconsole.hなんです。
299 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:42:34 ] いやだから、コンソールAPIはwindows.hのincludeで使えるよ。 そのconsole.h とやらはどこで出てきたの? unix系なら sys/console.h とかあるし、CEにもそれらしいのあるけど その console.h のインクルードは、 <console.h> なのか? "console.h" ならそこのローカルなファイルだぞ。
300 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:53:33 ] すみません。 console.hはC言語のサイトからです。 ttp://www.plustarnet.com/aspil/Programming/CConsole.htm "console.h"です。 >>いやだから、コンソールAPIはwindows.hのincludeで使えるよ。 そうなんですか・・・。
301 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:55:01 ] ttp://www.plustarnet.com/aspil/Programming/console00.htmに >これらの API を簡単に使って頂く為に、CConsole クラス として、一つのクラスにまとめてみました。 って思いっきり書いてるじゃねーか。 このHPの作者が、処理しやすいようにクラス化したってことでしょ
302 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:43:29 ] >>301 いろいろすみません……ありがとうございます。 そして申し訳ないです。。 VC++2008に<windows.h>をインクルードするには何か追加が必要なんですか?
303 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:49:40 ] ほらきたきた
304 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:52:07 ] >VC++2008に<windows.h>をインクルードする VC++以前の問題で基本が分かってないから、入門書読んできなさい。
305 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:54:10 ] VCの入門書でもAPIの入門書でもなくC言語の入門書な。
306 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:55:11 ] これは初心者の俺から見ても痛い。 何が痛いかって、行動が
307 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 16:55:32 ] >>302 Cは初めてか?力抜けよ。 console.h使いたいなら、そのサイトのページまるまるコピーしてconsole.hというファイル名で セーブすりゃいいし、 >>301 のコードをconsole.h無しでやるなら #include <stdio.h> #include <windows.h> int main(int argc, char* argv[]) { COORD coord; HANDLE hConsoleStdOut = GetStdHandle(STD_OUTPUT_HANDLE); printf("012"); coord.X = 3; coord.Y = 1; SetConsoleCursorPosition(hConsoleStdOut, coord); printf("345"); return 0; } とかやればいい
308 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 17:06:53 ] すみません。ありがとうございます。 出直します。
309 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 17:32:16 ] VisualC++ 6.0でログ出力画面を作成しようとしています。 1.外から1行分ずつデータが常にとばされてくる 2.スタートボタンとストップボタンを用意し、スタート押下時からストップ押下時 までの間のみ、画面に出力する 4.出力中はTeratermでtail -fをしたように、新しいログがくればスクロールしていく (上限を超えたら古いものから削除) 5.画面上のログは範囲選択でき、クリップボードにコピペや 名前をつけて保存ボタンによるファイル出力を可能とする 以上の内容を作るにあたり、参考になるサイトはないでしょうか? VBをさわったことはあるんですが、VC++は初めてで、GUIやクラスの使い方から 結構つまづいています。
310 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 17:47:59 ] >>309 つまりC++でのウィンドウズプログラミング入門だな。「猫でも」とかどうぞ。 しかし今VC初めてなのにVC6ってのが不思議。
311 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 18:36:28 ] ハノイの塔で再起なんたらの項目なんですが、これ頭で最後までたどれる人いますか?板の数は3です これできないレベルだとこの先勉強する価値が脳にありますか?
312 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 18:46:12 ] 遊びでC++やるとしても4本までは図に描かなくても最初からできないと結局ポインタも使いこなせないだろうしやめた方がいいよ 自分の出来る事でがんばるんだ。あきらめよう
313 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 18:55:39 ] 学校じゃ教えてくれないすばらしいレスだ
314 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:09:21 ] ソフトからtxtやhtmlのファイルの開くのを vcでやるのはどういう関数を使えば良いですか?
315 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:24:10 ] 日本語でおk。たぶんsystemで事足りる。
316 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:27:55 ] >>312 たしかに思考の階層の深さってのは努力ではどうしようもない 能力で稼ぐ業界だからまず社会で戦えないだろうし、遊ぶならベーシックのほうが楽しい スレタイが初心者ってなってるからって勘違いして雑魚がたまに来るのが痛い
317 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:31:50 ] よく入門書のハノイの塔がうんたらとか言うけど そういうの載ってる本みたことないんだが
318 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:35:57 ] >>317 再帰関係かアルゴリズム関係でググればすぐ見つかる。
319 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:25:33 ] >309 Teratermのソース持ってるから見てみればいい
320 名前:デフォルトの名無しさん [2008/03/11(火) 21:29:04 ] >>311 東急ハンズなどで売っているから手に取って試してみたら?
321 名前:デフォルトの名無しさん [2008/03/11(火) 21:30:24 ] >>309 「Teratermでtail -f」じゃなくて、Unix系OSでtailコマンドを使っただけだろ。 Cygwinでも入れて使うか、tailのソースでも探してきたら?
322 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:39:05 ] TeratermはMFCなのか 今まで使ってて気がつかなかった
323 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 22:51:41 ] >>321 すれ違いだし、>>309 の方がまともなこと言ってるし。 要するに、巣に帰れと言うことだ。
324 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 05:39:15 ] 質問です VS.NET 2003 で Visual C++ を使用しているのですが、 みなさんは、普段完成品をリリースするときに、最適化のオプションはなにを選びますか?
325 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 06:26:00 ] 特に遅くないからまったく気にしたことない。
326 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:59:06 ] 普段意識しないが、最適化するとはまることがあるので、最適化しないようにする方が吉なのかも。
327 名前:デフォルトの名無しさん [2008/03/12(水) 08:04:52 ] アホかい。
328 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:14:57 ] VCで作られたバイナリは、少なくともどのくらい古いCPUで動くんですか?486? 逆に言うと、cmov*とか使わないんですか?
329 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 10:25:51 ] コンソールアプリでもdosで起動した16bitモ−ドじゃ動かない
330 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 11:51:30 ] >>328 コンパイラのオプションで選べた気がする
331 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:12:25 ] >>309 外から飛ばされてくる部分についてはどういう仕組み? それによってはVBで別アプリとして作ったものを利用するというのも出来そうだが
332 名前:デフォルトの名無しさん [2008/03/12(水) 15:51:27 ] VC++2008を使い始めたのですがEclipseでの[Ctrl]+[I]のようなインデント修正機能ってありますか?
333 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 16:50:57 ] Eclipse知らんけど Ctrl + K , Ctrl + F だろうか?
334 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:47:26 ] 独習C++の第5章の理解度チェック8の問題で思い切り恥じかいた。 解答が間違ってるじゃん。
335 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:49:43 ] 連投ですまんが、まあ俺が未熟だというのも問題なんだがな。 でも間違った解答を載せるなよ(怒)
336 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:04:15 ] 『独習C++ 第3版』正誤表 1刷(26件)
337 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:23:36 ] seshop.com/book/errata/Default.asp?mode=detail&pid=3236&printno=1&pageno=all 26件中13件は、15刷で修正
338 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:01:14 ] F5でデバッグするときに確認画面が出なくなってしまいました どうすれば今まで通り確認画面が出るようになりますか?
339 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:02:59 ] 確認画面ってなんだよ
340 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:22:20 ] 「ビルドしますか?」ってやつか? チェック入れると次から出なくなるからかな。 解決方法は分からないが。
341 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:36:01 ] >>340 それです
342 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:36:55 ] 再インストール
343 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:57:50 ] ツール > オプション > プロジェクトおよびソリューション > ビルド/実行
344 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:46:39 ] ちょっと今ネット環境がなくて調べられないんで携帯から質問です doubleの中身をchar型に変換するにはどうしたらいいですか? コンソールではprintfで%fを指定すれば勝手に小数点以下6位まで表示されますよね? wsprintfではできなくて困ってます wsprintfでchar型にし、ダイアログのスタティックテキストに表示したいんですが、 double型だけどうしても分かりません
345 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:49:51 ] wsprintfではできない
346 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:53:39 ] swprintf ではダメなのか? wsprintf じゃないとダメな理由があるのか?
347 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:54:19 ] そうだったんですか; 何を使えば小数点以下を表示出来るでしょうか?
348 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:55:57 ] StringCchPrintf
349 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:21:57 ] できました! 早いお返事ありがとうございます。
350 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:44:50 ] VisualC++ 6.0のファイルの展開で質問です。 ビルドして出来た実行ファイルを色んなPCで起動してみたところ エクスプローラーのアイコンの表示を縮小版にしていると 何故かfopenやcreatefileといったファイルを開く関数が失敗しました。 一覧や詳細の表示ならば問題なく動きました。 また、表示を縮小版にしていてもVisualC++ 6.0から実行した場合は 関数で失敗することはありませんでした。 表示を縮小版にしなければ問題ないのでしょうが、 原因がわからないのも気味が悪いので、分かる方いましたら教えてください。
351 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 17:05:13 ] エクスプローラがサムネ作るためのファイルアクセスと衝突してるんだろ
352 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:04:59 ] フリーウェアでメニューからヘルプを選択するとマニュアル.htmが 開くソフトがありますが、あれはどのような関数を使ってますか? IE.exeを起動するのは出来ますがIE.exe起動とマニュアル.htm の結び付け方が分かりません。
353 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:24:32 ] 拡張子
354 名前:352 mailto:sage [2008/03/13(木) 22:08:57 ] 自己解決すますた。
355 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:24:41 ] >>351 なるほど・・・ありがとうございます。 それではこの場合、どうすればファイルを開くことができるのでしょうか?
356 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:31:22 ] VisualC++ 6.0を使用したいんですが有料ですか? またどこで手に入りますか?
357 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:38:11 ] www.microsoft.com/japan/msdn/subscriptions/ すでに販売終了してるけどサブスクライバダウンロードで入手可能
358 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:00:56 ] ありがとうございます 早速ダウンロードさせてもらいます
359 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:06:39 ] 金持ちだな
360 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:47:54 ] www.microsoft.com/downloads/details.aspx?FamilyId=A8494EDB-2E89-4676-A16A-5C5477CB9713&displaylang=ja
361 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:06:51 ] >>355 衝突しないような共有モード指定するとか、オープンできるまでリトライするとか。
362 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:14:00 ] VisualC++ 2005を起動しようとすると、問題が発生しましたと出て強制終了してしまいます そこで新しく2008を入れて始めてみたのですが、途中から同じような症状になりました。どうしたらいいんでしょうか
363 名前:デフォルトの名無しさん [2008/03/14(金) 20:41:17 ] Expressて、ライセンス登録してもほんとにタダなんですか?? すいませんがどなたか教えてください
364 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:17:31 ] タダだよ馬鹿
365 名前:363です [2008/03/14(金) 22:00:17 ] >>364 どーもありがと。
366 名前:デフォルトの名無しさん [2008/03/14(金) 23:05:53 ] なんかうまくいかないので質問なのですが、 class test{ public: int i; test(){ test(1); } test(int i){ this->i = i; } } こういう感じでコンストラクタをオーバーロードし、コンストラクタからコンストラクタを呼ぶことはできないのでしょうか?
367 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:18:16 ] C++スレで聞け
368 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:21:30 ] つーかiはないだろ
369 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:40:35 ] >>366 普通は class test{ public: int i; test(){ init(1); } test(int i){ init(i) } init(int i){ this->i = i;} }; じゃねーか? できるとしてもこっちだろ でもできないような気がする class test{ public: int i; test() : test(1){} test(int i){ this->i = i;} };
370 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:44:31 ] コンストラクタというものがわかってらっしゃらない
371 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 07:30:38 ] >>366 をやりたいだけなら、ディフォルト引数でいいんじゃね? class test{ public: int i; test(int i = 0){ this->i = i; } } ディフォルト引数だと難しい (例えば、違う型の引数でオーバーロードしたいとか) なら、>>369 のように共通部分をくくりだしたメンバ関数を作ればいいだけ。
372 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:07:55 ] ディフォルトwwww
373 名前:デフォルトの名無しさん [2008/03/15(土) 09:24:06 ] 別に「デ」でも「ディ」でもいいんでない? ttp://cougar.eb.com/soundc11/d/defaul01.wav
374 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:39:06 ] ディスクトップパソコン
375 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:00:42 ] ハードデスクドライブ
376 名前:デフォルトの名無しさん [2008/03/15(土) 13:14:45 ] ディスク、デスクの場合とは違うっしょ。 ttp://cougar.eb.com/soundc11/d/desk0001.wav ttp://cougar.eb.com/soundc11/d/disk0001.wav
377 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:36:59 ] disk [di'sk] default [difo':lt] アクセント位置の違いなのかな
378 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:55:27 ] デホルト
379 名前:デフォルトの名無しさん [2008/03/15(土) 16:19:21 ] Visual Studio 2005 Standard と Visual C++ 2008 Express Edition を使っています。時々 EUC で書かれたファイルを受け取って開いて しまい、文字化けしてしまうのですが、ファイルを開くにあたって 想定する文字コードを指定して読み込ませることは可能でしょうか? UTF-8 と ShiftJIS に関してはどうやら判別してくれるようですし、 保存する際の文字コードにいたってはわざわざ EUC-JP で保存する こともできるようなのですが、読み込みの際には UTF-8 か ShiftJIS かどちらか程度しか判別してくれないようです。 せめて「俺はこのファイルを開くときに文字コード○○のつもりで 開いたぜ」ってことがステータスバーに表示されるといいのですが。 マルチバイト文字を含んだソースコードとして UTF-8, UTF-16LE, Shift-JIS, EUC-JP のものを受け取る可能性が あるので、できれば Visual Studio のエディタで開く 文字コードに関してどんな判定がされているのかを知りたいです。
380 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:23:07 ] 他のエディタか変換ツール使えばいいだけ
381 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:38:43 ] PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else { // 描画処理 DrawMain(); } } // Direct3D オブジェクトを解放 RELEASE(lpD3DDEV); RELEASE(lpD3D); // 終了する return 0; }
382 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:43:16 ] DestroyWindowでアプリを終了させたいのですが、ウインドウは消えるのですが、 プロセスが残ってCUPがんがん回ってるのですが、全部きれいに消すにはどうすればいいですか? LRESULT CALLBACK procMainaa(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch (msg) { case WM_CLOSE: MessageBox(NULL,"WM_CLOSE","test",MB_OK); DestroyWindow(hWnd); return 0; case WM_DESTROY: MessageBox(NULL,"WM_DESTROY","test",MB_OK); PostQuitMessage(0); return 0; } return DefWindowProc(hWnd,msg,wParam,lParam); }
383 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:51:41 ] さあ?
384 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:56:28 ] > 全部きれいに消すにはどうすればいいですか ブレークポイント等を活用しながらトレースし、 問題箇所を探っていこう。
385 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:04:38 ] TranslateMessageの前に、 if( msg.message == WM_QUIT ) break; でも入れたら?
386 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:46:59 ] DestroyWindowにこだわるのは何で? PostQuit・・・じゃダメなの?
387 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:19:54 ] DestroyWindowは呼んでも呼ばなくてもいい ただ自分で呼ばないときはDefWindowProcが代わりに呼ぶように作る だからどっちみちDestroyWindowは呼ばれる
388 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:23:27 ] Visual Studio 2008 Express Editions をインストールしたのですが ファイル > 新規作成 > プロジェクト > 「新しいプロジェクト」のダイアログで プロジェクト名を入力してもOKボタンが有効になりません。 OSは、XP Home SP2です。
389 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 07:57:00 ] VC2008です。 L""でない""の文字列定数をANSI(SJIS)でなく、UTF-8にしたいのですが、どうすればいいですか。 ソースコードをUTF-8で保存しても、SJISにされるようです。
390 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:32:57 ] WideCharToMulltiByte
391 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:45:39 ] 定数をUTF-8にしたいんですが… 実行時に変換するしか方法はないですか?
392 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:07:31 ] あとはファイルから読み込むとか、 "\xe4\xb8\xAD"のように地道に十六進拡張表記を書くくらいしかない。
393 名前:デフォルトの名無しさん [2008/03/16(日) 10:27:27 ] Visual C++ では wchar_t の文字列は UTF-16 なんですか?それとも UCS2 なんですか?
394 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:08:08 ] サロゲートペアを扱えたらUTF-16、そうでなければUCS-2。 それは冗談としても、最近のWindowsはUTF-16だから、 UTF-16として扱っておくのが吉。
395 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:47:44 ] Windowsの内部でUnicode使ってるからVCでUnicodeを使うようになっただけだから あくまでWindowsのためのUnicodeなんだと考えておいた方がいい。
396 名前:デフォルトの名無しさん [2008/03/16(日) 17:42:10 ] 結局マルチバイトじゃん・・・ いや、マルチワードじゃん・・・ まぁ合成文字とかもあるから仕方ないか。 いっそのこと Mule の内部表現にしてしまへ!