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 辺り。
471 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:12:14 ] >>457 普通にメインスレッドにゲーム用ループ作って そのループの中にメッセージループを処理する関数つくって入れてた ただ、メインスレッドでやると、メニューポップアップ時とかにメッセージループで 処理がとまるから ユーザー操作に関係ないリアルタイム系のゲームを作っている場合などは 気をつけないとはまるかも
472 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:13:21 ] >>457 つまり、peekmessage方式ね
473 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:19:15 ] >>464 別に>>457 はおかしいことは言ってないよ win32プログラムの場合、一般的にはメッセージをgetmessageによるループで処理させるけど ゲームみたいな場合にはメッセージ処理をループではなく局所的に処理させたい場合がある メッセージがない時抜けるためにpeekmessageでメッセージの有無確認を行うというのは良くやる手法
474 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:25:24 ] 間違えた peekmessage使うとメニューポップアップとかではとまらないかも VBのDoEventsはとまったような気がしたが
475 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:29:40 ] ゲーム関係はゲーム板のやつが詳しいだろ
476 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:34:38 ] ためしにpeekmessageを使ってメニューポップアップしてみたらやっぱり止まるね ということで、>>474 は無しでw
477 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:40:02 ] >>475 確かにw 俺もWindowsゲーム作ってたのって もう8年も前だからすっかり忘れてるわ
478 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:19:31 ] >>473 peekmessage に突っ込んでる奴なんていないから、 > 普通はbeginthreadexとかでループさせるもんですか? についての君の意見を聞かせてくれ。
479 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:28:42 ] 478みたいな 俺のほうが正しいと認めるまで論議をやめない みたいな奴がいるとウザイ
480 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:56:00 ] ヘッダってなんで自動で書いてくれないわけ? 全部読み込んでから使わないヘッダを削除して軽くすればいいじゃん
481 名前:473 mailto:sage [2008/03/21(金) 01:25:33 ] >>478 457 の言ってるのは、ゲームループの為に、新しいスレッドを作るか メインスレッドでループさせるのとどっちが良いかという意味でしょ で、beginthreadexについて俺は何を意見すればよいんだ?
482 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:39:13 ] >>480 何が言いたいのかよくわからんがヘッダに何を書くかは自由だぞ? 書くのが面倒ならヘッダなんて作らなきゃいいじゃないか。
483 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:50:33 ] まず標準関数がなんのヘッダ使ってるか調べるのがだるい 使わなくなったら他に使ってないか全コード調べて使ってなかったらゴミだからヘッダ消すのもだるすぎる
484 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 02:21:33 ] めんどくせぇならすべてをincludeしたヘッダでも作れば? include消すのならincludeをコメントアウトしてコンパイルエラーでなけりゃOKとかでいいんじゃね? ってか余分なヘッダーをincludeしたからといって実害は無いと思うぞ?
485 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 03:01:52 ] ほんとだ!なんでいっぱいインクルードしてもプログラムサイズ増えないんだ??
486 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 03:39:45 ] コンパイラは賢いから。 宣言と定義の違い。実態がないもの(宣言)はいくらあったところでプログラムサイズは変わらない。
487 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 07:30:02 ] >>481 >457 の言ってるのは、ゲームループの為に、新しいスレッドを作るか ゲームだとこういうやり方は普通なの? メインスレッドでメッセージループして、重い処理を別スレッドにするのが普通と思うんだけどな。 あと457がこういう意図なのかどうかは不明。自分は457からはそう読み取れない。 464のように解釈した。
488 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:04:35 ] >>485 増えるのはコンパイル時間だけ。 ヘッダの中で変数定義しているのでもない限りプログラムの大きさは増えない。
489 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:39:27 ] >>487 普通かどうかについてはわからない 少なくとも、俺が勤めていたゲーム会社のゲームライブラリはゲームループを メインスレッドに組み込んでいた(ADVだからそれでぜんぜん問題なかった ただ、>>471 で書いたようにメニューポップアップが発生するとイベントループ関数から 戻ってこないような状況もあるから、サブスレッドによるゲームループもありだと思うよ 俺の場合は逆で beginthreadexとpeekmessageを対比しているのでゲームループ処理を行う場所を メインスレッドかサブスレッドどっちすればよいか?と質問していると判断したんだけどね
490 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 12:25:44 ] ありがとうございます。全ヘッダを書いたヘッダを作ってそれを使うことにしました。
491 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 20:18:35 ] >>489 サブスレッドでメッセージループする場合、メインスレッドはサブスレッドからの通知を待つの? どうもこの方法の意義が分からないな。 繰り返しになるが、メインスレッドでメッセージループして、時間がかかる処理だけ別スレッドに すればいいしそれが普通と思う。 あとメニューポップアップの表示ではループは止まらんと思う。表示してすぐ次のメッセージを処理すると思う。 止まるのはモーダルダイアログ出す場合とか。 あと質問を489のような解釈をするには「普通はbeginthreadexで作った別スレッドででループさせるもんですか? それともメインスレッドででループさせますか?」じゃなきゃ変だと思う。
492 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 20:51:01 ] >止まるのはモーダルダイアログ出す場合とか。 ごめん。間違えた。これもメッセージは止まらんわ。処理時間の長い処理を入れなければ。
493 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:19:29 ] >>479 だったら、スルーしとけばいいのに。
494 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 23:05:37 ] >>493 見なければいいのに ヌルーすればいいのに 書き込まなければいいのに なんて言うだけ無駄です
495 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 00:46:04 ] 確かに無駄だったな。(w
496 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:05:43 ] VisualStadioをインストールしたのですが、なぜかコンパイルができません。 ちなみに作ったテキストを.cに変換してCソースファイルになるはずなのですが、それも行われません。 しかし、ビルドは行うことが出来ます。 コンパイルの操作を行おうとする時に「拡張子に関連したコンパイルツールがありません」となります。 これは私なりに考えてCソースファイルになってないからだと考えます。 しかし、その根本的な原因がわかりません。 原因は何でしょうか?(長文失礼)
497 名前:デフォルトの名無しさん [2008/03/22(土) 13:09:51 ] Vistaなんじゃねーの
498 名前:デフォルトの名無しさん [2008/03/22(土) 13:27:30 ] 単純に拡張子が表示されていないだけだと思われ。 Vista の Explorer でデフォルトがどういう表示なのかは知らん。
499 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:18:50 ] > VisualStadio 釣りか、ネタか、バカだろ。 相手にしないように。
500 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 17:22:43 ] >>499 初心者質問スレでその対応はないだろ
501 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 17:25:18 ] お前が親切に相手してやれ
502 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 17:31:43 ] >500 手本を示せ
503 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:22:16 ] >>491 勘違いしているようだが、メッセージループはメインスレッドでやるんだよ ゲームループと言ってるものは、ゲームを作る場合イベントドリブン方式を使わないで ゲームの進行に関わる処理をループで行う 単純な例では、キー入力->ステート変化->画面表示->キー入力->....こんなループを組む たとえば、キー入力をWM_KEYDOWNのメッセージハンドラーで受けないで GetKeyboardStateとかを使ったりして今のキーの押下状態を取得する どうしてそのようなことをするのかについてはゲーム作成などのHPでも見てもらいたい メニューポップアップに関しては、そのpeekmessageを使ったルーチンを作って実際に試してみてね 質問の仕方が変だというのに関しては確かにそう思う、だけどここは初心者スレだから多少の意訳はしてあげても良いと思った 質問者がすでに消えたようなのでもうこの問題はこれで収めようとおもうんだけど
504 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:24:12 ] とっくに終わってるのに1人で何やってんの?
505 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:43:05 ] >>503 誤解されると良くないからちゃんと書いておくが メッセージループは、beginthreadexによる別スレッドでゲームループを作る場合も、 peekmessageをつかったメインスレッド中にループを作る場合も、メインスレッドで行うと言う意味ね このことは当たり前の前提で話していたつもりなんだが、>>465 の書き込みを見ると すでに認識の違いがそこにあったようなので一応書いておいた
506 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:45:15 ] >>504 この板は、どの書き込みが>>491 なのか判らないので 終わっているかどうかは判らんから一応ね
507 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:45:20 ] また始まったか
508 名前:491 mailto:sage [2008/03/22(土) 20:20:46 ] なるほど。ゲームループというのを知らなかったから話が噛み合わなかったわけだ。申し訳ない。 なんでGetMessageじゃなくてPeekMessageなんだろうと思ってたけど、そういうことね。 >505 指摘どおり、認識違いしていた。 ただポップアップメニューについてはやはり分からない。試したけど止まらなかった。 「メニューポップアップ」とはTrackPopupMenuを使ったポップアップメニューのことと思ってたんだけど、それが違う気がしてきた。 説明して欲しい。 ゲームループは以下とほぼ同じ。ウィンドウプロシージャのWM_RBUTTONUPでTrackPopupMenuをコールした。 www.geocities.co.jp/SiliconValley-Oakland/9582/GamePrg/prg03.htm #質問者は去ったが、もうちょっと続けさせて欲しい。
509 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:10:00 ] どっかよそでやってほしい ゲーム製作板あたりで
510 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:57:12 ] お聞きしたいのですが ボタンがもっとも美しく見える大きさについて 横幅はフォントの高さに対して x分のy 高さはフォントの高さに対して z分のw と言う推奨比率みたいなのを その昔MS発行の何かの書籍で見た記憶があるのですが どなたかご存じであり 且つ 教えていただけませんでしょうか…
511 名前:422 mailto:sage [2008/03/23(日) 09:02:43 ] >>423 ありがとうございます。 初回のビルドでは警告がでて当然なんですね。 実際にも簡易リビルドの警告のあと、自動的に通常ビルドされていました。 通常のビルドでのエラーに絞ってなお調べてみようと思いますm(_ _)m あれからすぐ書き込み規制に入ってしまい返事が遅くなりすみません。
512 名前:デフォルトの名無しさん [2008/03/23(日) 16:58:57 ] 何度でも蘇るよ!
513 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:12:56 ] Win32APIとランタイムライブラリを使ったプログラムで、_beginthreadを使ったら _beginthreadexを使えって怒られたんだけど、_beginthreadの問題点を調べても なかなかわからない。 スレッドの終了コードや生成時の状態を指定する必要が無ければ_beginthreadでも いいような気がするんだけど。 どんな問題点があるんですか?おすえてくらさい。
514 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:46:22 ] スレッド起こしっぱなしで放置でいい用途なら_beginthreadで問題ないんじゃ。 WaitForSingleObjectとかするなら_beginthreadexを使うべし。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vclib/html/_crt__beginthread.2c_._beginthreadex.asp >_beginthread よりも _beginthreadex を使用した方が安全です。_beginthread が作成したスレッドの終了が早すぎると、 >_beginthread の呼び出し元に返されるハンドルが無効となる可能性や、別のスレッドを指してしまう可能性があります。 >しかし、_beginthreadex から返されるハンドルは _beginthreadex の呼び出し元で閉じられる必要があるため、 >_beginthreadex がエラーを返さなかった場合にはハンドルが有効であることが保証されます。
515 名前:513 mailto:sage [2008/03/24(月) 22:05:57 ] 514>> アリガd やっぱハンドル使ったりしないなら_beginthreadで問題ないよね? でも上司に反抗するのも建設的じゃないんで_beginthreadexに書き換えますたw
516 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:40:12 ] WindowsXPでVisual C++ 2008 Express Editionを三日くらい使っているのですが、 プログラムを実行したときの表示が一瞬で消えてしまいます ずっと表示させるにはどうしたらいいですか?
517 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:53:00 ] ヤフオク見るとVC++.netのスタンダードしかないんだけどプロフェッショナル って品薄なのですか?スタンダードとプロフェの価格が知りたいです。
518 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 01:12:14 ] >>516 [デバッグ]-[デバッグなしで開始]
519 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 01:33:58 ] >>516 main関数の最後に↓を追加 getchar();
520 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 14:32:27 ] >>517 スタンダード2〜3万 プロフェショナル8〜9万ぐらい
521 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:58:40 ] >>516 コマンドラインで実行
522 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:42:33 ] >>517 おとなしくExpress使ってろよ
523 名前:sage [2008/03/26(水) 19:21:13 ] ListBoxで長いテキストの右は隠れんだけど、マウスを乗せて ポップアップ窓に全文表示ってどうすんの? 調べんだけどわからん
524 名前:523 mailto:sage [2008/03/26(水) 19:24:34 ] 久し振りで来たら名前とE-mail間違え
525 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:07:35 ] >>523 tooltip
526 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:32:13 ] >>525 ありがとうございます tooltipにテキストを取得ってどうするんでしょうか? コントロールやなんかのヘルプは表示できるんですが
527 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:19:36 ] int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ HANDLE hMutex = CreateMutex(NULL,FALSE,szInstance); if(::GetLastError() == ERROR_ALREADY_EXISTS){ CloseHandle(hMutex); return FALSE; } DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgWndProc); return 0; } この記述でリリースビルドをしても構成エラーとかで起動できないPCがあるんですが、原因が分かりません; 分かるかた是非お願いいたします。
528 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:35:34 ] そのエラーは、大方Visual C++のランタイムをインストールしていないのだろう。 2005, 2005 SP1, 2008とかそれぞれ分かれているから、 自分のプログラムをビルドしたVC++のバージョンと同じやつを選んでインストールしろ。
529 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:46:44 ] やっぱりそれ関係のエラーだったのか・・ 相手にそーいった環境が一切なくても動くようにするにはどうすればいいですか?
530 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:56:48 ] 原因が分かりません ↓ やっぱりそれ関係のエラーだったのか・・
531 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:28:56 ] 1度コード書いてコンパイルに成功する EXEができてそれが起動する コードを修正したけどコンパイル失敗 なのに1番目にコンパイルしたEXEが起動する これ、コンパイル失敗したらEXE起動しないようにするにはどうすれば?
532 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:34:26 ] コンパイルではEXE起動しないよ
533 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:39:50 ] 原因を特定できなくて「分からない」と言ったんで、 これかな?あれかな?って思ったのはあったんだよね;
534 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:27:08 ] >529 /MDじゃなくて、/MTでコンパイルすれば。
535 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:51:28 ] >>534 すいません。どーゆー意味でしょう・・?
536 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:45:33 ] ヘルプ嫁
537 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:57:29 ] Microsoft Visual C++ 2008 Express Editionを使用しています。 c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template というフォルダにawxファイルを入れたいんですが 見つかりません。 Expressには無いんでしょうか??
538 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:00:26 ] >>531 前に作ったEXEを起動するか?って聞いてくるはずなんだけど。 「今後この問い合わせをしない」にチェック入れたのか。 ツール-オプションのプロジェクトおよびソリューションのビルド/実行に それ関連の設定あるみたいだから見てみては。 起動する/しない/確認の3通り設定できる
539 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:24:47 ] で、MTとMDの違いが分かりませんw
540 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:45:04 ] ヘルプ嫁
541 名前:デフォルトの名無しさん [2008/03/27(木) 13:50:12 ] ヘルプヘルプってそんくらい教えてやれよ どーせお前わかんねーんだろ?w ぷっ
542 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:58:51 ] エラーになったとき、エラーの原因が表示されるコンパイラはありますか?
543 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 23:43:27 ] >>539 [プロジェクト]-[プロパティ]-[構成プロパティ]-[C/C++]-[コマンドライン]にあるよ
544 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 00:49:43 ] >>543 あ。ありがとー リンクの静的と動的が具体的にどう違うのかいまいち理解しきってないなぁ・・
545 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 02:16:49 ] CRTを自分のEXE/DLLに内蔵するか、外のDLLに頼るかの違い。
546 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:38:52 ] お。ありがとうございます
547 名前:デフォルトの名無しさん [2008/03/28(金) 20:11:35 ] 自分でクラス作るところでつまづく Cも関数作るところでつまづいた
548 名前:デフォルトの名無しさん [2008/03/28(金) 21:45:30 ] VC++2005で、バイナリデータをchar型の配列にいれてから、DATファイルに保存していましたが、 SQLSERVER2005にそのバイナリデータを直接保存できるようにしたいです。 varchar型のFIELDにそのデータを保存しようとすると、認識できないデータ(文字?) があるらしく、データがそこで切れてしまいます。FIELDのデータ型をいろいろ変えたり してみましたがやはり駄目でした(binary型などはエラーになってしまいます)。 何かヒントを頂ければ幸いです。スレ違いだったらすみません。
549 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 21:48:24 ] 初心者スレでSQLSERVER2005はないだろ
550 名前:デフォルトの名無しさん [2008/03/28(金) 21:51:27 ] ↑すいません。SQLSERVERにデータを保存する際には、DATファイルに保存 する時と同様に、char型配列にバイナリデータをmemcpyしてから、データを転送しています。 よろしくお願いします。
551 名前:デフォルトの名無しさん [2008/03/28(金) 21:52:27 ] >>549 すいません。。。
552 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 21:52:27 ] Microsoft Visual C++ 2008 Express Editionを使ってます プログラムを書き込む際に普通のテキスト感覚で行うと 前の文字まで消えてしまいます (挿入ができない) x+600 +の後に4500といれたい しかしx+4500となって600が消えてしまいます そういった設定はどこで行えばよいのでしょうか?
553 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:02:11 ] まさか Insert 押せば終わりってオチじゃないよな…
554 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:08:47 ] >>553 その通りでした すみません・・
555 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:11:51 ] >>548 > 認識できないデータ(文字?) > があるらしく、データがそこで切れてしまいます。 文字列型なんだから、\0がきた時点で切れるだろ。 > binary型などはエラーになってしまいます エラーの原因を調べろよ。
556 名前:デフォルトの名無しさん [2008/03/28(金) 22:25:24 ] >>555 ありがとうございます。 >文字列型なんだから、\0がきた時点で切れるだろ。 全く同じデータをDATファイルに保存して、そのファイルをテキストエディタで開き、 そのデータをSQLSERVERのFIELDにコピペすると、やはりデータが切れてしまいます。 データを変換する必要があるんですかね?
557 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:30:44 ] #include <stdio.h> void main() { int count; for (count = 0; count < 5; count++) { printf( "countは今%dです\n", count ); } printf("aaa"); if(count==4){printf("正解です%dです\n",count);} else{printf("残念");} getch(); return; } VC++2008でデバックしましたがなぜかこれが"残念"のほうが出力されます。 countは4だと思うんですが
558 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:33:21 ] >557 Cスレで聞けば?
559 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:36:41 ] すいませんCスレいきます
560 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 09:00:44 ] countの値は5
561 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:14:51 ] >>556 特定のデータまたは文字長で切れるのか調べること またFIELDのデータ型のルールに違反してないかを調べること を勧めます。
562 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:25:27 ] >>557 forの機能を調べなおして来い
563 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:39:00 ] >562 お前もCスレ行け
564 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:59:18 ] count=0 今0です表示 countが1になる。 条件式参照(for・・・にもどる。count<5なのでループ継続。 ・・・ 今4です表示。 countが5になる。 条件式参照。count<5なのでループ終了。
565 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 22:02:13 ] スレ違いに気づけ
566 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 09:40:54 ] 全く関係ないんじゃないからいいんじゃない? 英語の文法の授業で先生がSpeakingの話はじめたら 「先生、今文法の授業です」っていうタイプかしら。
567 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 09:56:39 ] 落ちこぼれのために小学校の復習からやられたら迷惑
568 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:52:00 ] バカは気づかない。 スレ違いでも、分かるやつが答えを1レスすればそこで終わることを。 結局何も分からないやつがアホみたいに、スレ違い、ヘルプ嫁を書き続けるからリソースも無駄遣いすることになる。 教えたくないなら完全にシカトしろ。どーせ答えられねーんだからよ
569 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 14:08:47 ] ばかじゃん
570 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 14:11:54 ] >559でとっくに終わってるのに
571 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 14:23:53 ] このスレの回答者はゴミレベルが幅を利かせてるからな 557なんかは560のレスが出れば終わるだろ。 運悪くゴミに糞回答された質問者は可哀相だよ。
572 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 14:30:15 ] というゴミレスを必死に繰返してる君はいったい
573 名前:デフォルトの名無しさん [2008/03/30(日) 15:32:35 ] 質問です。 C++の勉強をしようと思って、express editionをダウンロードしたんですが。 .NetFrameworkというのも一緒にダウンロードされました。 これって、何ですか?
574 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 15:39:00 ] express editionはC++の勉強に使えないこともないけど 本来は.NetFramework用の開発ツールですよ
575 名前:デフォルトの名無しさん [2008/03/30(日) 15:41:44 ] すみません。 .NetFrameworkって、何なんですか?
576 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 15:42:48 ] ググレかす
577 名前:デフォルトの名無しさん [2008/03/30(日) 15:44:15 ] ★初心者にVisual C++を教えるスレ★
578 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 15:45:58 ] 人類にまだ正義は残っている。 www.nicovideo.jp/watch/sm930541
579 名前:デフォルトの名無しさん [2008/03/30(日) 15:47:51 ] wikipediaで調べたら・・・ Microsoft .NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発、実行環境。 WindowsアプリケーションだけでなくXML WebサービスやWebアプリケーションなどWebベースのアプリケーションなどを取り入れた環境。一般に.NETという場合.NET全体の環境を指す。 また.NET Frameworkの基盤となっている仕様はEcmaインターナショナル、ISO、JISにて標準化されており、マイクロソフト以外のベンダーが独自に実装することもできる。 実際にいくつのオープンソースによる実装プロジェクトがある。なお、CLIのマイクロソフトの実装をCLRと呼ぶ。.NET FrameworkはCLRにその他ライブラリ群を加えたものと言える。 初心者の俺には意味がわかりません。
580 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 15:52:27 ] なんでもすぐ聞くな 調べろ 徹底的に調べろ
581 名前:デフォルトの名無しさん [2008/03/30(日) 16:22:59 ] 調べてみました。 簡単に言うと、同じプログラムで.NetFrameworkが入ってるコンピュータなら 書き直さなくても、同じように動作するってことですか?
582 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:40:49 ] スクリプト言語みたいなもんです C++の勉強がしたいならコンソールアプリで十分
583 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:48:02 ] 質問失礼します。 現在ゲームを製作中なのですが、複数のcppファイルで同一のヘッダを 参照すると変数の多重定義によるエラーが出てしまいます。 環境はVC2005EEで、error LNK2005でググって色々試したりしてみましたが何ともいかず、 コンソールアプリケーションですごく簡単なプログラムをコーディングして試してみてもうまくいきません。 申し訳ないのですが少しでも解決方法の手立てをお教え頂けると幸いです・・・。
584 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:52:55 ] インクルードガード
585 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:53:23 ] #ifndef __HOGE_H__ #define __HOGE_H__ //・・・ #endif
586 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:54:34 ] #ifdef __MAIN__ #define EXTERN #else #define EXTERN extern #endif EXTERN int g_hoge;
587 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 16:58:10 ] ここに pc11.2ch.net/test/read.cgi/gamedev/1193935988/491
588 名前:デフォルトの名無しさん [2008/03/30(日) 17:23:06 ] >>561 ありがとうございました。もうちょっと調べてみます。
589 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:26:23 ] 皆さんご返答ありがとうございます。 >>584-585 ,>>587 この用法は既知だったので実装し、尚且つヘッダ内でstatic変数を作成し定義することも、 関数の定義を行うこともせずにビルドしてたのですが、それでもエラーが起こるため 甚だ疑問でした。環境から考えればコンパイラが古いということはないはずなのですが・・・。 >>586 そちらの用法を実装したところ、うまくいきました。ありがとうございます。 出来れば>>585 さんの記述の仕方でうまくやりたかったのですが、 何ともいかないのでこちらのやり方で何とかしてみようと思います。 しかし本当に何で#ifndefのほうはうまくいかないのか・・・。
590 名前:デフォルトの名無しさん [2008/03/30(日) 17:27:32 ] 目的が違うから。
591 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 17:34:50 ] int main () { try { LogFile logFile( "c:\\log.txt" ) ; } catch(...) { return -1 ; } logFile.Write( "hoge" ) ; } みたいに書きたいんだけど、tryのスコープにlogFileが捕らわれてしまうんだけどどうすれば解決できるでしょうか
592 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:28:59 ] >>591 LogFile のインスタンスが try 内でのみ有効なのでは? ポインタを使うのが常套手段かと LogFile *LogFile; try { LogFile = new LogFile( "c:\\log.txt" ); } catch (..) { return -1; } LogFile->Write( "hoge" ); .... delete LogFile; LogFile が ref class なら * を ^ に、 new を gcnew で置き換えればOK
593 名前:591 mailto:sage [2008/03/30(日) 18:36:17 ] mainのreturnが複数の箇所になって、ポインタをいちいち開放するのがスタイリッシュじゃないと感じて、 オブジェクト使って自動的にデストラクトさせようという狙いだったんです。
594 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:47:29 ] >>593 goto 文でエラー処理すれば? err_1: delete a; err_2: delete b; return -1; みたいな感じで 著名なツールでも内部でgoto文使って コードを簡潔化してる事あるよ あとはdefine使うぐらいしか無いんじゃ オヤジプログラマーに「goto文使ったら減給」とか 言われかねないけどw
595 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:50:14 ] どうでもいいけどスレ違い
596 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:52:28 ] >>591 これでダメな理由は? try { LogFile logFile( "c:\\log.txt" ); logFile.Write("hoge"); } catch(...) { return -1 ; }
597 名前:591 mailto:sage [2008/03/30(日) 18:55:55 ] >>596 かなり簡潔に書いたけど、main内でいろいろ処理しながら、いろいろとログ書き込んでるからきびしいかと
598 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 18:56:05 ] そんなことよりスレ違いを気にしたほうがいい
599 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:01:13 ] このスレの対象ってC++なの?CLRなの?MFCなの?
600 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:06:35 ] ttp://pc11.2ch.net/test/read.cgi/tech/1068359871/896 ↑ 誰かご存知の方いませんか?(´;ω;`)ブワッ センセー、C++もCLIもMS VC範囲内だと思います。
601 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:14:57 ] >599 標準C/C++のスレでないことは確か
602 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:18:16 ] C++をVCに含めるならVCはWinに含まれるのか?
603 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 19:33:55 ] >>596 コンストラクタで例外が発生する場合もあるしね。 すれ違いなんて気にするな。 その方が愛が育まれる。
604 名前:デフォルトの名無しさん [2008/03/31(月) 11:37:10 ] case WM_CREATE: hdcMem=CreateCompatibleDC(GetDC(hWnd)); break; case WM_PAINT: hDC=BeginPaint(hWnd,&ps); BitBlt(hDC,0,0,500,415,hdcMem,0,0,SRCCOPY); EndPaint(hWnd,&ps); return 0; こんな感じで、ウィンドウのDCと互換性のあるDC(hdcMem)を作り WM_PAINTでhdcMemからウィンドウのDCへコピー(画面に表示させる)・・・ というようにしたいのですが 例えばTextOutなどでhdcMemに書き込んでも 画面に何も表示されません。 教えて欲しいです。 あと、このプログラムはゲームのソースの一部ですが、この考え方って 一般的なものでしょうか?
605 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:59:58 ] 更新ないと描画されないからか?
606 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:55:22 ] ビットマップ選択してないとか?
607 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:03:39 ] どのcaseでtextoutしてんだ? PAINT以外でInvalidateRectしてないとか? てかbitmap選択してないからじゃないの?
608 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:34:06 ] 最初は1x1ドットのビットマップが選択されてるから、 1ドットだけコピーされてるよ。 同じ色になってなけりゃ虫眼鏡で見ればわかるよ。
609 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:22:11 ] リストビューにファイルを表示させようと思い、SHGetFileInfoでファイル情報を取得したところ、ファイルの種類とアイコンが思惑と異なりました。 対象はあるアプリケーションのファイルなんですが ファイル種類 → システムフォルダ アイコン → マイコンピュータのアイコン となってしまいます。 第一引数のLPCITEMIDLISTはフルパスを元に自作したものを使っています。 IEnumIDListのNext()関数で取得したLPCITEMIDLISTを用いた場合は正常に取得できる所を見ると、やはりLPCITEMIDLISTの自作部分に問題があると思った方がいいのでしょうか?
610 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 12:28:54 ] そこまでわかってたらデバッガか何かで確認するだけ
611 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 13:45:21 ] この辺が参考になるかも。 [ファイルを列挙する] www.kab-studio.biz/Programing/Codian/ShellExtension/05.html
612 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 15:05:06 ] >610 同じハズの2処理で結果が違うのですから、やはり何か異なるはずですよね。 もう少し追跡に集中してみます。 >611 こちらのサイトは参考資料として活用させてもらっています。 もう一度最初から読み直すなどして、もう少し理解を深めようと思います。 お二方ともありがとうございました。
613 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 15:40:57 ] >>611 www.kab-studio.biz/Programing/Codian/ShellExtension/06.html ↑に「IEnumIDList::Next()で取得するアイテムIDリストは、たったひとつのアイテムID、つまりそのファイルかフォルダだけしか持っていません。」 て書いてある。 これが原因じゃない?
614 名前:611 mailto:sage [2008/04/01(火) 15:42:10 ] >>612 と書きたかった。
615 名前:611 mailto:sage [2008/04/01(火) 15:57:38 ] 多分フルパスで取得したLPITEMIDLISTを先頭にたどっていけばいいんじゃないかな。 そうすれば最後はNext()で取得したLPITEMIDLISTと一致すると思う。 マイコンピュータのアイコンが表示されてしまうのは、 フルパスの先頭である「マイコンピュータ」を指してるからじゃないかな。
616 名前:611 mailto:sage [2008/04/01(火) 15:59:46 ] >>多分フルパスで取得したLPITEMIDLISTを先頭にたどっていけばいいんじゃないかな。 「先頭に」じゃないな。「末尾に」だな。 確認はしてないので違ってたらごめんね。
617 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 16:23:02 ] >616 いえ、ありがとうございます。 ここは多少立ち止まってでもしっかり理解したい所なので、全て試してみようと思います。
618 名前:デフォルトの名無しさん [2008/04/01(火) 17:48:04 ] 初心者に教えてくれる掲示板ということで教えてほしいのですが、 スタティックテキストの文字の色、大きさ、フォントの種類を変更したいと思っています。 初期の設定で変更し、その後は特に変更しません。 VisualC++2005のダイアログベースで作成中です。 よろしくお願いします。
619 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:25:29 ] >>618 ダイアログベースってMFC?そうでない? スタティックテキストは個別に変更したいってこと? リソースエディタでは無理だから、大きさとフォントは、別に作ったフォントを WM_INITDIALOGでWM_SETFONTしてやると変更できる。 色はWM_CTLCOLORSTATICメッセージでSetTextColor呼ぶとか
620 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:26:03 ] >618 そのへんは普通に勉強すれば誰でもわかることだし 掲示板でいちいち説明できる分量じゃない。
621 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:30:53 ] 初心者に教えるスレでっせ。
622 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:37:09 ] 教えるのはいいけど理解できるか?
623 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:42:36 ] この掲示板で説明するべき話題でないというのは同意。 ググった方が早くて確実で分かりやすいと思う。 突き放すことはないかなって思っただけです。
624 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:50:00 ] まあ環境もうちょっと書いてくれないとね。 詳しく書いた後で、MFCだとどう書きますかとか聞かれたらやだしね。 適当にはしょって答えて、そのキーワードでググってもらうのがいいかと。
625 名前:デフォルトの名無しさん [2008/04/01(火) 19:19:54 ] >619 ありがとうございます。 MFCです。スタティックは個別にそれだけを変更したいです。 その辺のキーワードを頼りに勉強してみます! >620 初心者なんですいません。 >そのへんは普通に勉強すれば誰でもわかることだし ということですが、その普通にを教えていただけませんか? もちろん参考書で勉強をしていますが、各コントロールの使い方が主に載っていてそれはわかるが、応用するときにはどうしていいかわかりません。 未熟者ですいませんがキーワードとかこういうの参考になるよってのを教えていただけたらと思います。 よろしくお願いします。
626 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 19:22:22 ] >各コントロールの使い方が主に載っていてそれはわかるが、応用するときにはどうしていいかわかりません。 >625 林本だろそれ
627 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 20:11:22 ] 本は欲しい情報が載ってないことが多いし探すのが大変。 自分はMSDNを調べたりキーワードでググったり掲示板を利用したりしている。 掲示板 rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi m--takahashi.com/
628 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 20:15:42 ] コントロールのデバイスコンテキスト取得 ↓ pDC->SetTextColor(0xffffff);
629 名前:デフォルトの名無しさん [2008/04/02(水) 01:29:08 ] DLLファイルを作成するプロジェクト(A)と、そのDLLファイルを使う プロジェクト(B)があります。AとBは別個のフォルダに収められている ので、BからAのDLLを使うには次のことをしなければなりません。 (1) .libファイルの場所をBで設定。(コンパイル時) (2) Bの.exeとリンクされる.dllの場所を設定。(実行時) (1)については[プロジェクト]→[設定]→[リンク]タブで設定しました。 (2)についてはどうすればいいのでしょうか? Aが作るDLLにはデバッグバージョンとリリースバージョンがあります。そこで、 Bの.exeがデバッグバージョンであれば、AのデバッグバージョンのDLLが、 Bの.exeがリリースバージョンであれば、AのリリースバージョンのDLLが リンクされるようにしたいのですが。
630 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:02:28 ] >>629 AとBの出力フォルダをデバッグ同士・リリース同士で揃えたらいいんじゃない?
631 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:13:14 ] >>630 .exeと.dllが作成される場所はデフォルトのままにしておきたいのですが。。。
632 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:31:13 ] >>631 ならBのプロジェクトのプロパティのデバッグの環境変数の設定で Aの出力フォルダをパスに追加しておくというのはどう?
633 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:46:44 ] >>632 すみません。具体的にどうやって設定したらよいか教えてもらえませんか? [プロジェクト]→[設定]とか[ツール]→[オプション]とかは散々いじくった のですが。。。 Visual C++6.0です。
634 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 06:53:44 ] カスタムビルドプロセスで、Aのdllをこっちのexeの出来るフォルダにコピーするとか。
635 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:19:54 ] >>633 出力はデフォルトのまま出来たDLLとかlibをコピーするのは駄目なの? コンパイル後のコマンドでコピーすればよいと思うんだけど あと、デバッグとリリースを分けるなら別名にしたほうがいろいろ便利だよ
636 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:26:22 ] 同じソリューションに入れて依存関係作っとけばよかった気がする
637 名前:625 [2008/04/02(水) 11:54:51 ] >>626 林本です! 一応初期化のところでCreateFontでフォントを作成し、GetDlgItemでIDを取得し、SetFontでフォントを指定して文字の大きさは変更できました。 あとは色ですね。。。 もうちょっと勉強してみます!
638 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 12:05:55 ] >>637 色は OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) で if (pWnd->GetDlgCtrlID() == IDC_HOGE) { pDC->SetTextColor(RGB(0xff,0,0)); } とか }
639 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:23:21 ] デバッグウインドウに文字を表示するにはどうすればよいでしょうか?
640 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:29:20 ] 以前学校の授業でC言語を簡単に勉強した事があるのですが C++とCはまったくの別物と考えたほうがいいのでしょうか? また、勉強用に独習C++あたりを購入しようかと思っているのですが、他におすすめの入門用の書籍などありますか?
641 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:31:58 ] あまり別物でないように使う事も出来るけど、 フルに機能を利用すれば全くの別物になる。 入門書は ・ 独習 C++ ・ C++ プライマー 第4版 ・ ロベールの C++ 入門教室 の3つを実際に店頭で読んでみて決めてみたら。
642 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:36:17 ] >>639 デバッグ中の出力ウィンドウのこと? OutputDebugStringとかOutputDebugStringFormatとか使う MFCだとTRACEマクロもある
643 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:41:14 ] >>641 なるほど、基本的な部分が似てるのなら少し安心です 前に独習Perlがすごい役にたったから今回も独習シリーズでいいや、とか思ってた たしかに読んでみて自分に合ったの探したほうがよさそうですね。 どうもありがとうございます
644 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:53:10 ] >>636 依存関係ではダメと思う。 自分は634のようにしている。
645 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:00:54 ] >>643 自分は「やさしいC++」がオススメ
646 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:31:13 ] >>642 アリガトン
647 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:55:42 ] >>634 >>635 ありがとうございます。うまくいきました。 [プロジェクト]→[設定]→[ビルド後の処理]タブで、 出来たての.dllをコピーするコマンドを指定しました。 copy $(TargetPath) コピー先フォルダ これでビルド後に.dllが(対応する).exeのフォルダにコピーされ、 .exeの実行時に適切な.dllが使われるようになりました。 >あと、デバッグとリリースを分けるなら別名にしたほうがいろいろ便利だよ 考えてみます。今のところ不都合はないように思います。 >>636 >同じソリューションに入れて依存関係作っとけばよかった気がする >>644 さんのおっしゃる通り、この方法はダメでした。 1つのワークスペース(VisualC++6.0なので)に2つのプロジェクトを挿入して、 それらのプロジェクトの間に依存関係を指定してみたのですが、 うまくいきませんでした。この方法でできれば簡単で良いのですが。。。
648 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 07:19:02 ] WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(NULL,IDC_CURSOR1), NULL, NULL, L"Cursor Test", NULL }; カーソルを自作カーソルIDC_CURSOR1にするにはどうすればいいんですか? こうやるとエラーになってしまいます。
649 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:12:29 ] ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。
650 名前:デフォルトの名無しさん [2008/04/03(木) 08:20:17 ] >>648 -LoadCursor(NULL,IDC_CURSOR1), +MAKEINTERSORSE(IDC_CURSOR1) 綴りまちがってるから自分で確認して
651 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:06:33 ] 開発環境は2008です。 WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; - + の意味がわからないのですが これで実行した時のエラーは error C2065: 'IDC_CURSOR1' : 定義されていない識別子です。 warning C4003: マクロ 'CreateWindowW' に指定された実引数の数が少なすぎます。 error C2059: 構文エラー : ')' です。
652 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:38:12 ] IDC_CURSOR1っていう名前のカーソルのリソースがないんじゃないのかい?
653 名前:デフォルトの名無しさん [2008/04/03(木) 10:09:47 ] Windowsフォームアプリケーションだとコントロールを個別にフォントとかをプロパティで簡単に設定できるんですね。 なんでMFCだとできないんですかね。。。実はできたりするんですか?
654 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 10:14:51 ] ポトペタRAD環境をC++で使いたいならC++Builderへどうぞ VC++ではできません
655 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 11:50:43 ] >>651 LoadCursor(NULL,IDC_CURSOR1) だと IDC_CURSOR1 でエラーにならないのに LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)) だとエラーになるのはおかしいだろ。 そして、LoadCursorの第一引数がNULLなのはシステム定義アイコンを使うときだ。 hInst を入れてみ。
656 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 12:30:44 ] だめでした。 IDC_CURSOR1 を定義する方法は、 リソースビュー>追加>リソース>cursor>新規作成 出来た resource.h をcppにインクルード だけでいいですか? LoadCursorのヘルプに afxwin.h が必須インクルードと書いてあるのですが、インクルードすると #ifdef _DLL #ifndef _AFXDLL #error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] の#errorに飛んでしまいます。
657 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:09:25 ] MFCのLoadCursor使うならafxwin.hが必要でMFCとしてビルドしないといけない
658 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:21:45 ] もしかして>>648 のエラーも >error C2065: 'IDC_CURSOR1' : 定義されていない識別子です。 なのか? そうでないなら出たエラー書いてみて
659 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:29:47 ] あと、>>648 のその行以外は問題ないとすると WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; こうだな。GetModuleHandle(NULL)がかぶってるから、 事前に呼んでとっておくといい、けどこれWinMainの第一引数なんだけどな。
660 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:12:45 ] エラーが出なくなりましたが、今度はウインドウが出てこなくなりました。 正常だった記述に戻してもウインドウが出てこなくなりました。 中間ファイルもソリューションのクリーンで消しましたがだめです。WINごと再起動してもだめです。 DirectX9SDKのサンプルCreateDeviceのVS2005プロジェクトをVS2008で自動変換して取り込み自作カーソルリソースを新規作成で追加して #include "resource.h"追加と WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, L"D3D Tutorial", NULL }; の部分を WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; に書き換えただけです。たすけてください。もう12時間これやってます^^;
661 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:18:42 ] エラーが出ないって事はコンパイルできたんだろ? そしたら次はデバッガの使い方をだな・・・ とりあえず、F10連打だ
662 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:53:10 ] ああそうか!カーソルはこれでクリア出来てるってことですよね LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)) の意味と、CreateDeviceが失敗してるのはまた明日調べます。 まじありがとうございました。
663 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:00:16 ] ちょっとサンプルみたけど、hInst でいいんじゃん。 LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)) で。前のGet・・・につられたわ
664 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:24:36 ] 拾ったサンプルをあてずっぽうで改造? ほとんど何も知らないでやってる?
665 名前:644 mailto:sage [2008/04/03(木) 20:28:26 ] >>647 dllのコピーは必要だけど、依存関係を設定するのはオススメ。 libのリンクを自動的にやってくれるし、 exeをビルドする前にdllをビルドしてくれるので、 古いdllを使ってハマルようなことがなくなる。 つまり 依存関係+ビルド後の処理でコピー と。
666 名前:647 mailto:sage [2008/04/04(金) 00:44:33 ] >>665 なるほどです。そうしてみました。
667 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:56:37 ] >>663 hInstで動きました。ありがとうございました。
668 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:09:59 ] PCSX2というソフトをコンパイルしたいんですがやり方がわかりません。 プログラムについての知識0です。 勉強したいとかではなくこのソフトがほしいだけです。 Microsoft Visual C++ 2008をとりあえずインストールしましたがやり方がまったくわかりません。 サルにも判るように教えてくれる方がいれば幸いです。 ttp://www.pcsx2.net/files/10490 ttp://pcsx2.svn.sourceforge.net/viewvc/pcsx2/pcsx2/GS.cpp?view=markup&pathrev=346
669 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:25:00 ] readme嫁
670 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 02:26:07 ] 勉強する気ないやつに教えるほど俺は性格良くないです
671 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 04:37:38 ] >>668 エミュレータでタダゲーしたいんだけど、コンパイルしないといけない。 だれか手取り足取り教えろ、ということか。 …たしかに何も教える気がまったく起こらんなw 初心者には寛容なほうなのだが。
672 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:00:14 ] 実は頭悪いだろ、ここの人たち
673 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:29:33 ] 残念ながらそんな煽りに乗るほどには悪くないんだな。(w
674 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:45:39 ] >>668 ここは勉強する意欲のある初心者に教えるスレであって 勉強するつもりもない素人に教えるスレではありません お帰り下さい
675 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:47:50 ] 今までXPで開発していましたがPCをVistaで新調して開発したところ、 Vista機では問題なく実行できるexeがXPマシンに持っていくとアプリケーション構成エラーが出て実行できません おそらく>>527 さんとほぼ同じ症状で、/MTでコンパイルを通すと実行できるようにはなりますが ファイルサイズが大きくなるのでできるだけ/MDにしたいです 何か良い手段はないでしょうか VC2008を使用しています
676 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:08:55 ] それが嫌なら>528の方法 それも嫌ならライブラリ使わない
677 名前:675 mailto:sage [2008/04/06(日) 21:26:15 ] なるほど… やはり基本的には/MTにするかランタイム導入を促す方向になるのですね ありがとうございました
678 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:32:39 ] ランタイムをインストールするのが嫌なら、 EXEと同じフォルダに置くという方法もできる。 マニフェスト関係が面倒だけど。
679 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:18:33 ] intやfloatの値をLPSTRに変換するにはどうすればいいですか?
680 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:26:55 ] キャスト int i = ...; LPSTR s = (LPSTR)i;
681 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:39:25 ] すごいな。 いろいろと。 dobuleでなくて良かったとかそういう話なんだな。。
682 名前:デフォルトの名無しさん [2008/04/07(月) 03:11:47 ] どぶれ?
683 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:17:22 ] >679 CやC++でintやfloatを文字列に変換するのと同じでもいいし apiやMFC使う方法もある
684 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:19:08 ] でもfloatは対応してないのもあったかも
685 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:34:49 ] >>680 オマイ天才
686 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:42:03 ] 2008のMFCで、チェックボックスのメンバ変数を追加して、初期化時に 変数名 = TRUE; とすればチェックされた常態で起動されるとVC++6.0の本に書いてあるのですが error C2679: 二項演算子 '=' : 型 'int' の右オペランドを扱う演算子が見つかりません (または変換できません)。 のエラーが出てしまいます。 VBのようにプロパティにもそれらしき項目がないです。教えてください。
687 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:36:44 ] 何の問題もなくできたよ
688 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:06:14 ] 変数を作ったら DDX_Control(pDX, IDC_CHECK1, as); この行が追加された。 で OnInitDialog()の中に as = TRUE; を追加してもだめです。
689 名前:デフォルトの名無しさん [2008/04/07(月) 10:27:05 ] このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている ・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる 糞だけど、政治的な理由で無理やり使わされているんですよね。 もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。 ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
690 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:48:51 ] >>688 単にデフォルトでチェック状態にしたいなら as.SetCheck(BST_CHECKED) をすればいいんじゃないの?
691 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:21:28 ] できました。ありががとうございます。 できましたが、わからないことを逆引きできず、きりがありません、本も相当買いましたが、VBと違いまったく応用できません このまま一個ずつ積み重ねるしかないのでしょうか?
692 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:25:51 ] MSDNで調べる癖をつけましょう それでもわからなければWebやメーリングリストの過去ログなども使いましょう CheckBoxの場合はCButtonというクラスの変数なのでそのメンバを調べましょう
693 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:01:00 ] DDX_Controlにするから型があわない たぶん本に書いてあるのと違うことやってる
694 名前:デフォルトの名無しさん [2008/04/08(火) 17:56:11 ] Visual C++6.0を起動すると、 「ワークスペースにあるウィンドウのすべてを開くことはできません。」 という意味不明なメッセージボックスが表示されることがあります。 [OK]ボタンがひとつあるだけの単純なメッセージボックスです。 このメッセージは次のように言っているように聞こえます。 「ワークスペースにはウィンドウがいくつかある。あなたはそれをすべて 開こうとした。でもそれはできない。」 ??? 別に困っているわけではないのですが起動時に数回に一回の割合で出現するので 気になります。一体、このメッセージボックスは何が言いたいのでしょうか?
695 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:13:41 ] support.microsoft.com/kb/315617/ja このぺージの ダイアログ ボックスでWebBrowserコントロールを使用 の部分なのですが、webbrowser2.hが存在していないエラーが出ます。2008では使えないんですか? 代りに何を使えば同じように使えるんでしょうか
696 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:45:02 ] msdn2.microsoft.com/en-us/library/aa752044.aspx ここらへんをみるとwebbrowser2.hは、該当 ActiveXからMFCクラスを生成するとできる、 って書いてあるような気がする
697 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:47:36 ] >694 メニュー > ウインドウ
698 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:09:33 ] そこの英語ページぜんぜんわかりません CWebBrowser2とIWebBrowser2の違いもわかりません。 ドキュメント自体しないですよね void CtestDlg::OnBnClickedOk() { //CWebBrowser2* hExp1 = (CWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; //hExp1->Navigate2((CString*)("www.google.com/intl/ja/ "), &noArg, &noArg, &noArg, &noArg); IWebBrowser2* hExp1 = (IWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; hExp1->Navigate2((VARIANT*)("www.google.com/intl/ja/ "), NULL, NULL, NULL, NULL); } これで起動するとコンパイルはできるのですが、ボタンをクリックすると test.exe の 0x78a49c05 (mfc90ud.dll) でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x8b55ffdb を読み込み中にアクセス違反が発生しました。 と出てしまいます。VC++2ヶ月でこれはまだ早いですかね
699 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:03:06 ] IWebBrowser2はインターフェイスでCWebBrowser2はその実装されたクラスだけど多分難しいと思う 単に表示させたいならGetDlgItem使わずにダイアログに直接貼り付けてクラス変数作ってNavigateした方が楽だよ なんにしてもCOMとかActiveXとかめんどくさい物を勉強した方がいいと思う
700 名前:デフォルトの名無しさん [2008/04/09(水) 15:18:28 ] VC++6.0の初心者です。 マウスのイベントについて教えて下さい。 (漢字はよく読めないので、なるべく平仮名でお願う) MFC AppWizard(exe)を使って、しゅるい はダイアログベース(D)を使います。 1つめ. ダブルホイールマウスを使ってた。 マウスにかんけい知るイベントで、自分で調べて解ったのは WM_MOUSAWHEEL という奴ですが・・・ホイールが2つある、もっと、マウスで アプリケーションに必要な処理をおこうなうには何すれば? どう考えればいいでしょうか?
701 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:47:15 ] 日本語でOK
702 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:59:22 ] ホイールが二つあるマウスのイベントを拾いたい
703 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:39:18 ] 横ホイールか
704 名前:デフォルトの名無しさん [2008/04/09(水) 17:39:57 ] >>702 さん。 Yes.ホイールが2つ以上あるマウスのイベントを拾いたいです。 (日本語あってる?)
705 名前:デフォルトの名無しさん [2008/04/09(水) 18:05:07 ] VisualC++2005のMFCのダイアログベースでプログラムを作成しています。 まだ初めて1ヶ月もたってないので初歩的なことを聞いてすいません。 OnInitDIalog内の//TODO: 初期化をここに追加します。 というところで font.CreateFont( 36, 0, 0, 0, FW_NORMAL, TRUE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Italic"); GetDlgItem(IDC_STATIC)->SetFont(&font); として、文字のフォントを変更しようとしました。 最初は問題なく変更できていたのですが、気づいたらいつの間にか変換できていませんでした。 ボタンを使って、ボタン動作で GetDlgItem(IDC_STATIC)->SetFont(&font); を行うと変更されますので、一度変更した後になんらかの理由で元に戻ってると推測していますが、その理由と場所がわかりません。 これだけの情報でわかれば教えていただけますか?
706 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:25:46 ] そのfontは保持し続けてるのか? どこで宣言してる?
707 名前:デフォルトの名無しさん [2008/04/09(水) 21:21:31 ] long ldata[] = {0x00000000,0x00000001,0x00000002,・・・・・}; このような配列を、文字列、"0x000000000x000000010x00000002・・・・・" と変換するにはどのようにしたらいいでしょうか。 また、この文字列を逆に配列に戻すことは可能でしょうか。
708 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:40:00 ] VCというよりCかC++を勉強すれば可能
709 名前:デフォルトの名無しさん [2008/04/09(水) 21:54:15 ] >>708 ありがとうございました。可能ということで、勉強したいと思います。
710 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:33:41 ] >>709 sprintfとかで速効
711 名前:705 [2008/04/10(木) 09:50:43 ] >706 一応グローバルで宣言してるつもりで関数の外で宣言してます。 ちなみにC言語は初心者レベルで理解してるつもりです。 まだ、簡単なソフトを1つ作っただけですが。。。初心者レベルで。
712 名前:デフォルトの名無しさん [2008/04/10(木) 10:50:01 ] 最近VisualC#2008 Expressをダウンロードして使っているものです。 質問なのですが、 イミディエイトウィンドウを使ってコマンドを入力してデバッグできる ことを知ったのですが、普通にGUI上からデバッグするだけでは できないことや効果的な利用方法などがあったら教えて頂きたいです。
713 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:53:47 ] ここC#じゃないよ
714 名前:デフォルトの名無しさん [2008/04/10(木) 12:20:50 ] static DWORD beforeTime = 0; DWORD nowTime;static int fps = 0;char buff[80]; nowTime = timeGetTime();fps++; if ( nowTime - beforeTime >= 1000 ) {wsprintf(buff, "%05d FPS\n", fps); TextOut(hDC,1,1,buff,lstrlen(buff));fps = 0; beforeTime = nowTime; } counter++; これは某所にあった FPSを表示するソースの一部なんだけど これを使うと(WM_TIMERで呼ぶと) 最初の一回は00001FPSと出て、その後は25000とか二万を越える値が出ます。 どうして?
715 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:31:49 ] 1秒に25000回呼ばれてるんだろ
716 名前:デフォルトの名無しさん [2008/04/10(木) 12:56:24 ] >713 あ、思いっきり間違えました! すいません。
717 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 05:19:00 ] リソースファイルは、Express Edition じゃビルドできないんですか? ちなみにバージョンは2008です。
718 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:07:09 ] リソースコンパイラはRC.EXE
719 名前:705 [2008/04/11(金) 10:28:39 ] どなたかヒントだけでも教えていただけませんか?
720 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 11:27:20 ] >>705 文字を替えたいコントロールのIDをIDC_STATICから別の名前に替えてみて
721 名前:デフォルトの名無しさん [2008/04/11(金) 12:07:17 ] >>720 変更しましたところ、グループボックスの文字が変化しました。 グループボックスのIDもIDC_STATICになっていました。 その原因は GetDlgItem(IDC_STATIC)->SetFont(&font); でIDを変更していなかったので、 ここでGetするIDも変更したのですが、文字は変化しませんでした。 原因はこれですか??
722 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:40:58 ] >>721 IDC_STATICってのは (-1) になってて ID未設定でいいときに使うんだよ。 プログラム中で指定するなら自分でIDつけろ
723 名前:デフォルトの名無しさん [2008/04/11(金) 13:36:40 ] >>722 ありがとうございます。 しかし、変更しましたが文字は変化しません。。。
724 名前:デフォルトの名無しさん [2008/04/11(金) 13:43:12 ] すいません。文字変更できました! なぜかスタティックテキストの上に全く同じスタティックテキストができていて、 上を必死に変更してたのですが、下のものが表示されてたためにいくらやっても変化しなかったようです。 コピーやペーストをした覚えはないんですが、、、 でも、おかげさまでIDのことを覚えることができました。ありがとうございました。 もっと勉強してきます!!
725 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:00:41 ] しかしこのスレって土日になるととたんに書き込みなくなるよね 仕事でこんなところに書き込んでる奴ばかりなんだろうか
726 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 03:40:49 ] 仕事でか(((( ;゚Д゚))))
727 名前:デフォルトの名無しさん [2008/04/13(日) 09:24:12 ] VC++2008ExpressでReleaseでビルドしてもtest.exeファイルが作成されません Releaseフォルダにはtest.exe.intermediate.manifestやtest.objがあるだけです どうすればいいですか?
728 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 09:52:27 ] >>727 あるじゃん
729 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:16:14 ] Releaseフォルダは2箇所にある。
730 名前:デフォルトの名無しさん [2008/04/13(日) 10:35:39 ] >>727 ほんとだ
731 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 12:13:21 ] >>727 リンクエラー出てませんか?
732 名前:デフォルトの名無しさん [2008/04/15(火) 18:04:24 ] 設定に関する質問です。 以前VisualC#2005をつかっていた時は、 括弧を閉じたりセミコロンを入れると自動でコードが綺麗に整列されて、例えば x=5 が x = 5 というように、空白が挿入されたりインデントされたりしてたのですが、 こういった機能はVisualC++2008にはありますか? 自分でも調べたのですがよくわかりませんでした。設定方法がありましたらお願いします。 上手く説明できなくてすみません。。orz
733 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:18:10 ] >>732 C++に、そういう機能はなかったはず C#なら2008にもある
734 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:07:24 ] そうですか。。回答ありがとうございました
735 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:50:01 ] C#はそんなのがあるんだ。 C++は他の言語や環境と比べると不便さを感じるかもね。
736 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 21:11:22 ] 昔からVBがそうだけど、特にVCが不便と感じたことはない 逆にいちいち余計なことされるとむかつく
737 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:37:16 ] VBは改行時にいちいち構文チェックしてうざかったな〜 .netになってからVBとかC#とかのインテリセンスはかなり優秀に C#になれてたんでVC++にきたときに不便さに困った 今となっては慣れたけど
738 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:22:50 ] C++ はマクロとかあるし、それ抜きにしても文法凶悪だからね。処理系的には。 賢くしづらいのはよく分かる。
739 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:29:29 ] VCで極力小さい実行ファイルを作るにはどうしたら良いのでしょうか。 #include <windows.h> int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { return 0; } だけをコンパイルしても24KBにもなってしまい、ビルドオプションで サイズ優先とかしても変化せず。 変なランタイム使ったり実行ファイルが圧縮されてるわけでも無いのに、 ファイルサイズ10KB台で色々な処理をしてるまともなGUIツールが あるんですが、何をどうしたらこう言う実行ファイルが作れるのか 皆目見当が付きません。
740 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 05:43:44 ] 既存のライブラリを使わない
741 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 06:57:12 ] あとは/opt:nowin98だっけか。
742 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:55:28 ] どなたか www.whitire.com/vbs/tips0199.html をvc++に移植してください!
743 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:43:12 ] 移植もなにも…
744 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 11:16:47 ] できあがったDLLからC++のdllexport関数をDEFファイル形式で吐くツールとかないかな・・・
745 名前:742 mailto:sage [2008/04/16(水) 11:40:27 ] こんな感じで呼べますか? www.geocities.co.jp/SiliconValley-SanJose/5309/vbaxdll_smp.html
746 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:58:36 ] >>740-741 きっちり1KBの実行ファイルが生成される様になりました。 有り難うございました。
747 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:53:24 ] ファイルから読み込んだ文字列から数字を取り出す方法を教えてくれないか [100,100] こんな感じの文字列なんだが "[%d,%d]" こんな書式を使って文字列から数字とか文字列とか取り出せるCの関数ってなんだっけ? もし、C++だったら別のいいやり方があったらそっちを教えてくれたら嬉しい。
748 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:58:11 ] 自己解決、sscanfだ!
749 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 03:33:25 ] スクリプト処理させるなら","やらスペースやら"[" "]"やらでトークン識別して 個々の文字列をatoiとかで読み取らせる方がいいよ
750 名前:デフォルトの名無しさん [2008/04/17(木) 08:14:17 ] sscanf()で%[]や%nを駆使する方がましな希ガス。
751 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 08:38:20 ] sscanfは黒歴史だよ
752 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 08:48:49 ] Cスレ行け
753 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 14:51:45 ] >>750 入力ミスのチェックとか考えると自前で文字列解析処理作った方がいい 仕事でスクリプターが別にいる場合とかはチェック必須だしな
754 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 13:51:12 ] あるクラス(以下CTest)をdllにして別のプロジェクトでリンクして 使ったときに、デバッグモードの時だけエラーが出ます。 ソースはこれだけなんですが・・・ 1: CTest *ptest = new CTest; 2: delete ptest; 2行目実行時に「Invalid Address specified to RtlFreeHeap」 が出力されてブレークします。ヒープ領域の開放が上手くできて いないような感じかと思ったのですが、具体的にどうしたら 良いのか分からないです。よろしくお願いします。
755 名前:デフォルトの名無しさん [2008/04/18(金) 14:04:11 ] CTestの中身がなんか悪さしているんじゃない?
756 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 14:36:49 ] 実際のheapいじるメモリ確保がdllと本体側でまたいでんじゃないの?
757 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:27:40 ] new CTest;
758 名前:モンキー [2008/04/18(金) 23:07:11 ] BorlandのBCC55を使って初めてコンパイルを試みましたが、うまくいきません。 c:\に「cppprog]というフォルダを作成し、そこに「hello.cpp]という名前で 保存しました。 コンパイル手順として、コマンドプロンプトを開き、スタートメニュー から「ファイル名を指定して実行」を選び、名前(O)にcmdと入力し、cmd.exe ウィンドウが開き、プロンプトがカレントディレクトリとして、Documents and Settings¥木村が表示されます。ここで「cd\cppprog]でEnterキーを押しても カレントディレクトリは、Documents and Settings\木村のままです。 どこで違った可能性があるかご指摘いただきたいとおもいます。
759 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:10:25 ] cd c:\cppprog ですにょjk
760 名前:デフォルトの名無しさん [2008/04/18(金) 23:15:10 ] >>758 木村さん乙。
761 名前:モンキー [2008/04/18(金) 23:16:13 ] 758です。間違いました。C:¥>cd \cppprog エンターキーで 指定されたパスが見つかりません。と表示されました。よろしく お願いいたします。
762 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:22:45 ] タダで使えるBorland C++ Part5 pc11.2ch.net/test/read.cgi/tech/1135127048/ Borland C++ Compiler オ ワ タ pc11.2ch.net/test/read.cgi/tech/1206951221/ Borlandにはやられた... pc11.2ch.net/test/read.cgi/tech/1146850339/
763 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:42:37 ] 木村乙
764 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:42:44 ] すれ違いな気がしなくもない ってかBC++使ってるやつって VC++けなす奴が多くてなんか嫌
765 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:46:42 ] BC++Builderは、あれはRADだと俺は思う。どっちかっつーとVBに近いような。
766 名前:デフォルトの名無しさん [2008/04/18(金) 23:55:36 ] C++使えるんなら、態々VC++使う理由が判らん マゾか何か?
767 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 03:32:23 ] C++使えるんなら? VC++使う理由がわからん? その日本語がわからん。 中国人か何か?
768 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 12:00:27 ] 766みたいなキモイのがいるからBC++はさわる気にもならない VC++使いたくなくても使わなきゃならない場合もあるんだけど BC++マンセーしてるやつにはそういう状況は想像できないんだろうね キモすぎ
769 名前:デフォルトの名無しさん [2008/04/19(土) 22:06:58 ] いきなりですが、質問です。 Dim img As New Bitmap(16,16)でビットマップを作成して img.SetPixel(4, 4, col) でに色をセットして PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage PictureBox1.Image = img でピクチャーボックスに拡大表示 するとなんとSetPixelでセットした色が丸くピカーンと光ります。 並べると干渉したりします。 1pixelを四角く表示する方法を教えてくだされ。 リージョン作って黒く塗りつぶしたのを最初に作ったbitmapに描きこむのかなー? その方法もよくわからんし、助けてー
770 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:21:28 ] 日本語でおk
771 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:39:44 ] 懐かしいコピペだな
772 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 08:01:03 ] 超初心者的質問で恐縮なのですが、ダイアログボックス表示について質問させてください。 下のように、ダブルクリックしたときにリソースエディタで作成したIDD_DIALOG1のダイアログを 表示させたいのですが、どうすれば表示できるのでしょうか。 開発環境はVisual C++ 2005です。 void CChildView::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。 /* ここでダイアログボックスを表示させたい */ CWnd::OnLButtonDblClk(nFlags, point); }
773 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:46:31 ] VC超初心者です。 ソリューション、プロジェクトのプロパティで、 構成のデバック、リリースて切り替えることで、なにか変化あるのでしょうか?
774 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 11:38:20 ] ファイルサイズが違う。生成されるコードも違う。そもそもデバッグビルドは再配布禁止。
775 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 13:28:38 ] >>772 mfc ダイアログボックス でぐぐれ
776 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:36:45 ] 以前、C++相談室スレでも質問したのですが解決せず、原因はVC++の設定にあるようなので、 こちらで再度、質問させてください。 ttp://www.asahi-net.or.jp/~yf8k-kbys/newcpp18.html このサイトを見ながらC++の基礎を勉強しているのですが、このページのデストラクタのサンプルプログラムを VC++2008EEに打ち込んでも「消滅しました」のメッセージが出ないのですが、考えられる原因はありますでしょうか? ページ内にある2つのプログラム両方で、「生成されました」「呼び出されました」のメッセージは表示されるものの デストラクタの「消滅しました」に関する部分だけスルーされているように表示されないのです。 筆者の書いたものをコピペしても解決しないうえ、C++相談室スレでの報告によると、 報告者の環境では問題なく表示されているそうです。 宜しくお願いします。
777 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:39:30 ] とりあえず中間ファイルを消して、 ディレクトリ全体を zip なり lzh なり圧縮してうpしてくれ。
778 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:06:22 ] >>776 VC2008に原因を求めるよりは、君に原因を求める方が早い。 打ち込みミスとか、そのまんまなら打ち込みでなくコピペするから、それ以前で何か思い違いがあるとか。 つまり>>777 に従ってくれるのが手っ取り早い、と。 #ああ、>>777 getしたかった。。
779 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:14:50 ] C++/CLIなので デストラクタじゃなくて、ファイナライザが動いてるとか
780 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:32:50 ] あー、それありそう。
781 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 02:32:59 ] …と思ったけど、 どのみちlocal変数だから デストラクタが呼ばれるか… ちなみに、 VC2008EE で試してみたけど いずれもちゃんとデストラクタが呼ばれたぞ。
782 名前:776 mailto:sage [2008/04/21(月) 03:33:59 ] 中間ファイルというのがよく分らなかったので、とりあえず丸ごとUPしました。 kissho.xii.jp/1/src/1jyou33385.zip.html DLKeyは「cpp」です。 こういったファイルに個人情報が自動的に含まれてしまうのか分りませんが、 もしあったら削除しておいてください^^; ちなみに、アップ前にもう一度テストしてみましたが、やはりダメでした。 宜しくお願いします。
783 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 04:12:53 ] 分かったわ。 デバッグ実行してるだろ? pause の部分ではまだデストラクタは実行されないから、 そこでは消滅しましたってところは表示されない。 で、何かキーを押したらデストラクタが実行されて表示されるんだけど、 すぐウィンドウが閉じられるからそれを見ることは出来ない。 Ctrl+F5 で実行してみれ。
784 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 04:26:33 ] KENT君乙
785 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 11:03:36 ] 学習過程はC→C++→API→MFCといった順序がよろしいのでしょうか?
786 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 12:41:26 ] どんな順序でも覚えられれば何でもいいが、その順序は悪くない
787 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 13:37:54 ] >>785 ベストといっても過言ではない
788 名前:776 mailto:sage [2008/04/21(月) 15:02:24 ] >>783 pauseがダメだったんですね。。。 ctrl+F5で実行してみます。ありがとうございました。 >>784 そこは分っちゃうんですね^^;
789 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:16:41 ] Visual studioでコンソールアプリケーションを実行したときに、cmd以外(ckwなど)で実行させる方法ってありますか?
790 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:27:38 ] 実行させるプログラムを書く
791 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:36:21 ] 具体的に何がしたいのか。 パイプを標準入出力として子プロセスでコンソールアプリを動かすのはよくやる。
792 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 17:43:07 ] 適当にコード書いてF5押してデバッグ開始したら、cmd.exeの代わりに別のもので実行するようにしたいのです
793 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:48:27 ] ここ初心者スレだし 通常と異なる特殊な使い方の質問はスレ違いとしか思えない
794 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 18:51:17 ] 普通か特殊かなんて初心者に求めるなよ Visual C++で書いてんならスレ違いじゃないだろ
795 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:00:15 ] はっきり言ってスレ違いです
796 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:03:55 ] cmd.exeが起動されてるんだったらそれを違うものに置きかえるだけ
797 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 19:11:12 ] cmd.exe呼んでるかねぇ
798 名前:デフォルトの名無しさん [2008/04/21(月) 21:15:18 ] コマンドプロンプトにprintf命令で文字を表示させたいんだけど、実行するとすぐにコマンドプロンプトが消えます。 getchar()でコマンドプロンプトが消えるのを止めるしかないんですかね?
799 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:27:00 ] >798 それがwindowsの仕様で正常な動作 別に変でもなんでもないから気にするな というかコンソールプログラムはコンソールで使うものだ
800 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:29:39 ] もうVCスレにはFAQでテンプレに入れた方がいいんじゃないかってくらい多い・・・
801 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:46:51 ] VC++2005とVC++2008ってどっちが使いやすい? 両方触ったことある人に聞きたい
802 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:51:07 ] 機能を使いこなせてないと、どっちも変わらないとおもうぞ。
803 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:33:19 ] >>802 そっか それなら最新の2008版にしてみる 情報サンクス
804 名前:デフォルトの名無しさん [2008/04/22(火) 01:12:32 ] C++を学ぶオススメサイトってやっぱ猫でもわかるってヤツ?
805 名前:デフォルトの名無しさん [2008/04/22(火) 01:18:48 ] ねこは嫌
806 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 02:31:19 ] wisdomsoftってとこで今勉強してるけどこれ良いんだろうか
807 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 02:49:31 ] Kitty on your lap か? 俺は使い方とかの参考で世話になった。 俺の経験を言わせて貰えば、猫もそうだけど、この手のサイトは函数の使い方の確認にして、 詳細はMSDNみたり、実際に簡単なテストコード組んでためしたほうがいい。
808 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 03:33:09 ] コンソールアプリ作るならまずはDOS窓使いこなせよ
809 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 05:18:24 ] C++ を学びたいのか Windows プログラミングを学びたいのかで 大きく変わってくるな。
810 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:26:52 ] >>798 これが最後だぞ つ【Ctrl + F5】
811 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:49:25 ] main()の最後にブレークポイントとかな
812 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:50:36 ] >>808 DOS窓じゃなくてコマンドプロンプトって言え
813 名前:デフォルトの名無しさん [2008/04/22(火) 11:10:39 ] ちわ、MSに氏ね氏ねメールを送るところでした マネージ形式でデバッグ中に中断してソースを変更してデバッグ開始すると 第2コンパイラが中間言語を解放しなくて(? exeファイル削除できない>exeを作成できない>デバッグできないという状態になり ログオフログオンをしないとデバッグが出来なくなり1日苦しみました ちゃんとデバッグを停止しないといけないんですね、僕だけですか これからお世話になると思いますがよろしくです、でわでわ
814 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:12:22 ] タスクマネージャで〜.vhost.exeを殺せばええやん。
815 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:12:33 ] なんなんだこれは
816 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:47:36 ] おにいさんおねいさん、 ファイル操作について質問です。 −条件− ログファイルがあって、アプリは1行書くごとにopen/write/closeを行います。 エラーが発生した際とアプリの開始・終了時に書き込みを行います。 ログファイルはサーバーPCに保存され、アプリ利用者(クライアントPC)からログファイルを見ることはできません。 保守担当がリモート接続でのみ見れます。 −質問内容− アプリ起動中にログを見たいのですが、メモ帳などで見てしまうと、 排他がかかってしまい、アプリが書き込めません。 書き込みエラーでアプリが強制終了してしまいます。 どうしたらよいでしょうか? ファイルが書き込み可能になるまでループさせるのがよいでしょうか? 今はファイルをコピーして、「コピー 〜 AAA.log」を見ています。 ファイル操作はMFCを利用しています。 おにいさんおねいさんよろしくです><
817 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:50:26 ] CreateFileのFILE_SHARE_READ属性
818 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:35:19 ] コピーできてるんなら読めないわけないだろ
819 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:23:02 ] >どうしたらよいでしょうか? メモ帳で見なければ良いんじゃないか ログに対して外部から書き込みする必要が無ければ 排他ロックのかからないファイルオープンをするビューアーを探すか、作ればいい >ファイルが書き込み可能になるまでループさせるのがよいでしょうか? ファイル処理で、そういう作り方はする場合は結構ある(書き込みも指定サイズ書き込むまでループとか) どちらにしても、タイムアウトは忘れずに >今はファイルをコピーして、「コピー 〜 AAA.log」を見ています。 べつにこの方法で問題なければこれで良いような気もするが ログを間違えて編集してしまう危険性が低くなるわけだし
820 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 13:10:39 ] メモ帳で開いても排他なんてかかったか?
821 名前:デフォルトの名無しさん [2008/04/23(水) 14:12:33 ] >>801 2008の方が容量小さくね? 2005のプラットフォームSDKがファイルでかすぎる
822 名前:デフォルトの名無しさん [2008/04/23(水) 14:20:08 ] >>808 漢はフロッピー一枚で作る
823 名前:デフォルトの名無しさん [2008/04/23(水) 14:22:36 ] #include <stdio.h> void main(){ int tdn; for (tdn=0;tdn<100000;tdn++){ printf("アッー!"); } }
824 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:26:46 ] vectorの配列を作ろうと思い vector<vector<string> > vecStrDim; vector<string> vecStr; string strTest = "test"; vecStr.push_back(strTest); vecStrDim[0].push_back(vecStr); とやってみました。コンパイルは通るのですが This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. とでて実行してもデバッグエラーになります vecStrDim[0].push_back(vecStr);が悪いのはわかるのですが、方法が思いつきません どうすればデバッグエラーを対処できるのでしょうか?
825 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:40:09 ] 字が読めないのか? Please contact the application's support team for more information. Please contact the application's support team for more information. Please contact the application's support team for more information. Please contact the application's support team for more information. Please contact the application's support team for more information.
826 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:56:09 ] >824 C++のスレあるだろ 【初心者歓迎】C/C++室 Ver.59【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1206809426/
827 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 18:57:45 ] >>826 申し訳ない、スレ違いでしたか
828 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:04:26 ] ×vecStrDim[0].push_back(vecStr); ○vecStrDim.push_back(vecStr); ビルドが通るのはおかしい。どういう環境?
829 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:29:39 ] >>828 vector<vector<string> > vecStrDim [10]; ってなってたです。
830 名前:816 mailto:sage [2008/04/23(水) 23:15:55 ] サーバーにはエディタ含めサーバーAP以外をインストールしてはいけない契約になってて、 Windows標準のメモ帳やワードパッドでしか見れない状況です。 書き込み時のエラーを回避して正しく書き込めればいいので、 失敗したらどこかに、、 って自分で書いてて気が付きました>< メモリに持たせておいて排他が解除されたときに書けばいいですねっ! おにいさんおねいさんありがとですっ(^-^)
831 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:44:07 ] >>830 > メモリに持たせておいて 書く前に異常終了したら、そのログなくなってしまうからそんな解決策は ダメダメだろ。 せっかく >>817 がヒント書いてるんだから、ちょっとぐらい調べたのか? さっぱりわからんと言うなら、コピーしてメモ帳開くバッチファイルでも 作るほうがマシ。
832 名前:デフォルトの名無しさん [2008/04/23(水) 23:53:43 ] プログラムの一番最後に入れるだけじゃなく、cin命令を使ったあとにもgetchar()を入れないと、実行でコマンドプロンプトが消えるがなぜ?
833 名前:デフォルトの名無しさん [2008/04/24(木) 00:15:44 ] >>832 cinなどは改行文字を喰い残すから、その喰い残しの改行文字が(処理停止のための)入力で喰われてしまうから。
834 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:28:27 ] >>830 メモリに確保するくらいなら、書き込み用のファイルと 閲覧用ファイルを別個に用意して 書き込み用に書いた後に、閲覧用にコピー 失敗したら、時間を置いてコピー の方が良いな
835 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:33:26 ] ちわ、>>813 です >>814 さんのアドバイスを生かすことが出来ず力不足を感じてます どうやらメモリが足りなかったみたいでセキュリティソフトを切ったら調子良いです 詳しいことは分からずじまいで悔しいです Vistaでメモリ1Gじゃ辛いですかね 今はこんなソフトを作っています、まだソースには手を付けてませんが ttp://www.dotup.org/uploda/www.dotup.org24874.png 年内には何とか・・・でわでわ
836 名前:828 mailto:sage [2008/04/24(木) 20:09:20 ] それだったらエラーにはならないけどな。(.net 2003)
837 名前:デフォルトの名無しさん [2008/04/29(火) 23:02:10 ] VS2005なんですが なにか押したらソース内のtabが「→」に,スペースが「・」になってしまいました これはどうやったら元に戻るんでしょうか
838 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:09:49 ] >>837 どこかで反対の質問を見たような気がするが、ctrl+r ctrl+w なのだ
839 名前:デフォルトの名無しさん [2008/04/30(水) 09:11:18 ] 質問です。 組込みプログラムでは一定時間たったら処理をするというタイマー割り込みができるのですが、 VisualC++2005のMFCでもそういった一定時間たったら処理ってのはできますか?
840 名前:デフォルトの名無しさん [2008/04/30(水) 09:14:35 ] とんぜん
841 名前:839 [2008/04/30(水) 09:56:05 ] WindowsアプリケーションではツールボックスにTimerがあったと思うんですが、 MFCだとそのようなコントロールが見当たらないのですが。 どのようにやったらいいですか?
842 名前:デフォルトの名無しさん [2008/04/30(水) 10:05:18 ] APIで対応してるって 一定時間停止やシグナル発生まで待ちとかできる
843 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:27:26 ] 組込みの割り込みに相当する機能あるのかな・・・? SetTimer()だと、設定時間経過後にWM_TIMER発行するだろうけど、 実行中の関数を中断して割り込んで来ないし
844 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:30:13 ] >>843 リアルタイムOSじゃないのにそんなレベルの割り込みなんて期待しないでください。
845 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:32:59 ] APIならCreateWaitableTimer MFC(Windowタイマかな)を使う方法は説明しづらいので検索してみて。 TimerというコントロールはMFCでは使えない。
846 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:40:05 ] >>839 素直に、RT系ライブラリ組み込んだ方が良いよ 一時期、クリティカルにA/D値を1msでサンプルするソフト作ってたけど どうやっても、windowsに制御が移ってしまうのに対応できなくて、結局RTライブラリ組み込んだ
847 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:55:15 ] >>843 そんな機能はAPIレベルではない マルチスレッドにして、割り込みをOSに期待するしかない
848 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:35:26 ] Microsoft Visual C++ Toolkit 2003 ftp://195.252.112.9/programiranje/programski-jezici/VCToolkitSetup.exe VCToolkitSetup.exe size 32952488 sha1sum 956c81c3106b97042c4126b23c81885c4b5211f4 edonkey checksum ed2k://|file|VCToolkitSetup.exe|32952488|c534888fa7605403dcb183d2d15282d1|/
849 名前:839 [2008/04/30(水) 13:37:24 ] 皆さんありがとうございます。 ちなみにやりたいことはいろいろテストしてて、 その途中でエラー出したら即終了したいんですよ。 で、エラーフラグを作って定期的にそれを見に行って、 エラーが出てれば終了にしたかったのです。
850 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:03:45 ] >>849 エラーを検出したら終了すればいいだけじゃん。 エラー監視の必要はないと思うのだけど。 # その為に例外機構があるのだし、変な小細工を弄する前にちゃんと言語の勉強しようよ。
851 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:13:48 ] 組込みと言ってるから外部の機器なんかを監視するんじゃないかな
852 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:14:20 ] >>849 素直にマルチスレッドで作ったら?
853 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:41:03 ] CreateDialogでダイアログを作って、 親ダイアログを表示した後に子ダイアログを表示させたいんですけど、 WM_INITDIALOGが来た後に必ず来るメッセージってありますか?
854 名前:853 mailto:sage [2008/04/30(水) 18:42:12 ] 失礼。 CreateDialog()じゃなくてDialogBox()でした。
855 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:54:18 ] WM_INITDIALOGじゃだめなんだろうか
856 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:56:12 ] WM_INITDIALOGでユーザーメッセージを自分にPostすれば?
857 名前:853 mailto:sage [2008/04/30(水) 19:08:35 ] 一応、 WM_INITDIALOGでの処理の最後で自作のウインドウメッセージをPOSTし、 そこで子ウィンドウを作成する処理を書いたんですけど、変わらず 親ウインドウ表示の前に子ウィンドウが表示されてしまいました。
858 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:14:57 ] そんなに表示される順序が大事なら WM_SHOWWINDOW使って判定しろ。
859 名前:849 [2008/04/30(水) 21:04:44 ] >>850 エラーがどこで出るかわかんないんでエラーを常に監視したいんです。 で、エラーが出たらもちろん終了させます。
860 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:16:01 ] エラーと言ってもいろいろあるから話が通じない
861 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:16:40 ] 常に監視したいという割には、 タイマーなんてたまにしか呼び出されないものを使おうとする意図がよくわからん。 で、エラーというのは具体的に何? 関数なんかがエラー値を返すというならmallocみたいにきちんと戻り値確かめろ。 C++例外ならキャッチしろ。アクセス違反なんかならSEHとかで同様に捕まえられる。
862 名前:853 mailto:sage [2008/04/30(水) 21:17:53 ] とりあえずいろいろ試してみます。 コメントありがとうございました。
863 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:48:15 ] すみません。C言語の基礎を一通り覚えたところで C++を始めようと思って調べだしたのですが ただ文字の出力を行うだけでも Console::Write(""); と cout<<""; があってどちらの勉強をしていけばいいのか混乱しています。 勉強するにあたって参考になるサイトがあれば教えて欲しいです。
864 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:54:34 ] どっちも使わない
865 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:57:49 ] TextOutかDrawTextかSetWindowTextあたりを使う 他にもあるかも
866 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 21:57:55 ] どっちでもいいけど世の中の書籍ではcout<<"";使ってる方が多いからこっち使っとくのお勧め。
867 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:00:13 ] というかConsole::Writeが使えるC++コンパイラと言えば、VC++しかない罠。 要.NET Frameworkだし。
868 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:03:10 ] ということは基本的にメジャーなcout<<"";からはじめているC++の入門サイト からはじめたほうがいいということですね! できればオススメの書籍なんかも教えて欲しいのですが・・・これから買おうと 思っているので参考にしたいです。
869 名前:デフォルトの名無しさん [2008/04/30(水) 22:04:18 ] Nクイーン問題を解くプログラムの一番分かりやすい(オススメ)サイトあります?
870 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:07:53 ] 単にC++を勉強したいならcoutでじゅうぶんだろうけど VC++ではほとんど使わない
871 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:15:44 ] >>870 C++とVC++の違いがわかりませんorz 僕はゲームプログラミングの勉強をしたくてC言語をいままで独学でやって きたんですが今日図書館で借りた「アドベンチャーゲームプログラミング」 という本の内容を見てまったく理解できず Cを今までやってた意味ってあったのかな・・・と思い、基本はだいたい 把握できたはずなので、C++に踏み出そうと決めました。 正直今、勉強の方向性を見失ってる状況でもあります。
872 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:30:31 ] C++はプログラミング言語の1つ。 VC++は、MicrosoftのC++コンパイラ、IDEなどがセットになった製品。
873 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:30:56 ] >>868 最近、本を出したロベールさんのとこはどう?
874 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:38:40 ] >>872 回答有難うございます。 C++が言語でVC++がコンパイラだということがわかりました! 細かいことはやっぱり二つとも使ってみないとわからないですよね・・・>< >>873 回答有難うございます。 とてもわかりやすいサイトですぐにでも始めたくなりました!
875 名前:デフォルトの名無しさん [2008/04/30(水) 22:56:53 ] 教えてください オフスクリーンビットマップは最大幅4000pixelくらいまでしか扱えないようですが もっと大きい画像を表示させたい場合どうすればよいのでしょうか・・・
876 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:07:08 ] coutでゲームプログラミング
877 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:09:10 ] >>876 入門はハローワードからでしょ;;
878 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:45:56 ] というかConsole::WriteはC++/CLIで、C++を含んではいるが別言語と思ったほうがいい。
879 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:36:46 ] >>838 ありがとうございます 助かりました
880 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 04:00:43 ] 文字出力はprintf()しか使わない
881 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 04:05:30 ] >>871 ゲームプログラミングをするなら まずはバイナリデータの扱いに慣れる事だな 2進数、16進数、アドレス、ポインタについても知っておく必要がある 最低でもこれらを理解していないとどうしようもない
882 名前:デフォルトの名無しさん [2008/05/01(木) 04:09:09 ] >>871 C++とVC++は別 いくらC++を勉強してもVC++ができる訳ではない DirectXとWindowsAPIをやらないと出来ない
883 名前:デフォルトの名無しさん [2008/05/01(木) 04:17:33 ] >>869 www.ic-net.or.jp/home/takaken/nt/queen/
884 名前:デフォルトの名無しさん [2008/05/01(木) 04:24:34 ] バイナリデータやC++はゲーム作るのに必ず必要とは限らない HSPやDarkGDKを勧める 【HSP】HSPで3Dゲーム 2 【3D】 pc11.2ch.net/test/read.cgi/gamedev/1181967317/ DarkGDK pc11.2ch.net/test/read.cgi/tech/1208941132/
885 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 04:58:47 ] >>884 わざわざC言語からゲーム作ろうとする人は ゲーム作るってのはあくまでモチベーションを保つための目標であって、 C言語習得が目的だと思っているんだがどうか
886 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 05:44:21 ] 何やっていいか知らないだけ
887 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 05:55:23 ] >>884 ゲームプログラミングの「勉強」をするのには向いてないだろ 楽にゲームをつくりたいならそれでもいいが HSPはともかくDarkGDKの方は日本人の初心者に勧めるのはどうかと思うしな
888 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 06:12:35 ] Dark GDKはDirectX9cフルサポート。マイクロソフトVS2008/VC++のオプションとして無料配布。 初心者を強く意識した設計になっているので、あとは日本語の入門書でもあれば、小学生がひとりで、 3Dゲームを作ってしまう、なんてこともできそうです。もともと DarkBasic というホビーユーザー向けのゲーム開発ツールがあって、 その開発スタイルを C++ に持ってきたのが DarkGDK ということらしいですが、悪くありません。 myhome.cururu.jp/kacom/blog/article/21001671006
889 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 06:40:06 ] あっそ
890 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 08:29:36 ] listviewで一行に大きいアイコン小さいアイコンを表示するにはどうしたらいいですks? ┌──┐ │ │ ┌─┐ │ │ │ ..│ ┌┐ └──┘ └─┘ └┘ また代替方法があったら教えてください
891 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:13:38 ] >>885 俺は逆だったけどね プログラムは手段であって、ゲームを作るのが目的 思い起こせば20年前、イースを自分で作りたいと思ってマシン語をやり始めたのが懐かしいw
892 名前:デフォルトの名無しさん [2008/05/01(木) 10:14:45 ] ふつうはなるべく実用的な速度が出せて完成されられるやつ選ぶよな
893 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:16:20 ] >>890 アイコンを小さく描画した大きいアイコンを使う。 それかオーナードローとか。
894 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 10:16:59 ] 趣味ならHSPでもいいだろうし、ゲームツクールでもいいだろ プログラムを仕事にしたいならC/C++だろう
895 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:18:05 ] 本当にゲーム業界に入るのを目指してるなら、 最初からVC++とDirectXで組むくらいでいかないと。 それでできないなら辞めた方がいい。 趣味なら別になんでもいい。
896 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:14:57 ] >>892 ゲームプログラミングって、結局そこなんだよ 最初に、簡単な言語をつかってソフト組んで見る で、おもったよりスピードが出ないのでほかの言語でためす で、最後にアセンブラ最強!と叫ぶ
897 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:47:18 ] 最初から出来る限りのスピードが出る言語で組む 動作環境を推定する デザイナーにその環境内で動作可能なデータを指示する