1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ] Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 。
369 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:38:49 ] >>367 ソリューションエクスプローラの プロジェクト右クリック→追加→リソース
370 名前:デフォルトの名無しさん [2007/12/28(金) 09:35:34 ] >>368 PATH 環境変数の変な所に二重引用符が入っているかもしれないね.
371 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:44:55 ] >>370 その通りでした。ありがとうございます。
372 名前:デフォルトの名無しさん [2007/12/28(金) 19:51:28 ] 普通、テンプレートの定義はヘッダファイルでしますよね。 【hoge.h】 template <typename T> void foo(const T& t) { std::out << t << std::endl; } しかし、T が int と double しかありえないとわかっている場合、 (完全な)特殊化の宣言を翻訳単位に書くことでテンプレートの インスタンスが生成されていました、少なくとも Visual C++ 2005 では。 【hoge.cpp】 template <typename T> void foo(const T& t) { std::out << t << std::endl; } template <> void foo(const int&); template <> void foo(const double&);
373 名前:つづき [2007/12/28(金) 19:51:48 ] Visual C++ 2005 では hoge.h をインクルードしてそのつど テンプレートをインスタンス貸し手もよかったし、 かわりに hoge.cpp をリンクするということもできました。 しかし Visual C++ 2008 では hoge.cpp をコンパイルしても hoge.obj にはテンプレートのインスタンスは含まれません。 コンパイラは「なに実体(定義)のない特殊化してるの?」 と無視するようで、当然リンカは「解決できない参照があるよ」 と怒ります。 この挙動はコンパイラ依存なのでしょうか?それとも何か C++ の標準が変わったのでしょうか?
374 名前:デフォルトの名無しさん [2007/12/28(金) 19:57:21 ] wr
375 名前:371=372 [2007/12/28(金) 20:13:31 ] 完全特殊化とインスタンシエーションを間違えてました。 template <> ってなにやってんだよ俺。 正しくは <> いりませんでした。
376 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 07:27:20 ] >>369 ありがとうございます。できました。
377 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:46:24 ] VS2005EEでコンパイルしたら.exeの他にいろんな拡張子のファイルができるんですが、 .exeを配布するときに同じフォルタにつめなければいけないファイルってどれですか? bccのときは、.exeだけで大丈夫だったんですが
378 名前:デフォルトの名無しさん [2007/12/29(土) 09:49:03 ] 小数点を扱うときに ふと思ったのですが、 .NET における System.Decimal みたいな型って、 アンマネージドなVC++に存在するんでしょうか? もし無いならば、精密な小数点計算ではどう対応してるのでしょうか? よろしくお願いします。
379 名前:377 mailto:sage [2007/12/29(土) 10:22:35 ] 自己解決しました。何もつめなくても大丈夫みたいでした。
380 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:48:58 ] >>378 System.Decimalは、 OLEオートメーションで使われていたDECIMAL型が元になっていると思う。
381 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:47:43 ] switch caseのcase内でreturnする際にもbreakをつけたほうがいいでしょうか?
382 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:13:12 ] >>381 VCというより、Cの話だな。 当然、イラン
383 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:54:43 ] >>382 ありがとうございました。
384 名前:337 mailto:sage [2007/12/29(土) 15:32:24 ] >>345 そうですね……似たようなコードを自分で書くことにします。
385 名前:デフォルトの名無しさん [2007/12/29(土) 15:34:47 ] VC++6.0です。 非MFCでモーダルダイアログを作成したいのですが、 DialogBoxとリソースを使わずにCreateWindow(Ex)で作る事は出来ますでしょうか・・・? 拡張スタイルにTOOLWINDOWを使うと、コントロールメニュー無し・タイトルバーあり・閉じるボタンのみありを作れるものの。 タイトルバーが小さな感じになってしまい、他のスタイルを何通りか試してみても、 コントロールメニューが残ったりと再現が出来ません。 マクロと書いてあったので、どうにか出来るかなと思って試行錯誤してますが、どうもこれと言った設定が見つかりません。 助言頂けたら幸いです。
386 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:33:55 ] >>145 むちゃくちゃ遅いですが回答ありがとうございました><
387 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:21:13 ] >>377 変にオプションをいじっていなければ、exeだけ。 ただし、別途ランタイムが必要。
388 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:54:00 ] x64でインラインアセンブラは使えないんですか? まだ対応してないというだけで、新しい2008では使えるんですか?
389 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:07:42 ] >>388 使えないよ。 MSは組み込み関数を使えってスタンスなんだと理解してる。
390 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:54:36 ] >>380 ありがとうございました。
391 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:27:33 ] VS2005MFCです カスタムコントロールのサイズを取得する、関数って準備されてない?
392 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:29:28 ] >>391 ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/
393 名前:デフォルトの名無しさん [2007/12/30(日) 17:08:00 ] visual c++ 5.0 express だとメイクファイルのエクスポートってできないんですか? どのバージョンならできます??
394 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:16:30 ] VC6.0は少なくともできる。ってか5でもできると思うけど持ってないから何とも・・・
395 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 22:57:37 ] express ???????????????????
396 名前:デフォルトの名無しさん [2007/12/31(月) 01:41:41 ] Visual C++ 2005 Express Editionについて質問します。 昨日始めたばかりで右も左もわかりませんが、よろしくお願いします。 コーディングする時に、スペースを打つと・が表示され、 TABを打つと、→が表示されますが、これを消すにはどうすればいいんでしょうか? 分かりにくかったらすいません、よろしくお願いします。。。
397 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:56:45 ] [編集]-[詳細]-[スペースの表示]
398 名前:396 mailto:sage [2007/12/31(月) 02:01:36 ] ググろうにもどうやってググればいいのか分からなくてほんと困ってたんです。 >>397 さんありがとですmm
399 名前:デフォルトの名無しさん [2007/12/31(月) 03:08:41 ] >>394 ありがとうございました。
400 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:27:05 ] VC2008のExpression Editionで生成した.exeファイルを、開発した計算機以外で実行させるにはどうしたらよいでしょうか? 現状では『アプリケーションの構成が正しくないため・・』というエラーメッセージ表示と共に止まってしまいます。 取りあえずググった結果、2005では 構成プロパティ->ランタイムライブラリ の項を『マルチスレッドMT』にする事で解決できるという記事を目にしたので試して見たのですが、 実行できるようになっただけで、正しく動きません。 (.exeファイルをエントリポイントとした、いくつかの.dllで構成されたアプリケーションなのですが、.exeファイルの機能だけが実行されていて、他の.dllの機能が実行されている様子がない。因みにこれら.dllファイルもマルチスレッドMTで構成しています) これは2008では有効な対処法方ではないのでしょうか?それとも自分が開発したアプリに問題があるのでしょうか? どなたか解決方法に心当たりございましたら、御教授の程宜しくお願い致します。
401 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:37:15 ] >400 はスルーしとけ 答えてやってももろくなことはないぞ
402 名前:400 mailto:sage [2007/12/31(月) 06:56:31 ] 何か問題ありましたでしょうか・・・
403 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 09:00:38 ] >何か問題 対処法方 心当たりございましたら 御教授の程
404 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:37:06 ] >>400 多分、共有ライブラリのバージョンが合つてない。 とりあえずスタティックリンクにすれば直ると思う。
405 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:50:33 ] 実行ファイルには、単純にDLLのインポートライブラリをリンクしただけなのか、 起動後に動的に読み込ませているのか、はっきりしる。 C++/CLIなのか、MFC使っているのか、そこらへんも全て書け。 >.dllの機能が実行されている様子がない。 何を根拠に?
406 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:32:51 ] Visual C++ Express Editionの2008と2005、どちらを使おうか迷っているのですが、 C言語とDirectXの勉強に使うには、2008と2005どちらの方が良いですか。
407 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:38:58 ] >>406 どっちも使って使いやすいほうにすれば?その為の無料なんだし
408 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:47:11 ] 今って2008のExpressってのも出てるのか 知らんかった
409 名前:デフォルトの名無しさん [2007/12/31(月) 11:54:52 ] 2005じゃないの、今なら、勉強用なら
410 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:12:28 ] >>409 2008は扱いが難しいのでしょうか。 それとも、2005の方が情報が多くて問題解決がし易いという意味ですか。 2005の方が問題解決のヒントが多いのであれば、2005の方を使ってみます。
411 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:29:11 ] まあそりゃあ多いだろうよ
412 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:34:39 ] 勉強していくなら情報が転がってる2005のほうがいいでしょ 2008でやっていくなら自分でその情報を発信する側になるぐらいの勢いないとな
413 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:35:52 ] 2008はでたばかりだしね
414 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:50:38 ] VCって無料(フリー)のソフトですか?
415 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:51:13 ] いいえ
416 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:54:47 ] 機能制限された無料版もあるソフトです
417 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:55:19 ] ありがとうございます
418 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:11:59 ] Visual C++ 2005 Express Edition、Windows SDKの環境での質問です リソースエディタでタブコントロール付きのダイアログボックスというものを 作ってみたのはいいのですが、これをアプリケーション内で利用するにあたり、 MFC等を使わずに実装する方法がよくわかりません 別のダイアログを貼り付ける、みたいな話はあるようなのですが 実際どのようにコーディングするのかがわからないのです タブコントロール実装のためのコーディング手順などを教えていただきたいです 長くなるようでしたら、このあたりがわかるようなサイトなどありましたら教えて下さい よろしくおねがいします
419 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:34:26 ] 知ってるけど教えようがない
420 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:39:29 ] コーディング手順ってのもまた珍妙な語だな、考えてみると
421 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:43:56 ] だいたいはプロパティシートを使うんじゃないの。
422 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:50:56 ] MFC等を使わずに実装する方法がよくわかりません
423 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:09:19 ] タブはボタンみたいなものだよ ボタン押した時に何をするかは作る人の勝手だし、 タブで何をするも作る人の勝手
424 名前:418 mailto:sage [2007/12/31(月) 17:51:23 ] 質問の仕方が悪かったでしょうか? 普通にリソースエディタでタブコントロールを追加したダイアログボックスを ただDialogBox()関数で呼び出しても、何もない四角が表示されるだけなのですが、 これを選択できる状態にするには具体的にどういった手順を踏めばよいのか、 別のダイアログボックスを貼り付けるにはどうすればよいのかが知りたいです。 よろしくお願いします。
425 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:17:52 ] >>424 www.kumei.ne.jp/c_lang/sdk/sdk_69.htm ↑直接的にはこれだけど、他のページも見てみると良いよ。
426 名前:418 mailto:sage [2007/12/31(月) 19:52:13 ] >>425 ありがとうございます そのサンプルだとタブコントロールの作成自体が自前だったので多少混乱しましたが GetDlgItem()でリソースエディタで作ったタブのハンドルを取得する事で 項目追加については解決しました そちらのソースを見た感じだとタブ用のウィンドウの上に後からボタンを作っているようなのですが、 リソースエディタ上でタブの上に見えるようにボタンを配置し、それを表示非表示で切り替えたり する事はできないのでしょうか? 手動で作るか、別のダイアログを固定位置の子ウィンドウとして呼び出すとかしかないでしょうか
427 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:13:34 ] そりゃ、ShowWindow(GetDlgItem(**),SW_HIDE)とか駆使しればできるだろうけどさ。 ダイアログエディタが混雑するぜ。
428 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 14:40:45 ] MSDNて使いにくいね。 特にC言語やC++言語の標準ライブラリの調べにくさはC++Builderのヘルプの比ではない。
429 名前:418 mailto:sage [2008/01/01(火) 15:17:20 ] ダイアログをタブコントロールの子ウィンドウとして呼び出して なんとか実装できました どうもありがとうございました
430 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:07:34 ] VC関係のサイトを回っていると、何の説明もなく throw "あいうえお"; みたいな記述を良く見るのですが、これはどういう意味なのでしょうか? プログラムを実行させるとランタイムエラーメッセージが出て処理が止まるのはいいのですが たとえば配布したプログラムでこのthrowが呼び出されてしまったときに、 この"あいうえお"という文字列は、何をもって確認するのですか?
431 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:12 ] >>430 VC以前の問題。 throwって知ってる?
432 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:43 ] おおもと(mainとか)でcatchしとくんだろ。 char*を投げるのはあんまし感心しないけど。
433 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:15:06 ] 正直throwというのが良くわからないです この場合どういう効果があるのでしょうか ランタイムエラーメッセージが出る時にthrowで送られた情報が そのメッセージの中で見られるのかと思ったのですが、見られないのですか?
434 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:16:34 ] throwはC++の機能、try/chatchあたりでも勉強してくればいい 当然の如くVCには全く関係ないから
435 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:26:20 ] char*とか、std::exception継承クラスならともかく、かってな ユーザオブジェクトを投げられたら、いずれにせよランタイムは 情報を出すことが出来ないからなー。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:36:15 ] throw知らね、って言ってる人には分かる内容じゃないだろうな。
437 名前:デフォルトの名無しさん [2008/01/02(水) 09:12:15 ] ・XPでパスワードLOOK中かどうか判断する方法(ctrl + del + altのあれ) わかる方お願いします。ヒントだけでも結構です。
438 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:37:22 ] スロー(throw)だけじゃなくてスルー(through)も一部では需要ありそうだなw
439 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:40:09 ] MSDNのLockWorkStationの解説より >There is no function you can call to determine whether the workstation is locked
440 名前:デフォルトの名無しさん [2008/01/02(水) 15:38:52 ] 結局,関数の宣言の際に例外仕様ってつけるべきなんですか?
441 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 15:41:36 ] 宣言関係ないと思うが、、、仕様どおりでおk 誰が作って誰が使うかによってかわるし、こうしろという決まりごとはないよ。
442 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:58:47 ] >>440 が言ってるのって、 void hoge() throw() 見たいなのじゃないの? C++FAQ第二版で例文がそう記述されてて、 試してみたら(コンパイラに言われたんだか誰かに言われたんだかネットで見たんだか定かでない)けど 「古い記述方法」 という感じだった。 凄くうろ覚えでゴメン。
443 名前:デフォルトの名無しさん [2008/01/03(木) 05:48:25 ] >>442 そう.それ. 例外仕様を頑張って記述したところで,例外仕様の部分って 関数の型としては扱われないし,何かつけてて意味あるのかなって.
444 名前:デフォルトの名無しさん [2008/01/03(木) 17:20:05 ] 別スレから、こちらに書き込みます。 リソースの編集したいのだが、 RCの中から、そこいらのヘッダをインクルードしてるファイルだと フリーソフトではエラーが出て読み込めない。 どうしたら良いですか? あきらめたほうが良いですか?お金はびた一文も出しませんので お金がかからない何か良い方法はないでしょうか?
445 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:20:42 ] >>444 あきらめた方がいい
446 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:43:29 ] テキストファイルだから手動でコピペするだけ
447 名前:デフォルトの名無しさん [2008/01/03(木) 23:26:43 ] 自分はプロジェクトのプロパティ(コンパイルオプションとか) をプロジェクトごとに指定することはあまりやらなくて, あらかじめ用途ごとの vsprops ファイルを作っておいて 組み合わせて適用しているのですが,そうすると プロジェクトごとに最初から指定されているオプションがうざいです. デフォルトで全部「親から継承」に簡単にすることってできないんでしょうか?
448 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:16:05 ] C++/CLIでファイルから特定の文字列を検索する部分なのですが、 C++/CLIのStringクラスのCompare(ryメソッドでは、 完全一致は探すことができたのですが、部分一致を探し出すことができませんでした Cのstrstr関数やC++STLのStringクラスのfindメソッドのような、 文字列から文字列を探すことのできる、C++/CLIのクラスメソッドはないのでしょうか?
449 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:42:44 ] >>448 単にオーバーライドを見つけられていないだけな気もするけど、一応。 ファイルの内容が全てメモリに収まる程度という前提なら、 内容をSystem::Stringに全部押し込んだ後で、System::String.IndexOfか? System::Text::RegularExpressions辺りで一気にやるほうが楽かもしれん。
450 名前:449 mailto:sage [2008/01/04(金) 21:44:22 ] オーバーロードだった orz
451 名前:448 mailto:sage [2008/01/04(金) 22:20:11 ] >>449 すぽーんと見落としてました・・お恥ずかしい 読み込むのはファイルの一部だけなので、IndexOfで大丈夫そうです どうもありがとうございました
452 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:48:48 ] 構成プロパティの文字セットをUnicodeを使用するにした状態で int _tmain(int argc, _TCHAR* argv[]) { _tprintf( _T( "testあいうえお" ) ); _gettch(); return 0; } というような感じでコードを書いたのですが、 abcまではDOS窓に表示されるんですが、あいうえおが表示されません Unicodeだとどうすれば日本語も表示されるようになるのでしょうか? ちなみにマルチバイト文字セットにすると上手く行きます できるだけマルチバイトでもUnicodeでも正常動作するようにしたいのです _Tで囲むことで期待通りの表示になるかと思ったのですが… よろしくお願いします
453 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:51:40 ] あ、abcではなくてtestでした_| ̄|○よろしくお願いします
454 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:54:21 ] >>453 本当に表示されてるのはtestだけなんだな? その後に何も表示されてない?
455 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:56:57 ] >>454 えーと、入力待ちのカーソルが、間隔を開けずにtestの真横に表示されます 文字化けしてでるとかもないです
456 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:57:00 ] setlocale
457 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:26:48 ] >>456 ありがとうございます。こんな感じでいいのでしょうか? 一応あいうえおの表示はされたのですが、何か弊害などはありますか? int _tmain(int argc, _TCHAR* argv[]) { _tsetlocale( LC_ALL, _T( "Japanese_Japan.932" ) ); _tprintf( _T( "testあいうえお" ) ); _gettch(); return 0; }
458 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:29:07 ] CLRのSystem::Windows::Formsクラスを使用するWindowsアプリケーションでは、 処理は全てFormクラス内のメソッドにまとめるものなのでしょうか? WinAPIでのWindowsアプリケーション作成もしたことがないので、混乱しています・・
459 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:35:48 ] 好きにしなさい
460 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 09:36:58 ] >457 そういうプログラムなら標準Cで作った方が汎用性が高いから そんな見苦しいことやって喜んでるのはお前ぐらいだと思う
461 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:03:22 ] マジですか もはや時代はユニコードだと思っていたのですが違うのですか?
462 名前:デフォルトの名無しさん [2008/01/05(土) 10:17:10 ] 自己完結しているアプリなら言語は関係ないだろ ウェブとか、多言語つかうならユニ
463 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:56:10 ] VC++の_t系はWindows APIとの整合性を取るためのものだと俺は思っている。
464 名前:デフォルトの名無しさん [2008/01/05(土) 14:23:23 ] COM の BSTR は MBCS ですか? Unicode ですか? もしくはそういうことは COM の規格の範囲外のことですか?
465 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 14:25:30 ] COMの規約ではどうなっているかしらないが、 Win16ではMBCS、Win32以降はUTF-16 (x86ならリトルエンディアン)。
466 名前:デフォルトの名無しさん [2008/01/05(土) 14:57:05 ] >>465 API でいえば hogehogeA と hogehogeW の話ですよね? 主要な COM コンポーネントでも二種類の インターフェイスが用意されていると思ってたんですが, そうではないのでどうしたものかなぁ,と. しかしよく考えたらたとえば MSXML が XML 文書を 受け取るのも BSTR なわけで,その時は文字コードに よらずなんでも受け取るのだから BSTR は文字コード を限定しないなにか(32ビットで領域のサイズが 明示的に前置された何か)だと思うことにします.
467 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:56:23 ] >>457 寝てたわ・・・ プログラムよりも、デフォルトで開くコンソールのコードページの問題だからねえ。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:01:00 ] 猫本見ながら何度もやってるんですが、画像を表示するところで詰まってます>< ビットマップをrcに変換し LoadBitmapでインスタンスハンドルを取得するところでエラーが出ちゃうんですが 正しい手順教えて下さい>< switch(msg){ case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hBmp = LoadBitmap(hInst, "IDB_BITMAP1"); GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info); w = bmp_info.bmWidth; h = bmp_info.bmHeight; hdc_mem = CreateCompatibleDC(hdc); SelectObject(hdc_mem, hBmp); BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); //描画 DeleteDC(hdc_mem); DeleteObject(hBmp); EndPaint(hWnd, &ps); break; C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。 C:\temp\a.c(102) : warning C4047: 'function' : 間接参照のレベルが 'struct HINSTANCE__ *' と 'int ' で異なっています。 C:\temp\a.c(102) : warning C4024: 'LoadBitmapA' : の型が 1 の仮引数および実引数と異なります。 cl.exe の実行エラー 開発環境はVisualC++6.0です
469 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:21:40 ] >>468 > C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。
470 名前:468 mailto:sage [2008/01/06(日) 02:31:52 ] ありがとうございました hInstを宣言したらエラーが消えました。 でも画像が表示されない><
471 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 03:36:53 ] 宣言しただけかよw サンプル丸写しして出直して来い
472 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 04:20:07 ] せめてhBmpがまともかチェックくらいしたら たぶん、"IDB_BITMAP1" を MAKEINTRESOUCE(IDB_BITMAP1) にすればいいとは思うが・・・
473 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 06:24:14 ] C++/CLIで作ったリストボックスの項目にツールチップ表示をさせる方法ってありませんか? ググってもMFCとか他言語ばかりで・・
474 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:03 ] >>469 hInstっつーのはそのアプリケーションのメイン関数 _tWinMain()の 引数で渡されているHINSTANCE型の引数のことだよ これはそのアプリケーションに一つしかないものだから グローバル変数にでも保持しておいて使えばいい
475 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:27 ] >>458 だた
476 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:54 ] >>468 だたw寒くて指がずれるw
477 名前:468 mailto:sage [2008/01/06(日) 16:01:38 ] >>471 さん サンプルまる写しで出来ないんです>< >>472 さんのやりかたでやっても画面が真っ白のままでした>< プロジェクトフォルダの中身を覗いたらScript1.rcのサイズが2kbなんですけど ちゃんとビットマップ画像入ってないのかと思ってダブルクリックしてみたところ VisualC++が立ち上がって Script1.rc │ Bitmap └IDB_BITMAP1 ってなってるんですけど問題無いですよね? ちゃんと#include <windows.h>の下に #include "resource.h"は書いてあるんです>< >>474 さん Cコンソールの時にやったコマンドライン引数みたいな解釈でいいですか? 猫本にはインスタンスハンドルとしか書いてなかったのでよくわからないまま読み進めてました><
478 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:28:57 ] VS2005でWin32プログラムをデバッグで開始すると問題なく実行できるんですが、 Debug Release問わずデバッガ無しで実行すると途端に --------------------------- cppwin.exe - アプリケーション エラー --------------------------- "0x00000000" の命令が "0x00000000" のメモリを参照しました。メモリが "read" になることはできませんでした。 プログラムを終了するには [OK] をクリックしてください プログラムをデバッグするには [キャンセル] をクリックしてください --------------------------- OK キャンセル --------------------------- で落ちてしまいます。 どういう事なんでしょうか。自殺すればいいんでしょうか。
479 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:30:52 ] はい、よく分かってらっしゃる
480 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:36:33 ] そんな殺生な。 もう2005が出てから2年以上経つんですから デバッガなしだと表面化するバグがどういうものかくらいの情報はあるはずです。 教えてください。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:38:01 ] >>478 デバッガで落ちてそうな所を見つけるしかないんじゃね? MFC使ってるのなら、AfxCheckMemoryとかが有効っぽいケースに見えるけどな。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:39:33 ] >>480 デバッガを疑いたい気持ちは痛いほどわかるが、デバッガのせいじゃないと思うよ。
483 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:40:50 ] >>481 落ちそうな所も何もデバッガ付きならちゃんと意図したとおりに動いてくれるんですが・・・。
484 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:48:12 ] >>483 例外ダイアログからデバッガを起動できるから、起きた場所を特定しよう
485 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:58:00 ] とりあえず変数を初期化せずに使ってるんじゃね
486 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:01:22 ] >>477 hBmpはいくつだったんだよ 0ならいつまでたっても絵は出ないぞ 試しに>>468 のまるまるコピーして IDB_BITMAP1版(MAKEINTRESOURCE使用)と"IDB_BITMAP1"版どっちも ビットマップ表示できてるけど
487 名前:486 mailto:sage [2008/01/06(日) 17:02:46 ] hInstはInitInstanceでグローバル変数に格納してるVC++が作ったソースのまま 一応念のため
488 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:47:29 ] >>483 int *a; a = NULL; : どっかでメモリ確保 : if( a ) { // aのメモリが確保されていた時の処理 } とかやって落ちている気がするよ デバッガ使うと何もしなくても変数が0初期化されてる事が多い
489 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:49:08 ] あ、しまった a=NULLしたら正常動作するなw >>488 のa=NULLを飛ばしてる気がする
490 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:06:38 ] >>489 初期化されてないのが正常動作です。
491 名前:468 mailto:sage [2008/01/06(日) 18:57:43 ] hBmpに正しく数値入ってるかどうか調べるために、表示させようと思ったんだけど Printf使えないから試行錯誤で頑張って見たけど HBITMAP hBmp; BITMAP bmp_info; RECT rc; int w, h; char *szStr="a"; DRAWTEXTPARAMS dtp; switch(msg){ case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hBmp = LoadBitmap(hInst, "MAKEINTRESOUCE(IDB_BITMAP1"); szStr = BITMAP.bmWidth; //hBmpの情報をszSTRに代入 SetTextColor(hdc, RGB(0, 0, 0)); //szStrの中身を表示 DrawTextEx(hdc, szStr, -1, &rc, DT_WORDBREAK | DT_EXPANDTABS | DT_TABSTOP, &dtp); (110) : error C2275: 'BITMAP' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。 よくわからないエラーが…変数の表示ってどうやるの?(´;ω;`)ブワッ
492 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:14:22 ] まさかブレイクポイントも知らないんじゃないだろうな
493 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:18:13 ] VC++のスレだから、当然デバッガ使える環境だと思ったんだが
494 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:22:18 ] >>491 hBmp = LoadBitmap(hInst, MAKEINTRESOUCE(IDB_BITMAP1)); こうな。 そんでコンパイル通る状態にして、この行の次にカーソル移して F9押してF5押してとまったらhBmpの上にマウスのポインタ置いてみな
495 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:29:11 ] >>491 あのさー、型名と変数名の違いぐらい勉強してからこいよ BITMAP 型名 bmp_info 変数名 君ははっきり言って基本的な知識がなさすぎる まずはコンソールでCの勉強から始めなさい
496 名前:468 mailto:sage [2008/01/06(日) 19:53:43 ] 大学の課題で締切が迫っておりのっぴきならない状況なのでもう少し質問させてください>< ブレイクポイントは初めて聞いたのですぐに調べて >>494 さんのやり方で出来ました。マウスを載せたら型名と変数のHBITMAP hBmpが表示されて エラー内容はa.obj : error LNK2001: 外部シンボル "_MAKEINTRESOUCE" は未解決です Debug/a.exe : fatal error LNK1120: 外部参照 1 が未解決です。 って出ました>< >>495 さん 半年前にやったCコンソールの本で構造体の部分読み返してみます><
497 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:55:23 ] ごめんよ、 MAKEINTRESOURCE こうね。
498 名前:468 mailto:sage [2008/01/06(日) 20:07:37 ] エラーが消えたけど画面がすごく・・・白いです><
499 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:36:45 ] >>498 そこで>>494
500 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:29:03 ] >>468 のソースで、hInstさえ正しい値を与えれば表示されるっしょ。
501 名前:デフォルトの名無しさん [2008/01/07(月) 10:31:24 ] VS2005 C++のテキストエディタの画面で、 タブキーや、スペースコードが →や・マークで表示されてしまう様になってしまいました。 何かのキーを触ったら偶然そういう設定になってしまったのですが、 戻し方が解りません。どなたか教えて下さい。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:40:33 ] >>501 超FAQだと思ったが、ここのテンプレはわからなかったので、、、 編集 - 詳細 - スペースの表示 (Ctrl+R, Ctrl+W) で
503 名前:501 mailto:sage [2008/01/07(月) 11:24:14 ] >>502 ありがとうございました。無事元に戻りました
504 名前:デフォルトの名無しさん [2008/01/07(月) 19:23:12 ] VS2005 で手元のプロジェクトをコンパイルするときに WINVER not defined. Defaulting to 0x0502 (Windows Server 2003) という warning が現れます。 出力ウインドウを見ていると、.cpp ファイルの時にはこれが現れ、 .c ファイルの時には自動的に WINVER を設定しないようで現れません。 どこでファイルタイプを判別して動作を変えているのでしょうか。 また、なぜこのような違いが出るようになっているのか教えてください。
505 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 20:08:05 ] 標準Cライブラリのヘッダしかインクルードしていないから。
506 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:11:23 ] MFCを使ったいろいろな例文が載っているサイトないでしょうか?
507 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:13:32 ] >>506 本買ったほうがいいんじゃないか。
508 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:22:05 ] >>506 ぐぐればいくらでもあると思うが…… 例えば、こんなのでいいのか? tp://athomejp.com/goldfish/
509 名前:デフォルトの名無しさん [2008/01/08(火) 00:37:11 ] vc++ 2005と 2008の違いを教えてください
510 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:45:23 ] バージョン
511 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:48:29 ] 2005年に出たのが2005、2007年にでたのが2008
512 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 04:23:40 ] 2005って2004年じゃなかったか?
513 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 04:50:56 ] どっちでも良いじゃん
514 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 06:46:02 ] >>512 2005年だよ
515 名前:デフォルトの名無しさん [2008/01/08(火) 15:23:44 ] 入力したwaveを、エフェクトをかけ出力するプログラムを 作りたいのですがそのようなプログラムの作り方を解説するサイトってないでしょうか? ググッてみたものの出てきませんでした。 当方『windowsサウンドプログラミング』の本を読んで、 そのまま出力するプログラムは出来ています(サンプルプログラムw) 環境VC++6.0 何か書いている途中にスレチな気がしてきましたがよろしくお願いします。
516 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:28:09 ] SDKのサンプルになかったっけ? DirectX使いたいのかな?
517 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:33:40 ] >>515 その本にはWAVデータの詳細が載っているんじゃないかい? どのデータが何を意味しているかさえわかれば、 あとはそのデータをいじってから出力すればいいだけだ
518 名前:515 mailto:sage [2008/01/08(火) 17:55:34 ] >>516 レスありがとうございます。 SDKとは何でしょう?すいません無知もいいとこで… DirectXを使ったほうが楽なのでしょうか? >>517 レスありがとうございます。 それがあんまり載っていなくて、 というか私の勉強不足かも知れないんですが… ど素人なもんでいじり方がどういじってよいやら…
519 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:59:37 ] うん、君にはまだ早いんじゃないかな
520 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:04:57 ] #defineした単語の表示色を変えることはできますでしょうか? オプションのフォントと色を見てみたのですがそれらしい項目が見つからなくて。
521 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:50:23 ] WAVの波形をいじるだけだからVCとか関係ない 方程式書いて計算するだけ
522 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:12:04 ] >>520 標準のエディタじゃ無理
523 名前:デフォルトの名無しさん [2008/01/09(水) 08:16:34 ] 今までListBoxへのD&Dは、WM_CREATE後のDragAcceptFilesに失敗してても上手く行きましたが、 エディットコントロールへのD&Dが上手く行かなくて困っています。 MessageBox でテスト確認してみたら WM_DROPFILES メッセージを送ってないようなのですが、 これはサブクラス化するしか方法は無いのでしょうか・・・? リストボックスでは出来てエディットボックスでは出来ないのは何故でしょうか・・・? ご教授よろしくお願いします。
524 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 09:01:53 ] ひとつのウインドウにリストボックスとエディットボックスを配置して リストボックスにドロップしたらファイル名 エディットボックスにドロップしたらファイルの内容を表示 みたいにやってるけど特に問題なく動いてる
525 名前:523 mailto:sage [2008/01/09(水) 10:06:21 ] もしかして同じ種類のコントロールが複数ある場合はサブクラス化しなきゃダメということでしょうか。。 複数のコントロールでD&D使い分けてるのはDragQueryPoint使ってるのかな・・・。 一応CreateWindowExでWS_EX_ACCEPTFILES指定して、 D&Dの際にはカーソルも変わるんですが、上述の通りWM_DROPFILESで何も起きません。 ちなみに、どのコントロールがアクティブ状態でも共通キー処理したいために、 全てのコントロールを一つのプロシージャにサブクラス化しています。 当然、このプロシージャではWM_DROPFILES動作は出来ました。 (ただし、リストボックスで上手く行く他のソースではメインウィンドウプロシージャでWM_DROPFILES受け取ります)
526 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 11:35:08 ] 作成時に親ウィンドウorコントロールにメッセージを関連付けるような設定がなかったっけか
527 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:35:07 ] 親ウィンドウで受けてもいいし、コントロールで受けてもいいし、 サブクラス化してもいいし、サブクラス化しなくてもいいし、 どれでもお好きなように
528 名前:デフォルトの名無しさん [2008/01/09(水) 22:02:32 ] 試しにリストボックスを適当な場所にCreateWindowExで作って観たところ、 (WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE + WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL | WS_HSCROLL | WS_VSCROLL,) 親ウィンドウへ通知するスタイルを指定しなくても WM_DROPFILES メッセージが送られました。 逆に、リストボックスで上手く行く方のソースでエディットボックスを作って同様スタイルにしてもダメでした。 D&D可能にしたいエディットボックスは WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, + WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_VSCROLL | WS_HSCROLL, のようなスタイルで作成してます。 最初に書くべきことでしたが、環境は VC++ 6.0 です。リソースではなく一つずつCreateしてます。 エディットボックスとドラッグ ドロップでググって観たら似たような症状が幾つか観られたんですが、 サブクラス化以外でリストボックスのように親ウィンドウでの処理という仕方がどうしても見つけられませんでした。
529 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:22:19 ] お勧め www5.plala.or.jp/atata/com/chap7.html
530 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:59:08 ] VC++6.0とVC++2005は何が違うんでしょう
531 名前:デフォルトの名無しさん [2008/01/10(木) 00:00:52 ] すいません、基本的な質問かもしれませんが‥ C言語でファイルを保存するととき(fprintfでいいんですが) testというフォルダに保存したいのですがどうすればよろしいでしょうか? フォルダはあります。 (例えば、sample,txtというファイル) PCの環境はwindowsです よろしくお願いします
532 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:04:43 ] ファイル開くときにそのフォルダ指定すればいいだけ ただしアドレスの\は\\にすること
533 名前:デフォルトの名無しさん [2008/01/10(木) 00:07:58 ] \\test\\sample.txt みたいな形ですか? 一度試してみます
534 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:11:50 ] ごめんVCとC/C++スレ隣通しにしてたから勘違いしてた・・・ VCやったことないけど試してみて><
535 名前:デフォルトの名無しさん [2008/01/10(木) 00:14:19 ] すいません、ありがとうございました。 test\\sample.txtみたいな形でやれば上手いことできました。 ありがとうございます
536 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:39:28 ] VC++2005 Standardです。 リンク中に 「fatal error C1001: コンパイラで内部エラーが発生しました。」 というエラーが出るので困ってます。 __m128 x = _mm_set_ps1(y); と書かれたところが問題のようです。でも、Debugビルドだと問題なくコンパイルできます。Releaseの場合のみエラーが出てきます。 __m128 x = {y, y, y, y}; とするとReleaseでもコンパイルできたりします。 原因がまったくわからないのでお手上げなんですが・・・
537 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 08:34:11 ] エラーの起きる最小限のプログラムに削って調べてみる。それをup
538 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 21:15:58 ] __m128とか_mm_set_ps1とか初めて見た。情報がすくねぇw DebugとReleaseで_mm_set_ps1がコンパイルエラーになるなら_mm_set_ps1の定義見てみては? 俺は環境がないから確認できない・・・ 関係ないかもしれないけど↓みたいな話もあるみたいね。 richa850.hp.infoseek.co.jp/programming/cpp07.html
539 名前:デフォルトの名無しさん [2008/01/12(土) 12:33:54 ] VisualC++2008ExpressEditionを今日から使い始めました 1つのソリューション内に複数のプロジェクトがあり、ソリューション内の あるプロジェクト(コンソールアプリ)から同ソリューション内の他のプロジェクトをインクルードディレクトリに指定する場合 どのようにすればスマートですか? プロジェクトをコンソールアプリで作成すると構成プロパティのツリー内に 「C/C++」という項目が出てこない為、推移的に「追加のインクルードディレクトリ」という項目もありませんでした コマンドラインの-I ../hogeを使うのかなと思いましたけど、どこに追加すればいいのやらで 初歩的過ぎで申し訳ありませんがご教授の程お願いします。
540 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 12:46:45 ] タスクバーのメニューを消して、タスクトレイにアイコンを表示させるものを作っています。 タスクトレイのアイコンをダブルクリックした際に、ウィンドウを表示、ウィンドウをトレイへ格納の動作をつけたいと思うのですが、 処理が分かりません。 どーいった関数、処理の流れになるのか教えて下さい。 また、参考になるサイト等もあれば教えて頂きたいと思います。宜しくお願いします。
541 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:23:50 ] なんでググらないんだろう
542 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:27:57 ] ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
543 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 15:22:18 ] >>539 [ファイル]-[新規作成]-[プロジェクト] [Visual C++]-[全般] 空のプロジェクト でコンソールアプリを作成してるけど [プロジェクト]-[xxx のプロパティ] [構成プロパティ]-[C/C++]-[全般] 追加のインクルードディレクトリ が見えてる
544 名前:539 [2008/01/12(土) 16:44:51 ] >>543 資料を見ながら作っていたのですがその手順の通りだと あたかも最初から表示されているようにかかれてましたがソースファイルが1つも無いプロジェクトには どうやらC/C++の項目が表示されないようになっているようです。 1つ適当にファイルを追加した後表示される事が確認できました。 有り難うございました。
545 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:16:06 ] ググって分からないから書いてんだろ? キーワードもうまく見つけられないんだろうな
546 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:41:49 ] beginthreadで開始したスレッドが終わらないうちにプログラム本体をPostQuitMessageで終了すると、 デバッグ時の出力ウィンドウに cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。 cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。 と表れるんですが、どうすればアクセス違反が起こらないように終了できるんでしょうか。
547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:42:22 ] >>546 子供に自殺要求を出して、その死水を取ってから自殺してください。
548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:42:18 ] VC++ 2005 でisNaNを使った関数を使用するためには ソースコード中に using namespace System と書けばいいのでしょうか?
549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:49:31 ] >>548 isnan()でよければそんなことを書く必要はありませんが。
550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:59:32 ] >549 どうもありがとうございます デバッグかけるとソースコード中の track_box.angle = !isnan(theta) ? (float) -theta : 0; のところで、 error C3861: 'isnan': 識別子が見つかりませんでした と表示されてしまいます…コードがいけないのでしょうか?
551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:03:41 ] _isnan()
552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:10:46 ] >551 うまくいきました!ありがとうございました
553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:13:21 ] デバッグ?って実行しようとしてその前のコンパイルでのエラーか・・・
554 名前:デフォルトの名無しさん [2008/01/14(月) 22:31:41 ] _inran()
555 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:00:58 ] >>546 メモリ破壊を修正
556 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:33:58 ] Visual C++ 2005でdirectx9.0でプログラミングしています。 プログラムは動くのですが、終了時に スレッド 'Win32 スレッド' (0x654) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x98) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x424) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x2e0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x65c) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4c0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4d8) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4b0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4a0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x23c) はコード 0 (0x0) で終了しました。 と大量に同じようなメッセージが出力されます。 これは異常なのでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:35:54 ] 異常です
558 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:37:46 ] ウイルス
559 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:47:09 ] 大量に出るのは異常だという根拠があるのなら異常です。
560 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:56:08 ] >>556 スレッドを作った覚えはあるかどうか。 心当たりが無ければ、実行中に中断させて、デバッグ-ウインドウ−スレッドでスレッドの一覧が出るので、何のスレッドか調べてみよう。
561 名前:556 mailto:sage [2008/01/16(水) 21:57:04 ] どうやら音関係の初期化で出てるみたいなんですけど、 //パフォーマンスの作成 CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, IID_IDirectMusicPerformance8, (void**)&g_pPerformance ); とするとエラーが大量に出てしまうようです。 おかしな所あるでしょうか?指摘お願いします。
562 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:58:41 ] 感染してるとそうなる
563 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:33:52 ] 悪いことは言わない、DirectMusicには手を出さない方がいい 超えられない壁がある
564 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 12:19:17 ] (BBSを使うのは)難しい
565 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:39:11 ] XP(SP2) VC++6.0 MFC ダイアログベースです。 画像をランダムに表示させたいのですが、どうすればいいでしょうか?
566 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:56:33 ] rand()に時間でもかけて使えばいいと思います
567 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ] ランダムじゃないところまではできてるのなら、それを晒してみ。
568 名前:565 mailto:sage [2008/01/18(金) 21:42:25 ] randで自己解決しました。 表示させる枚数も少ないので…。 ご迷惑をおかけしました。
569 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:44:47 ] 自己解決
570 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:09 ] 向きを持ったキャラクタを回転させたいんですけど、 3D空間での単位ベクトルの回転ってどうしたらいいですか? 回転といったら行列を掛ければいいとおもったんですけど、ベクトルは3元なので どうしたらよいかわかりません。
571 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:36:20 ] ゲーム製作板にでも行け
572 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:50:34 ] >>568 どこが自己解決だよカス
573 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:53:03 ] >>570 ・単位マトリクスを用意 ・用意したマトリクスの平行移動成分にベクトル値を入れる ・回転マトリクスと乗算する
574 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:59:59 ] >>573 やってみたら出来ました。 ありがとうございます。 しかし、z軸の+の方からみた時は上手く動くのですが、 逆を向いた時に上下が反対になってしまいます。 D3DXMatrixRotationYawPitchRoll(&m_mat, D3DXToRadian(yaw), D3DXToRadian(pitch), D3DXToRadian(roll) ); として回転行列作っているんですが、pitchの回転が上手くいきません。
575 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:51:03 ] 調子に乗るなよカス ここはVCのスレだ
576 名前:デフォルトの名無しさん [2008/01/19(土) 11:55:55 ] strcpyとか使うと出る例のwarningが、 #define _CRT_SECURE_NO_DEPRECATE 1 ってやっても出たまんまなんですけど、 なぜだか分かりますか? (#pragma warning(disable:4996)は効きます)
577 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:05:54 ] ヘッダのインクルードより先に書いている?
578 名前:デフォルトの名無しさん [2008/01/19(土) 12:13:16 ] >>577 ありがとうございました。 解決しました。 自作のヘッダーの方では、ライブラリのinclude前に あったのですが、mainの方ではそのヘッダーをライブラリよりも あとから呼んでました。 もしかして、 このdefineはmainのあるcppの頭にだけ 書けばよいものなのでしょうか?
579 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:30:28 ] ふつうは、コンパイルオプションに仕込むけど
580 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:23:17 ] Visual C++ってフォームデザイナ付いてんの?
581 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:56:38 ] >>580 [ファイル]-[追加]-[新しいプロジェクト] [Visual C++]-[CLR] Windows フォーム アプリケーション でプロジェクトを作成すると使えるみたい
582 名前:デフォルトの名無しさん [2008/01/19(土) 15:00:17 ] C++ とうか C++/CLI だけどね.
583 名前:デフォルトの名無しさん [2008/01/19(土) 18:30:45 ] クラスの中で+演算子(などを)定義した際、一時的に、 newで何かを作ったとします。 (こんな感じ?) type* tmp = new type[num];。 で、その何かは(何らかの処理後) その演算子定義のreturnで使いたいとします。 return CLASS_X(tmp_s); このとき、tmpのdeleteはいったい どこで行ったらよいのでしょうか? (deleteなしで作成後、実行しても動いてはいる? のですが、たまたまのような気がして心配なので)
584 名前:デフォルトの名無しさん [2008/01/19(土) 18:32:07 ] 訂正 誤:return CLASS_X(tmp_s); 正:return CLASS_X(tmp);
585 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:44:40 ] >>583 tmpの型をboost::scoped_array<type>にでもすればいい。
586 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:59:11 ] >>583 CLASS_X()の戻り値を変数に保持してからtmpを解放 で、returnで保持した変数を返せばいい
587 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:19 ] ちなみに>>583 でも動くだろうが、呼び出す毎にどんどん空きメモリが減っていく
588 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:02:32 ] >>580 スタンダード以上ならついてる
589 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:12:29 ] フォームでよければexpressにもついてる
590 名前:デフォルトの名無しさん [2008/01/19(土) 19:31:40 ] >>585 できればboost以外でお願いしたいのですが。
591 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:34:09 ] >>583 operator=()の中でnewする必要がある状態ってのがよく分からない。 自動変数の値返しじゃダメなのか? ソース提示可能なら提示よろ。 deleteしなかった場合は587の言うように当然メモリリークしていくぞ
592 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:46:23 ] 標準C++の話なら他所でやれ
593 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:47:08 ] >>590 std::vector<type> &tmp[0]のようにすれば、先頭要素へのポインタも得られる。
594 名前:583 [2008/01/19(土) 19:48:07 ] >>591 ありがとうございます。 簡単に言えば文字列の足し算なんですけど、 newしないでできるのでしょうか。 (当方初心者です) friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子 int tmp_nagasa = moji1.nagasa + moji2.nagasa ; char* tmp_moji = new char[tmp_nagasa+1]; mojicpy(tmp_moji,moji1.s); mojicat(tmp_moji,moji2.s); return Mojiretsu(tmp_moji); }
595 名前:583 [2008/01/19(土) 19:51:06 ] >>586 ありがとうございます。(前後してすいません) こんな感じでしょうか。 friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子 int tmp_nagasa = moji1.nagasa + moji2.nagasa ; char* tmp_moji = new char[tmp_nagasa+1]; mojicpy(tmp_moji,moji1.s); mojicat(tmp_moji,moji2.s); char* tmp2_moji = tmp_moji; delete tmp_moji; return Mojiretsu(tmp2_moji); } 一応、動きましたが、tmp2_mojiの先が解放されちゃってて これも心配なんですが、大丈夫なのでしょうか。
596 名前:583 [2008/01/19(土) 19:54:04 ] 訂正 正:mojicpy、mojicat 誤:strcpy、strcat
597 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:17 ] 最近マジデ、どのプログラムもつまんないんですが、どうしたらいいですか? 責めて、C++で鬱病から逃れたいんですが
598 名前:583 [2008/01/19(土) 19:59:39 ] >>592 すいません、この質問が終わったらよそに行きます。 見逃してください。
599 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:59:44 ] ここC++スレじゃないってば VCスレ
600 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:00:57 ] >598 見苦しいから汚いコード貼らないでくれる?
601 名前:591 mailto:sage [2008/01/19(土) 20:05:37 ] 正直すまんかった。 >>598 C++相談室 part60 pc11.2ch.net/test/read.cgi/tech/1200044614 あたりで同じ質問してくれ。
602 名前:583 [2008/01/19(土) 20:08:15 ] >>601 すいませんです。 そちらに行きます。 お邪魔いたしました。
603 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:30:05 ] 最近は、プログラムってFPGAとかのハードプログラムが面白い罠
604 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:23:32 ] 3週間完全マスターVisual C++ 6.0 1版1刷(日経BP社)を図書館で借りたのですが、、、 どっかに、正誤表とかはないんですか?
605 名前:デフォルトの名無しさん [2008/01/20(日) 01:25:08 ] >>603 PCに標準で乗ってたら面白いけどな.
606 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:45:08 ] >>604 ここで聞いてどうするw 出版社に聞け
607 名前:デフォルトの名無しさん [2008/01/20(日) 12:10:01 ] デバイスコンテキストを使用しててどうも前に進めません。 新しくトップにウィンドウ(タイトルバー無し)をポップアップして、 そこにテキストを表示するというものなのですが、 一定以上の大きさを制限するために、一旦デバイスコンテキストに描画したものをStretchしたいのですが、 それ以前にCreateCompatibleDCでメモリデバイスコンテキストにDrawTextしてから BitBltでウィンドウにそのままSRCCOPYしても真っ白なままです。 hDC = GetDC(hWnd); hMemDC = CreateCompatibleDC(hDC); GetClientRect(hWnd); DrawText(hMemDC, szText, -1, &rec, DT_WORDBREAK); BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY); のような感じで、取り敢えずウィンドウの大きさそのままに描画してもダメでした。 これが DrawText(hDC, szText, -1, &rec, DT_WORDBREAK); に置き換えると、ちゃんと描画されます。 プロポーショナルフォントを使っているので、ウィンドウサイズに合わせてポイントを変えるとずれてしまうので、 設定したフォントのまま縮小出来れば、、と試行錯誤してますが、デバイスコンテキストの描画の時点で止まってしまってます。 助言どうかよろしくお願いします。
608 名前:607 [2008/01/20(日) 12:12:20 ] すいません、一行書き間違えしました。 >BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY); →BitBlt(hDC, 0, 0, rec.right, rec.bottom, hMemDC, 0, 0, SRCCOPY);
609 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:29:26 ] CreateCompatibleDCでググれ。 メモリDCはビットマップを割り当てないとまともに使えない。
610 名前:デフォルトの名無しさん [2008/01/20(日) 16:37:28 ] 2008/01/20 現在での最新のVisualC++ のバージョンは何でしょうか?
611 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:40:49 ] マイクロソフトの公式でも池よカス
612 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:47:11 ] >>611 いっぺあってどれがどれやらワケワカメなんだよボケェ 体系的に整理されていないと頭にインプットされねーんだよウンコ
613 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:52:28 ] 2008じゃないの?
614 名前:デフォルトの名無しさん [2008/01/20(日) 17:00:35 ] まずなにしたらいいですか
615 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:09:27 ] >>614 オナ・・・というのは置いといて Hello world を表示だな
616 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:10:33 ] >>614 コーヒーを用意し 服を脱ぎ コーヒーに塩を入れ 裸体のまま一気に飲む
617 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:16:28 ] >>614 void main() { printf( "Hello world!!\n" ); } これを動かしてみ? できるかな? できるかな?
618 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:25:46 ] >>614 なんで手に入れたんだよ ワレズか? 違法だからやめとけお勧めしないから違法なんだよ
619 名前:デフォルトの名無しさん [2008/01/20(日) 17:47:26 ] >>609 更に調べてみたら、どうにか作りたい形に近づきました。 hBmp = CreateCompatibleBitmap(hMemDC, rec.right, rec.bottom); SelectObject(hMemDC, hBmp); のようにしてから、DrawText, StretchBltをhMemDCに出力したところ、反映されたのですが、 テキストの埋まってない余白部分が黒くなってしまいます。 HBITMAPやCreateCompatibleBitmapで調べてるのですが、どうも背景を白く塗りつぶす事が出来ず・・・。 SelectObject(hMemDC, hBmp); に関してはメモリデバイスコンテキストとBITMAP領域をリンクした状態にするという感じでしょうか・・・?
620 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:40:28 ] DrawTextやStretchBltは呼べるのに、何故FillRectを呼ばないのかと
621 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:47:16 ] >>619 DrawText()とか使うなら、SetBkColor()やSetBkMode()を覚えましょう。
622 名前:デフォルトの名無しさん [2008/01/21(月) 00:46:43 ] Cプログラマ必須テキスト! mori.eco.to/
623 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:37:57 ] Visual Studio 2005 でリビルド ↓ ========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ========== リビルドがすべて正常に完了しました ↓ デバッグする ↓ ダイアログで 「プログラム×××.exeは開始できませんでした。」 と表示され、デバッグできません。 何のエラーメッセージも表示されないのですが 心当たりのある方いますか?
624 名前:619 mailto:sage [2008/01/21(月) 04:30:52 ] >>620-621 レスどうもです。SetBkColorは書き忘れただけで、書いてました。が、ダメでした。 FillRectは完全に盲点でした。。存在すら知らなかったもので、試した所、上手く行きました。 本来はマスクかけたりとか色々やるべきなのかもしれませんが、 取り敢えずテキストを白背景に黒で表示という目的は達する事が出来、ありがとうございました。
625 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:23:25 ] 質問です。 タスクトレイのアイコンから最小化、元のサイズの処理をしているんですが、 最小化は ShowWindow(hWnd,SW_MINIMIZE); ShowWindow(hWnd,SW_HIDE); で、出来るんですが、下のサイズの処理をした時に、ウィンドウがアクティブにならず、他のものに隠れて後ろに表示されてしまいます。 処理は ShowWindow(hWnd,SW_RESTORE); ShowWindow(hWnd,SW_SHOW); と書いているんですが、これのどこがいけないんでしょうか?
626 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:26:15 ] そのへん、いろいろあるんで似たような目的のAPIや引数をいろいろ試してみるといい。 まあ、SetForegroundWindowを併用するのが確実かなあ
627 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:48:47 ] >>626 レスありがとうございます。 一応、SetForegroundWindowやSetWindowPosを使って最前面に表示する事が可能なのは確認しましたが、 普通のウィンドウとは動作が違っちゃうんですね。 上記のものだと、関数が発行された時は確かにアクティブなんですが、そのあと後ろのウィンドウを消したりすると、 自分のプログラムが最背面になってしまいます。 自分の作ったウィンドウをmy、その他のウィンドウA、Bとあるとすると、 アクティブ順位が1:A、2:Bの状態から1:my、2:A、3:Bになり、AやBを最小化すると、 1:A(B)、2:myになってしまいます。何故か分かりますか?
628 名前:デフォルトの名無しさん [2008/01/21(月) 11:05:56 ] visual c++ 2008 express editionでgeocoderja.dll内の関数gcjDbLoadを使うプログラムを書いています。が、エラーが出てしまいます。 dllを扱うには動的リンクと静的リンクがあるというところまではわかり、とりあえず動的リンクで試そうとしているんですがどうにもわかりません。 かなり低脳なので申し訳ないのですが、解決法を教えてください。 [ソース] #include "stdafx.h" #include <stdio.h> #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { typedef int(__cdecl* _gcjDbLoad)(char *, int); HINSTANCE hDll = LoadLibrary("geocoderja.dll"); int func = (int)GetProcAddress(hDll, "gcjDbLoad"); char *path = "C:/Documents"; int loadLevel = 4; int retCode = func( path, loadLevel FreeLibrary(hDll); return 0; } [エラー] ------ ビルド開始: プロジェクト: geocoderja, 構成: Debug Win32 ------ コンパイルしています... geocoderja.cpp c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(16) : error C2064: 2 引数を取り込む関数には評価されません。 ビルドログは "file://c:\Documents and Settings\DE\デスクトップ\geocoderja\geocoderja\Debug\BuildLog.htm" に保存されました。 geocoderja - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
629 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:08:04 ] 引数はいろいろやったの? SW_SHOWNORMAL とか
630 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:14:37 ] SW_SHOWNORMALならRESTOREなんてやる必要ない
631 名前:628 [2008/01/21(月) 11:16:12 ] >>629 早速レスありがとうございます。 SW_SHOWNORMAL?? 動的リンクのサンプルを見ながらちょこちょこいじってきたんでよくわかりません。 すみません・・
632 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:20:43 ] typedef int(__cdecl* _gcjDbLoad)(char *, int); イミフメイ
633 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:21:57 ] >>628 何を聞いてるの? もともと間違いはあちこちあるけど、そのエラーは >int retCode = func( path, loadLevel この行が途中までしか書いてないから出るんだよ。
634 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:13 ] >>631 ShowWindow()の引数だよ それ一つあればSW_RESTOREもSW_SHOWもいらない
635 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:32 ] >>628 geocoderのことは知らないが > typedef int(__cdecl* _gcjDbLoad)(char *, int); ↑のように書いたのなら >int func = (int)GetProcAddress(hDll, "gcjDbLoad"); の行は _gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad"); と書かないと意味無くないか? >>631 629-630はその前の質問に対するものだろ。
636 名前:628 [2008/01/21(月) 11:28:52 ] すみません訂正です。書き込みの際に消してしまったようです。 [ソース] #include "stdafx.h" #include <stdio.h> #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { typedef int(__cdecl* _gcjDbLoad)(char *, int); HINSTANCE hDll = LoadLibrary("geocoderja.dll"); int func = (int)GetProcAddress(hDll, "gcjDbLoad"); char *path = "C:/Documents"; int loadLevel = 4; int retCode = func( path, loadLevel ); //エラーが出てる行 FreeLibrary(hDll); return 0; } [エラー] c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(13) : error C2064: 2 引数を取り込む関数には評価されません。 >>632 その行が意味もわからず見よう見まねで書いたのでよくわからないんです・・ >>634 ShowWindow()は使ってないのですが、関連があるんですか?無知ですみません・・
637 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:31:49 ] >>636 俺が悪かった ShowWindowは君の質問とは一切関係ないw
638 名前:635 mailto:sage [2008/01/21(月) 11:33:36 ] >>636 >int retCode = func( path, loadLevel ); //エラーが出てる行 エラーの出てるのはその行だろうけど 原因は635で書いたところにあると思うよ。 意味が分からないなら「関数ポインタ」について調べてみ。
639 名前:628 [2008/01/21(月) 11:42:21 ] >>637 完全に勘違いしてました。すみません。 >>635 635さんの言うように int func = (int)GetProcAddress(hDll, "gcjDbLoad"); を _gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad"); にするとうまくビルドできました! 関数gcjDbLoadも使えているようです。 ありがとうございます! >>638 とりあえず動作するようにはなったみたいなのでいろいろと調べてみます。 ありがとうございます!
640 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:19:15 ] SW_SHOWNORMALも試しました。 ShowWindow(hWnd,SW_SHOWNORMAL); でも、>>627 に書いた通りの動作になってしまいます^^; ShowWindow(hWnd,SW_SHOWNORMAL); SetForegroundWindow(hWnd); でも同じです。
641 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:28:49 ] うちじゃそうならないから、キミのとこの環境がおかしいのかもね
642 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 13:49:08 ] 何で出来ないんですかねぇ; もうちょっと試行錯誤してみます。ありがとうございました。
643 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:45:19 ] Windowでプロジェクト全検索してみれば? どっかでアホな事やってるんだろう
644 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:47:59 ] Visual Basicにはちゃんとしたスレはないの? 変な流れのネタスレしかないお。
645 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:42:25 ] VB(笑)
646 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:09:20 ] 澄んだ目で見れば、ネタスレなどない。
647 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 05:14:22 ] >>644 サイトが充実してるから2ちゃんでやらんでいいやろ
648 名前:名無しさん@ゴーゴーゴーゴー! mailto:sage [2008/01/22(火) 10:08:57 ] VisualStadio2005を使っています。 コンパイルオプションにdefineを追加するのはどうやったらいいのでしょうか。 #define _CRT_SECURE_NO_DEPRECATE 1 #pragma warning(disable:4312) #pragma warning(disable:4996) 上記のをソースに書かず、オプションに追加したいんですが、 プロジェクト→〜のプロパティ→C/C++→コマンドラインの中に書くのでは違うのでしょうか? どこに、どう書いたらいいのか分かりません。 分かる方お願いします。
649 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:21:31 ] >>648 コマンドラインに書いてもいいけど、VC++でやるなら普通は プロパティのC/C++ - プリプロセッサの「プリプロセッサの定義」
650 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:23:34 ] あー、あとpragmaのほうは同じく C/C++ - 詳細の「指定の警告を無効にする」
651 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:48:29 ] 出来ました。ありがとうございます。
652 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 13:18:08 ] Visual C++とかVBの如くバカにされたときの反応を教えろ。(・∀・)
653 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 14:42:41 ] スルー
654 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 14:52:15 ] そうなんだーって言う
655 名前:デフォルトの名無しさん [2008/01/23(水) 01:42:39 ] Visual Studio.NET 2003でWin32のプログラムを作りました。 Visual Studio上でデバッグ起動することはできるんですが、 使ってる画像などを含めて、他のPCで動かすためのexeファイルを作るには どうすればいいんでしょうか? 解説してるサイトなどあったら、教えてもらえませんか。
656 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 07:03:54 ] exe作らずデバッグできるほどVC++は器用じゃない
657 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 09:39:25 ] Release版の話?インストーラーの話?
658 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:12:49 ] >>656 Debugフォルダにexeができてました。 画像を同じフォルダに入れたら動きました。 >>657 インストーラの作り方もできれば知りたいです。 exeファイルにアイコン画像をつける方法とかも。
659 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:42:29 ] すごく基本的なことだから少し勉強すればすぐわかると思う
660 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:08:16 ] リソースエディタで検索
661 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:22:03 ] >>660 ?????????????????????????????????????????????
662 名前:デフォルトの名無しさん [2008/01/23(水) 16:25:10 ] DirectShowを用いて二つのカメラからの信号をそれぞれサンプルグラバフィルタを使用して入力し、 RGB情報をカメラごとの配列に入れて画像処理で用いたいのですが、なかなかうまくいきません。 どのようにすればいいか、ご教示願えませんでしょうか。
663 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:26:45 ] VC++関係ない気が DirectShowと戦うスレ Part 2 pc11.2ch.net/test/read.cgi/tech/1162913156/ ここの誤爆?
664 名前:http:// p1062-ipbf4007marunouchi.tokyo.ocn.ne.jp.2ch.net/ mailto:ura [2008/01/23(水) 16:31:20 ] tbs
665 名前: p1062-ipbf4007marunouchi.tokyo.ocn.ne.jp mailto:ura [2008/01/23(水) 16:34:16 ] tbs
666 名前:655 mailto:sage [2008/01/23(水) 23:25:43 ] >>659 基本的なことなら、もう少し自力で調べてみます。
667 名前:デフォルトの名無しさん [2008/01/24(木) 19:54:53 ] VC++2002 MFC で CFormViewにリストコントロールを配置しています リストコントロールの幅や高さ等を取得したいのですがうまくいきません コントロールのサイズを取得する方法を教えてください
668 名前:デフォルトの名無しさん [2008/01/24(木) 20:13:28 ] 自己解決しました
669 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:28:26 ] VARIANTとCStringの変換について教えてください。 下記のようなコーディングで問題ないでしょうか? //VARIANTからCString CString hoge = newValue.bstrVal; //CStringからVARIANT CString hoge = "hoge"; vaResult.vt = VT_BSTR; vaResult.bstrVal = hoge.AllocSysString();
670 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:42:48 ] それでいいけど、VARIANTからCStringへは、 単にCString hoge = newValueでいけるはず。 あと場合にもよるけど、CComVariant (ATL), COleVarinat(MFC)もよろしく。
671 名前:デフォルトの名無しさん [2008/01/25(金) 20:59:51 ] プロジェクト内のファイルのファイル名を変更する 簡単な方法があれば、教えてください。現在は次の 方法でファイル名を変更しています。 (Visual C++6.0です。) (1) プロジェクトからそのファイルをいったん除外する。 (FileViewでファイルを選択し[編集]→[削除]) (2) エクスプローラでファイル名を変更。 (3) そのファイルをプロジェクトへ再度追加する。 [プロジェクト]→[プロジェクトへ追加]→[ファイル]
672 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:10:10 ] >>671 (1)の後、エクスプローラで操作しなくても、 (3)の追加時にファイル名変更すればいい。
673 名前:671 mailto:sage [2008/01/25(金) 21:17:46 ] >>672 なるほど。ありがとうございました。
674 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:37:17 ] 俺メモ ShowCursor()関数は単純に表示のON/OFFを切り替えるものではない 表示カウンタという意味不明なカウンタを持ってるらしく ON/OFF切り替えるには同じ回数だけtrueとfalseをセットする必要がある 氏ねよMS('A`)
675 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:40:02 ] MSDN見ずにAPIを叩いてはいけないという例。 >Parameters bShow >[in] Specifies whether the internal display counter is to be incremented or decremented. >If bShow is TRUE, the display count is incremented by one. >If bShow is FALSE, the display count is decremented by one. >Remarks >This function sets an internal display counter that determines >whether the cursor should be displayed. The cursor is displayed >only if the display count is greater than or equal to 0.
676 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:53:55 ] 流石にそれで氏ねは可哀想だろ。 とはいえ、自分で使うとしたらラッパ書いて単純トグルにしてしまいそうだけど。
677 名前:デフォルトの名無しさん [2008/01/27(日) 02:53:52 ] FileViewのツリーの中でファイルはファイル名の順に 並ぶようですが、この順序を変更することはできるでしょうか? Visual C++6.0です。
678 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 06:55:10 ] >>675 VSとJaneDoeStyleとブラウザ開いたら重すぎてMSDNなんて見れない、というか見たくない。
679 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:54:30 ] そんなにヘボPCなのかw
680 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 09:41:50 ] 昔は描画するときにマウスカーソル消して描いてたからな。 カウンタはあって当たり前の必須機能だったな。 今だとカーソル消すなんてよほどのことじゃないか?
681 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 10:42:37 ] >>679 メモリが256MiBもあってCPUの速度も2GiHz超えしているという、 世界初のコンピュータとは比べ物にならないほどの高い性能を持ち合わせた俺のマシンが唸る!
682 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:27:12 ] >>680 エロゲで数秒たったらカーソル消すのは必須機能だよ
683 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:33:52 ] ああ、今は動画とかで消しっぱにするってことか ウィンドウのカーソルを見えないやつに差し替えじゃあかんのかな? ゲームは自前カーソルが多い気がするから、別の話か。
684 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:45:29 ] プログラムは無事に完成しリリースビルドしたのですが、 コンパイル済み実行ファイルをテキストエディタ等で開くとエラー時に表示するメッセージや 読み込むファイル名がそのまま見えてしまいます これはセキュリティ上よろしくないと思うのですが見えなくする方法はあるのでしょうか?
685 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:33:51 ] 自分でリソースに定義したやつだったら好きなように暗号化できるだろ
686 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:21:11 ] それが見えて何か困ることでも? まあ隠したいんならテキストを圧縮するなり文字コードに 無駄な数字を足すなりなんなりとすればいい
687 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:25:53 ] そういえば昔exeの中からパスワード探したりしてた 今はネットで探せばたいてい見つかる
688 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:09:44 ] パスワードを探す用途って何?
689 名前:デフォルトの名無しさん [2008/01/30(水) 14:25:22 ] >>684 どうせエラー時に表示するんなら隠す必要もないのでは? あと開くファイル名なんてFilemonでも使えばすぐ分かる.
690 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:31:39 ] 昔の雑誌に掲載されていたアドベンチャーゲームとかは暗号化してたな。 あれは打ち込む人=プレーヤーだからなあw
691 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:05:57 ] VC++6のコンソールアプリケーションで、Ctrl-Cをトラップすることはできますか?
692 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:25:17 ] ごにょぼにょする時じゃーねの?
693 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:29:26 ] >>691 SIGINTのトラップのことなら、SetConsoleCtrlHandler
694 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:17:47 ] シギント
695 名前:デフォルトの名無しさん [2008/01/30(水) 20:26:58 ] C++で 気温 : ○○℃ 湿度 : ○○% 風速 : ○○(m/s) という複数行のパラメータを上書き表示するにはどのようにすれば宜しいのでしょうか? 一行だと"\r"を使ってできたのですが。。。 教えて君で申し訳ありません(>_<) void show() { cout << "気温 : " << a << "\r" ; cout << "湿度 : " << b << "\r" ; cout << "風速 : " << c << "\r" ; } とすると全て上書きされて一行しか表示できませんでした・・・。
696 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:07:04 ] \rを\nに
697 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:15:37 ] 複数行だと、ANSI.SYS組み込み+エスケープシーケンス、 もしくはAPI直呼び出しでもしないと駄目だと思う。
698 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:34:04 ] コンソールAPI使えばいいんじゃねーの?使った事ないからしらんけど。
699 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:34:55 ] 先輩の方々に質問です。 Visual C++ 2008 Expressをインストールして、 mfcのプログラム(サンプルプログラム diblook)をビルドしたのですが、 afxwin.hが見つからないよエラーとなってしまいました。 2008 ExpressにはMFCがついていないんでしょうか?
700 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:35:24 ] はい
701 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:19:25 ] Expressにはついてないよ もしついてたから誰も有料のやつ買わないでしょ
702 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:20:53 ] >>701 修正 Expressにはついてないよ もしついてたら誰も有料のやつ買わないでしょ
703 名前:デフォルトの名無しさん [2008/01/31(木) 18:36:36 ] リストコントロールについて質問です。 レポート形式で、カラムヘッダにツールチップを表示したいのですが可能でしょうか? 可能であれば、やり方をお聞きしたいです。 よろしくお願いします。 VC.NET、MFC使用です。
704 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:47:30 ] >>700-702 ありがとうございます。 言われてみればそうですね。商売にも使えるわけですから どこの企業も買わなくなっちゃいますね。 仕方ないのでWin32 Apiでしこしこ書くことにします。
705 名前:sage [2008/01/31(木) 23:16:08 ] VC++2005ExEditionのWindowsフォームを使って簡単なアプリを作っているのですが ある程度行数のある文字列をForm内に出力したいのですがどうしたらよいでしょうか? イメージとしてはDOS窓みたいなものを作りたいのですが・・・どうかご教授お願いします。
706 名前:デフォルトの名無しさん [2008/01/31(木) 23:34:40 ] 適当にプロパティをいじる。
707 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:10:08 ] VC++2008 Expressを使って、コマンドラインベースのプログラムを作っています。 実行時の実行プライオリティ設定したいのですが、どの関数を使えばよいのでしょうか?
708 名前:デフォルトの名無しさん [2008/02/01(金) 16:00:45 ] >>704 もうこのさいだから C++/CLI でフォームアプリにしちゃいな!
709 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:01:55 ] //ChildView.cpp //winmm.libにリンクする #pragma comment(lib,"winmm") ・・・ void CChildView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。 PlaySound("WinXP_Startup",NULL,SND_RESOURCE | SND_ASYNC | SND_LOOP); CWnd::OnLButtonDown(nFlags, point); } PlaySound関数を使いたいのですが、上記のようにコーディングすると error C2065: 'SND_RESOURCE' : 定義されていない識別子です。 error C2065: 'SND_ASYNC' : 定義されていない識別子です。 error C2065: 'SND_LOOP' : 定義されていない識別子です。 error C3861: 'PlaySound': 識別子が見つかりませんでした とコンパイルエラーがでてしまいます。 どのようにすればエラーがでなくなるか、教えていただけないでしょうか。
710 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:16:35 ] #include <MMsystem.h> かな。 WIN32_LEAN_AND_MEANでもいいがMFCだとよくわからん
711 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:11:47 ] >707 SetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS ); みたいな?
712 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:37:14 ] >>707 プロセス単位なら、startコマンドのオプションでもいけるよ。
713 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:34:28 ] テンプレートの有用性と使い道がイマイチ理解できません
714 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:40:22 ] >>713 ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
715 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:04:36 ] いやいや、テンプレートの本質はそこじゃないだろう。 テンプレートの有用性が知りたければboostのソースを嫁。
716 名前:デフォルトの名無しさん [2008/02/03(日) 01:08:22 ] OpenCVをWindows form Applicationで使うための設定の仕方を教えてください。 環境は、Visual c++ 2005 Express Editionです。 ビルドのエラーを解決できなくて困っています。 VCの使い方が間違っていることが原因っぽいのですが・・・ エラー 1>c:\program files\opencv\cxcore\include\cxtypes.h(212) : warning C4793: '__asm' : 関数 'int cvRound(double)' 用にネイティブ コードの生成が発生します 1> c:\program files\opencv\cxcore\include\cxtypes.h(205) : 'cvRound' の宣言を確認してください。
717 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 07:59:00 ] 先日ここで2008 ExpressにMFCがあるか聞いたものです。 Win32を使ってコンソール型のコマンドが完成したのですが、 やはり画面をつけてあげたいなと思っています。 Win32で画面を作るのは敷居が高そうなので(リソースエディタがないなど) 他によい方法があれば採用したいのですが、どんな仕組みがあるんでしょうか。 CLIってのがそうなのかな?心配しているのは、ランタイムパッケージやら DLLをごっそりインストールすることにならないかなんです。 単純な機能のツールをネットで配布するんで、できれば身軽に、余分なものは なしでいきたいんです。そんなわたしにぴったりの何かはあるんでしょうか? 長文失礼しました。
718 名前:デフォルトの名無しさん [2008/02/03(日) 08:48:07 ] 無名 delegate とか Lambda 式とか見てると C# がうらやますぃ. それでも C++ から離れられない俺はどうすればいいですか? boost::lambda でしょうか? C++09 を待てばいいのでしょうか? C# の yield とかもうらやますぃ. LINQ は微妙.なれればいいんだろうな.
719 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 10:55:04 ] >>717 画面はdelphi 6 personalで作ればおk 簡単に作れてランタイムもいらない。開発環境は無料。
720 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:44:01 ] Visual Sturdio.NET 2003でWin32プログラムをデバッグ実行すると、 出力に 'aaa.exe': 'C:\WINDOWS\system32\XXX.dll' を読み込みました。シンボルが読み込まれていません。 というメッセージがたくさんでるんですが、これは何なんでしょうか? ググると問題無いと書いてたんですが、できれば出ないようにしたいです。
721 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:16:52 ] 無理
722 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:37:30 ] gcc用で配布されているコードを, VisualStudio2005でコンパイルしたところ, エラー 1 error C2143: 構文エラー : '{' が ':' の前にありません。 c:\program files\microsoft visual studio 8\vc\include\cmath 18 エラー 2 error C2059: 構文エラー : ':' c:\program files\microsoft visual studio 8\vc\include\cmath 18 といった無数のエラーが出ました. ちなみにcmathはインクルードしておらず, #include<stdio.h> #include<stdlib.h> #include<math.h> #include<complex> だけです. どなたかアドバイス頂けませんでしょうか? C/C++スレでも質問書いたのですが, こっちのスレの方が適切なようでマルチポストさせて頂きました.
723 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:56 ] >>722 cmathを直接includeしてないけれども complexの中でcmathがincludeされてるからなぁ。 で、エラーの原因はその情報だけじゃ分からない。 C2143やC2059はエラー出力に表示されている箇所よりも 前の場所での構文ミスで出ることもあるから。 他の場所で'}'の閉じ忘れなんてのも原因になりうる。 もしかしたらとは思うが、拡張子が.cになっているんじゃないかな? そうなら.cppに変えたらうまくいく可能性が高いな。
724 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:57:50 ] >>720 該当のDLLをリンクからはずせば出なくなると思うけど 必要になったらまたリンクからはずせばいい
725 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:58:44 ] ごめん 必要になったらまたリンクからはずせばいい →必要になったらまたリンクすればいい
726 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:03:31 ] シンボル入れとけばいい
727 名前:722 mailto:sage [2008/02/03(日) 17:15:59 ] >>723 拡張子変えたらこのエラーは解決しました!ありがとうございます! 別のエラー出たのでまた頑張ります.
728 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:18:29 ] >>722 コンソールプロジェクトを作って放り込んでるんなら stdafx.hをインクルードしないとダメかも じゃなきゃプリコンパイル済みヘッダーを使用しないにするか
729 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:19:11 ] うわ、恥ずかしい><もう解決してたのね
730 名前:デフォルトの名無しさん [2008/02/03(日) 19:21:19 ] インクルードガードは#pragma onceでしょうか? それとも#ifndef HOGOHOGE_H_IS_INCLUDEDでしょうか?
731 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:03:20 ] #pragma onceって標準の仕様なのか?
732 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:21:31 ] 標準規格には含まれていないが、 現在は殆どのコンパイラで通るようになっている。gccも。 今は、対応を気にせずに使える段階に入ってるんじゃないかな。
733 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:27:25 ] よくVisualStudio自体の機能かな、で、デバッグ機能が強力だーとか聞くんですが 詳しく解説しているページとかないでしょうか? ブレイクポイントっていうのがそこでストップするっていうのはわかってたりするんですが それの使いどころが判然としなかったり、他の機能に関してもそうです
734 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:18:28 ] つ ステップ実行 ウォッチウィンドウ等で変数の中身を確認しながら実行すれば、 論理的なエラーを発見するのに死ぬほど役立つ。 呼び出し履歴を併用すれば、変数の状態も追いかけ放題。
735 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:21:26 ] ちうか、733は「デバッグ」をどのようにやればいいのかが そもそも明確に判ってないような気がする。
736 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:22:16 ] プログラマ歴20年だけどデバッグ機能ってほとんど 使ったことない。
737 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:26:22 ] 733とは違うが自分もデバッグ方法やVSのデバッグ機能の使い方を知りたいな よい書籍やサイトないですか?
738 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:27:37 ] あんまり自慢にならんね、それは。
739 名前:738 mailto:sage [2008/02/03(日) 21:30:48 ] >>738 は >>736 宛てな。 >>737 まずは、ヘルプの「デバッガの使用方法」に目を通せばいいんじゃね?
740 名前:733 mailto:sage [2008/02/03(日) 21:49:54 ] >>734 ループ部分とかループ回数分確認し続ける、とかなりそうですね・・・ 使いどころが難しそうだ >>735 バグ取りくらいの認識なんで、エラーの行見て修正 論理的なところは紙に全部書きだして直してます
741 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:30:10 ] >>740 ループを抜け出たいなら、ちょうど出た所にブレイクポイントをかけておいて 通常実行をすればいい あと気をつけないといけないのは、DebugモードとReleaseモードの違いね Releaseの場合は、普通はコードが最適化されるので、その都合上 デバッガで追いかけられない場合がある その場合はDebugモードに戻して再実行すること
742 名前:733 [2008/02/03(日) 22:42:26 ] >>741 なるほど、それなら便利そうです まだそういった作業が必要なレベルのものを組んだことがないんで実感が沸かなかったのかな・・ ありがとうございました
743 名前:733 mailto:sage [2008/02/03(日) 22:43:15 ] うわあげちゃったごめんなさいorz
744 名前:デフォルトの名無しさん [2008/02/03(日) 23:41:33 ] visualc++2005express editionをインストールしているんですが、今visualc++2008express editionがでてるじゃないですか。 なので2005をアンインストールして、2008をいれたほうがいいのでしょうか? それと2005と2008の違いを教えてください。
745 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:55:22 ] VCEEについては、そんなに変更はなかったんじゃないかな。
746 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:24:04 ] 新しいものが好きなら2008 安心を得たいなら2005
747 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:34:32 ] iostream系の日本語の処理が、2005はおかしかったって話だけど。
748 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 07:49:46 ] locel
749 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:14:59 ] >>736 自分の書いたものしかデバッグしないの? 20年前か、、CodeViewで衝撃受けたころかなー
750 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:14:18 ] デバッグ使えない奴はバグの原因が自分のコードか他人のコードか確認できないから バグを他人のせいにしやすい。
751 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:28:08 ] printfならいっぱい入れるけど
752 名前:デフォルトの名無しさん [2008/02/04(月) 12:29:02 ] 誰かご存知だったら教えてください。 VS2005のVC++でWin32ベースのDLLを作成しました。 その後セットアッププロジェクトで レジストリの編集を行うところで戸惑っております。 すでに存在する、複数行文字列値(REG_MULTI_SZ)の値に ある文字列を追加したいのですがセットアッププロジェクト上には 複数行文字列の項目がみあたりません。 セットアッププロジェクトのレジストリ編集では 複数行文字列の値を操作できないのでしょうか? いい解決方法などご存知の方、どうぞよろしくお願いします。
753 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:50:48 ] ここ初心者スレですけど
754 名前:752 mailto:sage [2008/02/04(月) 14:01:06 ] すみません、、、スレを改めます。 失礼しました。
755 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:11:55 ] 学ぼうとする姿勢がある限り人はずっと初心者だってばっちゃが言ってた
756 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:55:07 ] REG_MULTI_SZで検索
757 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:50:43 ] char buff[256]; for (int i=0; i<sizeof(buff); i++) { printf("%c", buff[i]); } をもっと速くなるようにチューニングしたいのですが どのような方法がありますか?
758 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:00:12 ] >>757 それは遅いのか? 本当に? ちゃんと最適化しても問題になるほど遅いのか? OK! それなら、取り敢えずputchar(buff[i])ではどうだろうか。
759 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:01:06 ] buff内にナル文字がないことが保証されているのなら、printf("%.256s", buff)でいいね。
760 名前:757 mailto:sage [2008/02/04(月) 18:27:20 ] >>758 ありがとうございます。 とりあえずputcharにしました。 速くなった気はしないでもないです。 >>759 困ったことにナル文字があります。
761 名前:100 [2008/02/04(月) 18:31:14 ] 先日まで動いていたプログラムを実行したところ、 リソース(ダイアログ)が表示されなくなってしまいました。 原因が全く分かりません。 エラー、警告ともに0です。 実行できていたときから修正などは一切していません・・・何が原因でしょうか? どなたかお分かりの方、お教えて頂けないでしょうか><
762 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:38:36 ] >>760 斯くなる上は、fwrite(buff, sizeof(buff), 1, stdout)だ。 # 変わらんと思うけどねぇ。
763 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:40:54 ] >>760 sizeof(buff)を変数に移して使った方が速いんじゃないかな
764 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:49 ] >>763 sizeof(buff)は定数だから心配なし。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:51 ] >>761 それだけじゃエスパーじゃない限り返答不能です。 ダイアログ呼び出し前後のソースを公開してください
766 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:59 ] 質問です。最小化の動作って、指定した座標などに向かって動作させられますか? 可能ならどんな関数を使えばいいか教えて下さい。お願いします。
767 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:48:29 ] >>764 そうなん?てっきり値が変わらなくても毎回サイズ計算するものだと思ってたよ
768 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:52:14 ] >>766 簡単には出来ないと思うけど、自分でウィンドウサイズと位置を制御して アニメーションさせれば似たような事ができると思うよ
769 名前:100 [2008/02/04(月) 18:53:56 ] 申し訳ございません。 ソースは下記の通りです。 int PASCAL WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Ret; hPrevInstance = hPrevInstance; lpCmdLine = lpCmdLine; nCmdShow = nCmdShow; // Create Dialog Ret = DialogBox( hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DIO_Sample ); return Ret; } 前回実行させて動作確認できたときから何も触っていない状態で、 今日実行させたらリソース画面が出てこなくなりました。 プログラムの問題なのでしょうか?
770 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:57:07 ] >>767 計算するって言ったって、何を計算すると思ったのかね。 まさか、size_t foo = 4; は計算すると思わないだろ? size_t foo = sizeof(int); は? 勿論、size_t foo = sizeof(buff); だって同じことだ。
771 名前:757 mailto:sage [2008/02/04(月) 19:00:30 ] >>762 おぉ!これは速そうですね!
772 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:10:53 ] >>768 そのアニメーションをさせる関数が分かりません; SystemParametersInfoはアニメーションを指定の座標へ行わせるものではないんですよね? なんて検索したら見つかるでしょう・・
773 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:32:34 ] 何がしたいのかいまいち分からないな。 既定の動作だと最小化するとタスクバーに入るけど それをどうしたいの? もしかしてタスクトレイに入れたいとか?
774 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:33:40 ] >>772 定期的にSetWindowPosでも呼び出して座標とサイズを指定してやればいいんじゃないかと
775 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:50:10 ] >>770 計算というか、中にある型やバッファのサイズの値を調べて取得する処理って事かな 内部的動作に詳しくないから、そういう処理は別になくて、バイナリコード的には 調べたサイズの値が直接入っているかもしれないけど。
776 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:08:44 ] wikiをみると「コンパイル時に計算される」とあるね。 てことはバイナリコード的には取得した結果が直接入ってるって事か ttp://ja.wikipedia.org/wiki/Sizeof
777 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:14:24 ] >>773 そうです。タスクトレイへアニメーションつきで最小化をさせようと考えてます。 今、タスクトレイの座標取得をし、GetWindowRectで自ウィンドウのサイズを取得し、 DrawAnimatedRectsで自ウィンドウ位置からタスクトレイへアニメーションを考えてやってるんですが、少々問題がありまして。 文で説明するのが難しいんですが、ウィンドウは最大化状態ではないのに、アニメーションがウィンドウ一杯のメニューバーの大きさから タスクトレイへ向かってアニメーションされてしまいます。それを自ウィンドウサイズに合わせる方法が全く分からず悩んでます。 >>774 DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか?
778 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:15:53 ] XPでの最小化の挙動を見ると、タイトルバーだけが縮小しながらタスクバーに向かう感じだな 同じような挙動にしいなら、タイトルバーサイズのサブウインドウを用意して それを縮小アニメーションさせつつ指定座標に移動させていき、指定座標にたどり着いたら 元のウィンドウを非表示にする必要がある。 何に使うのかは知らないけれど。
779 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:30:35 ] >>777 よくわからんけど、>>778 の一行目みたいなウィンドウズ準拠の動きは嫌だってこと? ウィンドウ全体が縮小しながら移動するようにしたい? そうなるとやっぱ定期的にSetWindowPosでセットするしかないんじゃない?
780 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:39:35 ] >>777 >DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか? GetWindowRectで取得したRECT構造体のデータを使いたいって意味なら RECT構造体っていうのは、 left→左上座標 X top→左上座標 Y right→右下座標 X bottom→右下座標 Y の4つで構成されてるデータ。 SetWindowPosにはleft、top,、right - left、bottom - top の値を設定すればいい
781 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:41:16 ] >>779 >>778 のような動きをさせたいんで回答としては有難いものなんですが、タイトルバーサイズのサブウィンドウを用意する必要があるんでしょうか? DrawAnimatedRectsのRECT構造体はタイトルバーサイズの数値が入ってればいいってものではないんですか? 開始点のRECTには、タイトルバーサイズの数値がそれぞれのメンバに入ってるんですが、 何故か最大サイズのタイトルバーからアニメーションが始まります・・ てゆーか、新しくそれ用にサブウィンドウを用意するのが良く分からない・・・w それもまた調べなければですね^^;
782 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:43:44 ] >>780 レスが食い違いました。 ちなみになんですが、SetWindowPosってのはウィンドウレベルの指定と、ただ画面を動かすものではないんですか?
783 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:46:58 ] SetWindowPosはサイズも指定できるよ というかDrawAnimatedRectsAPIで普通に>>778 の動きになるような気がするんだけど 実際にそういうの作ったことないから俺は発言控えた方がいいな。 混乱させるだけみたいだし。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:09:18 ] >>782 と、言いつつ、試しにコレだけやってみたけど普通に動いてるよ なんか範囲の設定が間違ってるんじゃない? RECT rect, rect2; GetWindowRect( hWnd, &rect); rect2.left = 750; rect2.top = 580; rect2.right = 800; rect2.bottom = 600; DrawAnimatedRects(hWnd, IDANI_CAPTION, &rect, &rect2 );
785 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:17:00 ] >>784 ありがとうございます。 私のは何が違っているのか判明しました。 上ではタスクトレイの座標を取得し、と書きましたがトレースしたら取得できてませんでした;; HWND tray; RECT stray; tray = FindWindow("ModelApp","SysPager"); GetWindowRect(tray,&stray); では取得できてませんでした。 DrawAnimatedRectsの方の使い方や考え方はあってたのに、こっちが違ったとはorz FindWindowはこの記述じゃいけないんですかね? ModelAppはエントリポイントで指定したClassNameです。
786 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:29:37 ] >>785 参考になるかな?これまたやった事ないんで確証はないけど ttp://www.geocities.jp/g_e_k_o_g_e_k_o/column/column.html
787 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:24:42 ] >>786 取り敢えずなんですが、以下のように記述してやってみましたが出来ませんでした; HWND getTrayToolbar(HWND hToolbar) { HWND hTrayWnd, hNotifyWnd, hSysPager; hTrayWnd = ::FindWindow("Shell_TrayWnd", NULL); if (hTrayWnd == NULL) return NULL; hNotifyWnd = ::FindWindowEx(hTrayWnd, NULL, "TrayNotifyWnd", NULL); if (hNotifyWnd == NULL) return NULL; // OSの違いを吸収 // SysPagerが取得できなかったときは、win2000,Meと仮定し、 // TrayNotifyWnd直下にToolbarWindow32がある可能性にかける。 hSysPager = ::FindWindowEx(hNotifyWnd, NULL, "SysPager", NULL); if (hSysPager == NULL) hSysPager = hNotifyWnd; hToolbar = ::FindWindowEx(hSysPager, NULL, "ToolbarWindow32", NULL); return hToolbar; } HWND tray; RECT stray; getTrayToolbar(tray); GetWindowRect(tray,&stray); これでstrayに座標が入ってるはずなんですが、表示してもちゃんとした数値は入ってませんでした。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:31:40 ] >>786 変に改造したのがよくなかったです。 HWND getTrayToolbar(HWND hToolbar) { を HWND getTrayToolbar(void) { に戻し、 getTrayToolbar(tray); を tray = getTrayToolbar(); にしたところ取得できました。 初心者の分かりづらい質問にも親切に答え、参考サイトを調べて頂いたりトレースして頂いたり本当に有難うございました!
789 名前:デフォルトの名無しさん [2008/02/04(月) 23:38:23 ] Visual C++6.0 (WinNT4.0)で古いシステムのメンテナンスをやることになって しまいました。VB5.0/6.0やVB.NET,C#.NETは使ってきましたがC++を実務で するのは初めてです。 ソースを修正してデバッグモードで実行しても、デバッグウィンドウで表示される 結果は元のソースでの処理結果のままなのですが、こういうものなのでしょうか。 (ビルドして生成したDLLは修正したとおりに動く) また、ビルド時に構成でReleaseとDebugが選択できますが、これの違いは なんでしょうか。構成をDebugにしてもDLLは生成されますが、本来はReleaseで 作るべきものなのでしょうか。
790 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:13:20 ] Debugビルドだと色々なエラーチェック用のマクロが定義されたり、 メモリ領域を利用する前に特定の値で初期化したりしてバグを発見しやすくしたり、 実行ファイルにデバッグ用の情報を埋め込んだり、最適化を無効にしてデバッガで追いやすくしたり。 つまり、デバッグ向けで速度が遅い、実行ファイルがでかい。 なので開発はDebugビルドで製品として出す場合はReleaseビルドかな。普通は。 VC6.0しらないし、デバッグウィンドウが何を指して言っているのか分からないけど Releaseビルドだとうまくデバッグできないかもね。
791 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:31:39 ] 済みません、教えてください。 VC++で作ったプログラムで、例外が発生したときにデバッグ情報をファイルに 書き出すようにしたいと思うのですが、変数領域についてよく分からないのです。 ファイルアクセスとか例外が起きそうなところに__try,__exceptブロックを作って GetExceptionInformation()で例外情報を取り込んで、 レジスタの値を調べて、スタック情報を記録するところまではできました。 ただ、これだけだとポインタの指すデータが残らないので不便だと思い、 データの領域も記録しようと思うのですが・・・どこら辺を記録すればいいのか 分かりません。 いろいろ調べたところ、.dataセクションと.bssセクションの領域はファイルヘッダから 計算できる(他に方法があれば教えてください)ことは分かったのですが、ヒープ領域の アドレスってどうやって調べればいいのでしょうか? あと、変数って.dataセクションと.bssセクションとスタックとヒープ領域に作られる と思ってたんですけど、他の領域にも作られるんですか? 済みませんが、よろしくお願いします。
792 名前:789 [2008/02/05(火) 00:36:53 ] >>790 ご回答ありがとうございます。 やはりReleaseビルドですべきですか。 ちなみに今、デバッグウィンドウに処理結果が反映されない、といっているのは Debugビルドのものです。
793 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:44:59 ] >>792 デバッグウィンドウってのは自動変数とかをのぞく奴? ブレークポイント仕掛けてステップ実行してけば普通は値が反映されると思うけど。 正直よくわからん。
794 名前:789 [2008/02/05(火) 01:03:15 ] >>793 そう、普通にブレークポイントで止めて、ステップ実行しながら変数の値を 追っかけていくのですが自分が追加したロジックを無視してしまうのです。 DLLを生成するとそのロジックを反映したもので動作するので不思議です。
795 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:10:35 ] 支障がないならリビルドしてみるとか・・
796 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:14:45 ] リリースビルドで無視するのなら>>741 の理由で普通にある事なんだが デバッグビルドで無視するのは本当に飛ばしてるのか、 ブレイクポイントが適切な行に設定されてないのかどっちかかな
797 名前:789 [2008/02/05(火) 01:14:58 ] >>795 とりあえず、本来は修正結果がデバッグでも反映されるべき、っていうのは わかったのでまた試してみます。ありがとうございました。
798 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:22:13 ] >>788 その引数の渡し方だと、実際に引数として渡した変数そのものではなくて 別の変数が関数内で作られてしまうから取得はできない そういう場合は、HWND getTrayToolbar(HWND &hToolbar) と記述すると、実際に渡した変数にそのまま格納される じゃなければ、HWND *lphToolbar などとしてポインタを引数で渡すとか。
799 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 06:31:15 ] Debugビルド = VisualStudioのデッバッガ用のビルド デバッガ入れてない環境では動作しないしない可能性がある。 ビルドしたプログラムの配布禁止(ライセンス違犯)
800 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:19:38 ] >>799 違犯ってなんだよ。違反なら判るが。 >>797 古いままのDLLが動いているって話か?
801 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:33:39 ] 関数名を入力すると引数とかがポップアップ表示される機能は、プロジェクトを作成しないと働かないみたいですが、 cppファイルとかを単体で開いた時にも機能するようにはできないでしょうか?
802 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:22:36 ] 同じ関数名だってリンクされるものが違ったら別の関数なんだから そんなの無理に決まってるだろ
803 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:46:24 ] リンクとか関係あるの?
804 名前:デフォルトの名無しさん [2008/02/05(火) 21:48:18 ] goto label
805 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:16:22 ] >>801 秀丸に単語補完機能がある。それで似たようなことはある程度可能。 と言ってもこういう質問がでる時点でIDEとかエディタとか知識が少なめに感じる・・・
806 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:48:18 ] >>803 同名の関数を保持したライブラリやオブジェクトがハードディスク上に複数あるとする。 そのいずれも呼び出し側のcppファイルとは異なったフォルダにある。 さて、呼び出し側のcppファイルを解析するだけで、複数ある同名関数の中の どれを呼び出せばいいのかがわかるだろうか?
807 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:02:48 ] ヘッダだけで情報は充分じゃねーの。 インクルードパスさえなんとかなればな。
808 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:59:56 ] まあどうにもならないけどな。
809 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:17:59 ] >>806 どれを呼び出せばいいかなんて分かる必要があるの? 引数ならヘッダ見れば分かるし、というか分からないとコンパイルできないだろ パスの設定は見落としてた
810 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:14:00 ] VCのIDEはプロジェクトを作成して使う前提なんだから 嫌ならIDE使わなきゃいい
811 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:06:06 ] >>809 ごめんごめん。 ライブラリやオブジェクト ↓ ライブラリやオブジェクト、それに付随するヘッダ という事で。
812 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:30:39 ] しかしVSはcppとかの拡張子に関連付けたりするんだよな。 インストール直後いつものエディタが起動しないのであせるw
813 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:34:27 ] >>809 どうしてもcpp単体で見られるようにしたいと言うんなら 自分で検索するインクルードヘッダの参照パスを指定できるエディタでも作ればいいよ。
814 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:35:29 ] >>812 インストール時に関連付けの設定できなかったっけか
815 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:41:22 ] >>814 できる、、けどOSから順番に入れなおしてるとインストール順によって 状況が変わるみたい。
816 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:15:59 ] >809 だからプロジェクト作らないとコンパイルもできない。 プロジェクト作らずにコンパイルする方法もあるが
817 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:47:41 ] Unixでpthreadを使ってマルチスレッドプログラムを作ってきました。 VisualC++では何を使ってマルチスレッドにするのが一般的ですか?
818 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:50:07 ] createすれっど
819 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:44:23 ] >>817 状況によって何を使うべきかが変わるので 一般的とかそんなの無い。
820 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:09:27 ] 強いて言うなら、どれも結局Win32 APIのCreateThreadに行き着く。
821 名前:デフォルトの名無しさん [2008/02/06(水) 19:11:48 ] メニューに関して質問です。 CreateMenu(), AppendMenu() を使用して "ファイル(&F)" [POPUP] (hMenuFile) "ファイルを読み込み" セパレータ "履歴" [POPUP] (hMenuRecent)→ "&0 " + path セパレータ 終了(&X) な感じに作成し、履歴からポップアップされるpathを選んだ時に GetMenuItemRectで位置を取得しようとするのですが、 インデックスを試しに0にして値を調べて見ると、 hMenuFileの時でもhMenuRecentの時でも同じ、つまり"ファイルを読み込み"の位置情報しか取得しません。 インデックスを1にすると、0の時のtopに履歴からポップアップされたメニューの縦幅がプラスされた値になります。 ちなみに、上の二つのメニューハンドル値は、ちゃんと違う値でした。 色々条件を変えながらやってるのですが、どうしても path にあたる位置情報取得出来ず、、どの辺が間違ってるのでしょうか?
822 名前:デフォルトの名無しさん [2008/02/06(水) 20:55:36 ] 今DXライブラリをインストールとMicrosoft Platform SDKもダウンロードしてライブラリを使うためにhomepage2.nifty.com/natupaji/DxLib/dxuse_vc2005express.html#R3 を参照にして設定してたんですが、 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ WaitKey() ; // キー入力待ち DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } で、------ ビルド開始: プロジェクト: test2, 構成: Debug Win32 ------ コンパイルしています... DrawPixel.cpp リンクしています... LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。 ビルドログは "file://c:\Documents and Settings\user\My Documents\Visual Studio 2005\Projects\test2\Debug\BuildLog.htm" に保存されました。 test2 - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== となって進みません。どうすればいいのでしょうか? よろしくお願いします。
823 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:13:07 ] >LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。 そのライブラリをリンクしてください
824 名前:デフォルトの名無しさん [2008/02/07(木) 08:57:44 ] ソリューションをビルドするとき,複数のプロジェクトを 依存関係に注意しながら並列にビルドすることができますよね? 一つのプロジェクトに含まれる複数のコンパイル単位を 並列にコンパイルさせるということは VC++ の IDE では 無理なんでしょうか? GNU make だとできるんですが,できれば IDE で できればいいなと思っています.
825 名前:824 [2008/02/07(木) 09:07:37 ] Visual C++ 2008 からは /MP があることを発見したのですが, これって /Yc や /Gm と競合するんですね. /Yc は別途プリコンパイルヘッダを作ってやればいいだけなのですが, /Gm ってはずしちゃうと逆効果なのかなぁ. /Gm の効果をいまいち実感できていないのではずして /MP 使った方がいいですかね?
826 名前:デフォルトの名無しさん [2008/02/07(木) 09:40:24 ] //あいうえお class Aiueo{ 定義 }; のように書いておけば IntelliSense で Aiueo のインスタンスを ポイントしたときに「あいうえお」も含めて表示してくれたり しませんかね? C++ ではコード内のコメントでドキュメンテーションするのは 無理なんでしょうか? C# だとその辺の機能があるんですが・・・
827 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:05:59 ] >>825 使った方がいいですかねじゃなくてさ 使ってみればいいじゃない
828 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:27:42 ] 本人に違いがわからないならどっちでも同じこと
829 名前:デフォルトの名無しさん [2008/02/07(木) 13:17:27 ] カット&ペーストなどによりインデントの違う コード(タブが 2 と 4)が混在しているとき、 一気に整形し直すことってできないでしょうか? C#では貼り付けた時に自動的に整形してくれるのですが C++では無理ですか?
830 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:26:29 ] C++は知らないけど VC++のエディタでできたと思う
831 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:41:29 ] C++の質問はC++スレですればいいよ
832 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:47:20 ] >829 CでよければK&Rにタブをスペースに変換する演習問題があったよ
833 名前:デフォルトの名無しさん [2008/02/07(木) 13:51:19 ] >>831 Visual C++ の IDE のエディタでの話です
834 名前:デフォルトの名無しさん [2008/02/07(木) 15:09:09 ] IntelliSenseでメンバーの補完をしようと一覧を 出しているとき private や protected のメンバを 一時的に隠したいとかできますか? どうせアクセスできない基底クラスのメンバがずらずらと・・・
835 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:45:42 ] そんなことができるって話は聞いたことないです
836 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 19:40:58 ] >>829 Alt + F8 かな。
837 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:18:48 ] >>834 >一時的に隠したいとかできますか? 「一時的に隠したい」と願うことはできます。
838 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:32:02 ] Visual Studio 2005を使ってるんですが、 F5でデバッグ開始をすると一瞬だけ 「オブジェクト テスト ベンチ」 とタイトルバーに書かれたウィンドウが表示されます。 これを非表示にする設定などありますか?
839 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:42:50 ] 出ましたお得意揚げ足取り
840 名前:ああ [2008/02/08(金) 01:14:26 ] [質問]マウスクリックすると、そのクリックされた座標にビットマップでつくったキャラクターが移動するといったものを作りたいです。 OnTimer(UINT nIDEvent)やOnLButtonUp(UINT nFlags, CPoint point) にいろいろ記述してみましたが、うまくいきません。どなたか教えてください!
841 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:19:56 ] >>838 Ctrl+F5 or DOS窓からEXEを直接実行
842 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:27:52 ] 揚げ足取りされるのが嫌なら正確な日本語を書けるように頑張りましょう
843 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:31:45 ] >>840 そのマウスクリックとやらが、どこをクリックするのかによっても変わってきます。 いろいろ記述してみましたとは、何を記述したのでしょうか。 上手く行かないというのは、何が上手くいかないのでしょうか。 その質問で答えが返ってくると本気で思っているのですか?
844 名前:デフォルトの名無しさん mailto:はげ [2008/02/08(金) 01:39:20 ] >>842 揚げ足取ってもいいけど答えになってないならレスしなきゃいい 自分はわかってるような言い方して結局説明しないとかね そんならとっととこのスレから消えればいいじゃん
845 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:41:10 ] いいからあげんなよはげ。 揚げ足取られて悔しいのはわかるが見苦しいだけだぞ。
846 名前:ああ [2008/02/08(金) 01:55:33 ] >>843 指摘ありがとうございます。 記述した内容を載せようと思ったら 行が多すぎるとのエラーがでたので分けてかきます! ////////////////////////////////////// x1,y1はBITMAPキャラクターの座標です。 x2,y2はクリックした位置の座標です。 ////////////////////////////////////// void CMiyazaki_anime1View::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください SetTimer(ID1, TIMER_TEXT1, NULL);//テキスト1を処理するタイマーセット CView::OnLButtonUp(nFlags, point); }
847 名前:ああ [2008/02/08(金) 01:56:37 ] つづき! void CMiyazaki_anime1View::OnTimer(UINT nIDEvent) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください if(nIDEvent == ID1){ //IDによって処理を変える if(x2>x1 && y2>y1){ for(i=10,j=10;i<=x2-x1,j<=y2-y1;i++,j++){ x1+=i; y1+=j; } CRect rc; GetClientRect(&rc); bmpID = (bmpID+1) % 3; //表示するBMPを変更する } と今は記述しています。 OnTimerのif文に関しては、このときの条件で成功したらさらにif文を追加 しようとおもったのですが、失敗したためこれしか書いていません。 また、これで実行すると、キャラクターがいっきにマウスクリックした場所に 移動してきてしまいます。 キャラクターが歩くようにスムーズに動いてほしいです。 ちなみにクリックする場所はウインドウ内です。
848 名前:デフォルトの名無しさん [2008/02/08(金) 09:38:34 ] msdn2.microsoft.com/en-us/library/aa448631.aspx コード中のコメントを IntelliSense で表示させる機能は Visual Studio 2005/2008 にはついていないの?
849 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:44:07 ] TODOのコメントはそこに何か書いたら消せよw 少なくともここにあげるときくらいは。 for文の判定式のカンマは意味があるのか?
850 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:28:42 ] >>847 MouseButtonDownで、マウスの位置をメンバ変数に保存する。 Timerイベントが発生するたびに保存した位置に少しづつ移動させる。
851 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:33:56 ] VC++6.0とSDK。新規ダイアログ挿入からダイアログリソースを操作 出来ますが、クラスウィザードを使おうとするとオブジェクトIDが 出ないので何もできないです。解決方法はありますか?
852 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:17:44 ] 何をやりたくてクラスウィザードを使おうとしてるわけ? クラスウィザードが何かわかってる?
853 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:09:11 ] やりたいことはデータの受け取り。オブジェクトID(IDD_EDIT1みたいなの。) が出ないからメンバ変数が設定できずに値のやり取りが出来ない。 エディトボックスから数値の受け取りが出来れば方法は何でも良いけど。
854 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:13:30 ] >>851 MFCクラスの作成>CDialogで作れる。
855 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:47:02 ] 挿入 、クラスの新規作成、からGenericクラス以外選択できない のですがMFCクラスの作成はどうすればよいのでしょうか?
856 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:08:10 ] >>855 MFCプロジェクトで無いなら諦めろ。 Express版は論外。
857 名前:821 [2008/02/08(金) 20:41:10 ] 他のレスに埋もれてしまったみたいですが、 >>821 のような状況が未だに解決出来ず、助言頂けませんでしょうか。。
858 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:28:37 ] 読む気がしないからスルーだろ
859 名前:838 mailto:sage [2008/02/08(金) 21:36:20 ] >>841 さん ありがとうございます Ctrl+F5 or DOS窓ではなくF5の時出さないようにしたいんです。 一瞬しかでないんで、バーをクリックして消そうとしたんですが無理だったんで。 デバッグ中に表示→その他のウィンドウで消そうかと思ったんですが、 デバッグ中だけ「オブジェクト テスト ベンチ」の項目もなくなっていて… F5の時でないようにするのは無理なんでしょうか? 質問の仕方が悪くてすいません。
860 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:47:22 ] スルーだな
861 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:52:21 ] その問題にメリットが感じられないので興味がわかない。
862 名前:デフォルトの名無しさん [2008/02/09(土) 00:25:56 ] >>853 回答ありがとうございます! 「Timerイベントが発生するたびに保存した位置に少しづつ移動させる。」 ときの記述法が分かりません。ただ単に動かすのはx+=10;(xはキャラクターのx座標) ですよね? 今の場合はどのように記述したらよいのでしょうか?
863 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:44:53 ] ゲームかなんかか? キャラクターを移動させるのは基本中の基本だから それが分からんとなるとどうにもならん。
864 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:29:44 ] 数学の教科書でも引っ張り出してきて 一次関数でも復習したらいいんじゃないかな
865 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:34:22 ] >>862 それだと一回OnTimerが呼ばれただけで for内でクリック座標まで足してしまってるでしょ? int vx; vx = x2 - x1; if(vx > 10) vx =10; //10以上進まないようにする else if(vx < -10) vx = -10; x1 += vx; これで良いと思う。 ※x1、x2がintであると仮定してる
866 名前:デフォルトの名無しさん [2008/02/09(土) 05:50:34 ] >>865 どうもありがとうございます!865さんの書き込みがある前に自己解決しました。 でも、丁寧に指摘していただきありがとうございました☆
867 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:47:54 ] visual c++ 2008で猫でもわかるプログラミングのwindows SDK編 イントロダクションにあるプログラムをコンパイルするにはどうしたらいいですか maicrosoft SDKsにパスを通す設定はしてあります エラーがでてビルドできません
868 名前:デフォルトの名無しさん [2008/02/09(土) 09:37:53 ] >>867 なんでエラーメッセージを書かないんだ?
869 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:45:38 ] >867 そのプログラム書いたやつに直接質問しろ なんで糞サイトの尻拭いしなきゃならんのだ
870 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:57:40 ] >>867 >エラーがでてビルドできません エラーが出ると言いながら内容を書かずにいる 回答が欲しけりゃ隠蔽すんなよボケ
871 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:19:35 ] 猫でもの最初の方はVC5で相当古いからそのままじゃエラーでるよ あえて使う理由がなかったらあきらめて他のにした方がいい。
872 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:34:56 ] 一応、VC++ 2005でコンパイルできるサンプルが別ページにある。 www.kumei.ne.jp/c_lang/net2005/sample.htm
873 名前:867 mailto:sage [2008/02/09(土) 10:59:24 ] >>872 解決しました
874 名前:デフォルトの名無しさん [2008/02/10(日) 04:11:03 ] >>870 いちいち人を見下す発言するな ネットでしかエラそうにできない奴が
875 名前:デフォルトの名無しさん [2008/02/10(日) 07:45:12 ] >>874 お前もな・・・
876 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:48:13 ] >>874 >>870 の書いている事は正論だが。 見下されるのが嫌なら自力でなんとかしろ
877 名前:デフォルトの名無しさん [2008/02/10(日) 11:46:03 ] >>876 確かに正論だが、最後のボケはいらんだろ
878 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:07:57 ] hWndってなんて読むの?ふわんど?
879 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:19:40 ] h: ハンドル Wnd: ウィンドウ 読み方なんて無いと思うぞ
880 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:30:29 ] あえて読むならウィンドウハンドル
881 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:47:31 ] 頭の中ではエッチウンドと読んでる
882 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:50:58 ] hってハンドルかー だからハンドルインスタンスなのか ヒンスタンスかと思った
883 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:54:15 ] >>881 フワンドのほうがよくね? なんかつっかかるぞそれ
884 名前:デフォルトの名無しさん [2008/02/10(日) 12:55:27 ] h=はげ wnd=風 つまり、海原はるか師匠のことだったんだよ! blogimg.goo.ne.jp/user_image/41/86/2b9eb588661509edfbbb4b14947138aa.jpg
885 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:31:40 ] ちいおぼえた
886 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:20:42 ] えいちうぃんどと読んでる.意味的にこれが一番正しい
887 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:13:27 ] ウインドウハンドラじゃねえの??
888 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:47:56 ] 2005EEから2008Proに乗り換えたんですが、 いずれもReleaseビルドで実行速度を優先にしても 2008の方がexeのサイズが40kB程大きくなってしまいます 原因として考えられることは何でしょうか
889 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:28:10 ] ありすぎて困る
890 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:29:12 ] EE→Proか 出世したな
891 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:46:44 ] >実行速度を優先にしても >2008の方がexeのサイズが40kB程大きくなって なんでサイズ優先にしないの?
892 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:56:34 ] DLLからスタティックリンクに変わっていたってオチな気がしないでもない。
893 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:07:35 ] というか、なんでコンパイラバージョン変えてバイナリサイズが同一とか 思えるんだろうか?
894 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:17:58 ] コンパイルする時間でバイナリが変化しうるのにバージョンが変わったらファイルサイズくらい変わるだろ。 処理時間も当然変わるし、へたすりゃ潜在的なバグが顕在化するかもしれない。 むしろ一切変わらなかったら何を間違ったんだ!?ってなるようなことだと思うが・・・
895 名前:デフォルトの名無しさん [2008/02/10(日) 23:47:43 ] VC++ 2003.NETでビットマップをインポートして追加したんだけど、 なぜか実行してもそのビットマップが表示されません。 インポートじゃなく、新規作成でビットマップを追加すると表示されるのに・・。 なぜでしょう?
896 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:19:40 ] >>895 インポートしたビットマップと 新規作成したビットマップの色数は同じ? 違うなら同じにしてみたらどうなる? 後、表示ってのは自分で表示してるの? それともツールバーとかピクチャとかのコントロールで表示させているの?
897 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:37:01 ] Visual C++のMFCプロジェクトにおいて、 Unicode ReleaseとUnicode Debugのプロジェクト設定を追加するにはどうしたらいいの? できれば非UniocdeのReleaseとDebugは残したままで「追加」がうれしいのだが。 過去だれかがうまいことやってたの見たことあるけど、 自分でやってみたらどうやっていいかわからなかった。
898 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:03:15 ] >>897 事故レス。 ビルド構成で追加してUnicodeと_Unicode入れればおk 簡単ですた
899 名前:デフォルトの名無しさん [2008/02/11(月) 02:37:41 ] >>896 お返事ありがとうございます! 色数は同じです。 sampleBMP.LoadBitmap(IDB_SAMPLE);でリソースを読み込み、 OnDraw関数内で BITMAP bmp; sampleBMP.GetBitmap(&bmp); CDC bmbkDC; bmbkDC.CreateCompatibleDC(pDC); CBitmap *old = bmbkDC.SelectObject(&sampleBMP); TransparentBlt(bkDC, x1-bmp.bmWidth/2, y1-bmp.bmWidth/2,bmp.bmWidth, bmp.bmHeight,bmbkDC, 0, 0, bmp.bmWidth, bmp.bmHeight, RGB(255, 0, 255)); とし、画像を表示させようとしています!
900 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 04:53:41 ] 戻り値はどこがおかしい? デバッガ使ってる?
901 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:52:27 ] ふと立ち寄ったが、役に立つ情報がひとつもないな。 素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう いかにも2chらしい愉快なスレだな。。。 ざっと見るだけでも > 違犯ってなんだよ。違反なら判るが。 > 見苦しいから汚いコード貼らないでくれる? とか、いびり専門の粘着キモオタ。ゆとり世代はマジ糞だな。 質問者も聞くところがなくて困ってるんだろうが > すいません、この質問が終わったらよそに行きます。 > 見逃してください。 とかこびてるところ見ると痛々しい。なんでそこまで。。。 ネット上の我慢だと思って一時的にこびて聞いても、ほとんどたいした情報得られないのは スレ斜め読みするだけでも明らかだから、職場とか友達とかに聞いたほうが絶対いいよ。 2chもスレによっては技術系でも和気あいあいとやってるとこあるんだが、 ここは落ちるところまで落ちてる。 役に立たないくせにスレが排他的に立っていること自体が害悪。 せめてIDでも表示されるようになれば、少しは浄化されるんだろうな。 そう思わないか?
902 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:55:03 ] まぁ >素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう まさにこういうクズしかいないから仕方ない
903 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:58:57 ] そういえば、コーディング関連のMLとかいろいろあったよ。 俺も若い頃はそういうとこ入って、聞いたり教えたりしてた。 そっちのほうがいいんじゃないか。 www2.ocn.ne.jp/~links4pg/sub89.htm こんなのとか。
904 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:34:01 ] ID表示くらいで浄化されるわけないと思うがな。 せいぜいNGIDができて便利だなというくらい。
905 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:41:25 ] >901 お前が親切に対応してやれよ あれは自分が興味ある質問には答えてるよ
906 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:14:00 ] >>901 まあ落ち着けよ ふと立ち寄ったにしてはやけに饒舌だなw
907 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:51:48 ] こんな場面になんだけど、 VC++2008では、VC++2005にあった woutのlocaleのバグって直ってる? 持っている人教えて。 内容は↓ ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=250724&SiteID=7
908 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:04:27 ] 入門書読んでたらオーバーフローって単語が出てきたんだけど これってもしかしてすごいやばいんじゃ・・・ 技術があればいくらでもメモリを書き換えてすき放題できちゃうような気がするんだけど 本には気をつけろとしか書いてないんだけど、もしかしてVC++側でチェックしてくれてないの? っていうか一回ミスしたらパソコン動かなくなるんじゃ・・・VC++6.0だけど大丈夫だよね?
909 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:06:32 ] それはVC++の問題じゃなく言語の問題だからねぇ。
910 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:22:28 ] >>907 STLは正直詳しくないけど、最後から二つ目のレスのコードが動けばOKって事で良い? なら、imbueの前の行にclear挟む必要があったけど、きちんと日本語が出力されてたよ。 ちなみにVC++2008EEで試した。 個人的には、ページ単位のホイールスクロールで即落ちをさっさと直せと問い詰めたい。 逆方向に一行とか生易しいレベルじゃねえよ、これは。
911 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:26:34 ] >>908 悪意なく起こってしまった分に関しては、 OSにプログラムが強制終了させられるだけ。 メモリの中ならいくらいじったってプロセス終了、 最悪でもOSの再起動で問題なし。
912 名前:207 mailto:sage [2008/02/11(月) 21:08:45 ] >>910 ありがと。
913 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:23:42 ] woutなんて誰も使わないからバグっててもどうでもいい
914 名前:デフォルトの名無しさん [2008/02/11(月) 23:30:38 ] vistaでVC++2008をインストールして下のプログラムを書きましたが、 '#include "stdafx.h"' をソースに追加しましたか? というエラー がでます。 どうすればいいでしょうか? #include <stdio.h> int main(void) { printf("hello"); return 0; }
915 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:54:09 ] #include "stdafx.h"をソースに追加してください
916 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:00:25 ] プリコンパイルヘッダを使わない設定にしてください
917 名前:デフォルトの名無しさん [2008/02/12(火) 23:25:20 ] >>916 さん、解決しました、ありがとうございます
918 名前:デフォルトの名無しさん [2008/02/12(火) 23:25:36 ] VC++2005でプログラムを作ってネットで無料公開したいのですが、新規プロジェクトの作成で困ってます。 CLRのwindowsフォームアプリケーションとWin32のWindowsアプリケーションは、 どう違うのでしょうか?どのへんに注意して選べばいいか教えてください。 たとえば、GUIの作りやすさとか人のマシンで動かす時に必要なランタイムとか機能の制約とか。。。
919 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:30:37 ] VC++ 2005のCLRアプリケーションは実行に.NET Framework 2.0が必要。 Win32アプリケーションは、大多数のWindowsアプリケーションと同じ 普通のEXEファイルが出来上がる。 といってもVC++ 2005ランタイムが必要だけど、これは.NET Frameworkに比べれば小さい。 GUIの作りやすさはCLRに軍配が上がるけど、それだったらC#使えよと思う。
920 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:43:24 ] VC++ 2005ランタイムってなんぞ?
921 名前:918 mailto:sage [2008/02/12(火) 23:49:04 ] >>919 さん 数日調べててわからなかったので、ものすごく助かりました。 どうもありがとうございました! コンピュータ音痴でもセッティングしやすいほうを選ぼうと思います。 Win32アプリケーションのほうは、GUIを作るにはリソースエディタが必要なんですよね!? 次はその辺を勉強してみます。
922 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:02:11 ] 別に自分で手書きで.rcファイルとIDつくってもいいぞ どうせテキストファイルだ
923 名前:918 mailto:sage [2008/02/13(水) 00:10:21 ] >>922 手書きする技量が。。。 テキストなんて、、、ないですかね。
924 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:38:43 ] >>923 >>1 の猫でものWindows SDKの部分をまずは読んでみたら?
925 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:44:04 ] >>923 リソースエディタがないってことはExpressEditionってことかな? フリーのリソースエディタならXN Resource Editorというのがあるよ。 www.wilsonc.demon.co.uk/d10resourceeditor.htm 他にもあったけど失念。
926 名前:918 mailto:sage [2008/02/13(水) 02:00:45 ] >>924 さん そこがリソースに関係した記事なんですね。勉強になります。ありがとうございます。 >>925 さん Expressです;;XNResourceEditor試してみます。ありがとうございました。
927 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:55:35 ] プログラムで図形描きたいのですが手順が詳しく乗っているサイトありませんか? どのプロジェクト作ったらいいかも分からない状況です
928 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 03:24:13 ] 諦めましょう
929 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 03:29:07 ] >>927 Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え 何も知らないような奴がいきなりネットだけで知識を得ようとするな
930 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:20:55 ] >923 リソースエディタは楽できるだけで 手書きする技量がないと結局何もできません。 最初からあきらめた方がいい。
931 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:40:36 ] >>930 >手書きする技量がないと結局何もできません。 そうでもないよ 連番IDに揃え直したりする事が必要にならなければエディタで事足りる
932 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:57:28 ] 手書きが無理なぐらい馬鹿ならあきらめた方がいいということ 手書きしろとは言ってない
933 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:06:04 ] 今時普通にあるスプリッタつかって3つのViewを配置したりする プログラムを作ろうとすると もうリソースエディタではどうしようもないだろ 設定とかのダイアログにしか使えない気がするんだが
934 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:13:22 ] 複雑なことをやろうとする前提で、「何もできない」っていわれてもな
935 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:16:56 ] つか、「手書き」の意味が食い違ってないか? リソースファイルの手書きとAPI操作による手書きだと意味が違うぞ。 元々言っているのはリソースファイルの手書きの方だ。
936 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:21:52 ] リソースエディタの類は開発効率を高めるものあって 馬鹿にでも使えるためにあるんじゃないよ 馬鹿にでも使えるものがほしいならVC以外にした方がいい
937 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:29:27 ] 馬鹿馬鹿言ってる方が馬鹿だ
938 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:30:02 ] VC++に挫折するやつが多いほど俺の価値が上がるってもんだ
939 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:34:10 ] Unix系のライブラリなんかはバリバリ作れるセンパイがいたが VCはてんでわからない人だったな。 後輩の俺が世話を焼いてやったもんだ。
940 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:39:05 ] Cの関数を使うと古い形式として宣言されましたという警告が出ますが、_s付きの関数はLinux上でもコンパイルできますか?
941 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:52:48 ] コンパイラの対応状況によるんでないの?知らんけど。
942 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:55:33 ] 少なくともansi Cにはprintf_sなどない
943 名前:デフォルトの名無しさん [2008/02/13(水) 15:55:55 ] >>940 M$独自の実装だからLinuxでは無理と思われ 使い方さえ間違っていなければCの関数の VCが吐く古い形式警告は気にしなくても良いじゃん
944 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:25:01 ] Linuxでいうところのusleep(microsecond) を使いたいのですが、どうすればいいですか。
945 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:35:26 ] MessageBoxでダイアログを作ると ドラッグで移動できるけど CreateDialogで作ると移動できない。 コードはほとんど同じなのに何故 なんでしょう?
946 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:40:56 ] 移動できない、とは? 移動以外は動作してるのか? MessageBoxはモーダル(== DialogBox())でメッセージループ自前だが、 CreateDialog()はモードレスで、メインのメッセージループを使う。 その辺なんじゃないの?
947 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:30:52 ] >>946 両方自前だよ。違うところはCreateDialogのメッセージループ がbool形でdialogboxがLRESUL型ってところ。
948 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:41:48 ] CreateDialog 移動できないの検索結果 4 件中 1 - 4 件目 (0.09 秒) 普通では起きない現象みたいだから945さん以外の人は気にする必要ないかも
949 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:46:15 ] >>947 えーと、WinMainでMessageBox呼ぶと メッセージループ書かなくても動作するけど CreateDialogはそうはいかないよね? これをどう説明する?
950 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:03:40 ] >>948 サンクス。 >>946 = >949?MessageBoxがモーダル だけど?知ってる人でこういうこと聞く 人居たけど大学中退?
951 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:14:16 ] >>947 それウィンドウプロシージャ・ダイアログプロシージャのことでは? メッセージループといったら、GetMessageなんかのほうだろ。
952 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:24:37 ] 単純にウィンドウスタイルの問題じゃないのか?
953 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:35:51 ] たぶん常識では考えられないことやってるだけ
954 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:49:26 ] コードも示さず意味不明な質問するような馬鹿の分際で 答えてやってる相手に暴言はいてるようではな。
955 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:25:49 ] 違うAPI使ってんだから、そりゃ違う結果になってもおかしくないだろと思うんだが・・・ 何か俺間違ってる?
956 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:01:54 ] 950だけど、特殊な状態なようなのでこちらに問題があったようです。 >> 951 これから調べます。 >>952 詳しく。 >>955 頭良いね。
957 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:10:06 ] Visual C++ってlameのビルドとか出来るんですか?
958 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:23:31 ] 知らんけど試しにlameのソース持ってきたらVC++6のプロジェクファイルついてるね 2005でビルドしたら物はできたけど
959 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:09:05 ] rarewaresからDLL落とせば?
960 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:40:11 ] >>954 どうでもいいことでキャンキャンほえるな おまえのちんけなプライドなどに興味ない
961 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:43:39 ] >>930 おれは10年以上VC使ってるが、 rcファイルいじる必要があった場面なぞほとんどないがな。 例外はsyslog関係処理のときくらい。 おまえ、ツールを効率よく活用するということを覚えたほうがいいぞ。
962 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:43:55 ] と、ちんげ以下の微生物が申しております
963 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:44:54 ] ワロタ >>961-962 タイミング悪すぎw
964 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:51:02 ] >>929 図形かくくらい、ネットで十分だろ。というかネットのほうが便利。 いまどき本で勉強しようって感覚、おいおいって思うが。。
965 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:51:52 ] >>929 画像じゃないぞ、図形だぞ。
966 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:59:53 ] >>956 ウィンドウスタイルは関係ないだろうな、常考。 つか956はだいたいわかってんだろ、946・951あたりが正解じゃねーの。 んで、それが知りたかったことなのかい? たとえばこの辺の内容とも同じ。 oshiete1.goo.ne.jp/qa3672380.html IDないと誰が誰なのかわからなくて、めんどくせーな。
967 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:00:34 ] >>962 >>963 こういうの、いらねーから。
968 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:00:46 ] 画像というのは図形で出来ているんだぜ?
969 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:01:50 ] >>933 これがいわゆる、素人に毛が生えた素人というやつだな。
970 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:02:18 ] >>964 君が紹介してやれよ
971 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:03:52 ] >>966 お前以外はみんな俺
972 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:19:21 ] >>927 GDI+を使うのがやはり便利なのだが、 初心者向けの文献はちょっと見当たらないな。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbcon/html/vboriGDIFundamentals.asp 最近VC++のページがググッてもあまり出てこないんだよね。 MFC上でGDI+使うんであれば、 www.codeproject.com/KB/GDI-plus/gdi__and_mfc.aspx 使ってるのがVC6であれば、MSDNに MFCのチュートリアル(10ステップくらいだったかな)とサンプルがあった記憶がある。 そこに図形描画の解説もあった。
973 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:21:36 ] >>968 もういいから黙ってろ
974 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:32:42 ] >>918 あくまでおれの基準だけど、 本格的でごりごりしたGUI構成とか、COMとかOLEとかやりたいときは、 アンマネージドで。つまり非CLRで。んで言語はVC++かな。しかもVC6を使う。 そのあたりは個人的にノウハウがたまっているからというのもある。 お手軽なアプリ作るならマネージドで行く。つまりCLR。んで言語はVB.Netかな。 たとえばDB関連など最新テクノロジー使うときはマネージドで行く。つまりCLR。 言語はVB.Netでいくけど、C#のときもある。 VC+2005でお手軽アプリを作りたいという条件自体が、おれの基準と違うんだな。 >>919 と同意見ということだね。
975 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:36:51 ] >>974 ちょっと言い忘れた。 VC6のころは、C++関連の情報が主流だったけど、 2003とか2005とか2008とかの時代になると、C++関連の情報って激減している気がするんだよね。 ググッて情報が得られやすい環境を選択するというのが、けっこう生命線的に大事だと思う。 仕事だと開発環境選べないからもちろんそれでやるしかないわけだが、単なる遊びなんでしょ?
976 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 04:16:03 ] 逆切れする質問者が多いなw 同一人物かね
977 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 04:28:05 ] >>973 で、結局君は具体的に何の図形を描きたいの? ○?△?□? 2D空間図形?それとも3D空間図形? GDIで描画したいの?DirectXを使いたいの? 結局のところ何を教えて欲しいわけ?
978 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 08:43:11 ] >>958 同じく2005でやろうと思ったんですが 'sprintf' の宣言を確認してください 「現在のコード ページ (932) で表示できない文字を含んでいます」 「fatal error C1083: include ファイルを開けません」 等色々要求されます 一応仕上がって出来上がるんですが…
979 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:31:01 ] >>978 sprintf 関係はほかでも見ないか?例の sprinf_s のやつだよ。 VC自体あんまり使ったこと無いのか。
980 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:44:16 ] 事故解決しましたb 有難うございました
981 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:58:38 ] >>976 質問者じゃないっつーの。 KY
982 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:59:42 ] >>977 同じく質問者じゃないっつうの
983 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:12:26 ] >>976 下みたいな回答が多いのに逆切れも糞もない。 >927 : デフォルトの名無しさん:2008/02/13(水) 02:55:35 >プログラムで図形描きたいのですが手順が詳しく乗っているサイトありませんか? >どのプロジェクト作ったらいいかも分からない状況です >929 :デフォルトの名無しさん:2008/02/13(水) 03:29:07 >>>927 >Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え >何も知らないような奴がいきなりネットだけで知識を得ようとするな
984 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:30:43 ] >>981-982 まあおちつけよ
985 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:32:00 ] >>983 お前もな
986 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:43:47 ] プログラムでマスを描きたいのですが手順が詳しく乗っているサイトありませんか? どのプロジェクト作ったらいいかも分からない状況です
987 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:47:04 ] ます? forでライン引いたら
988 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:52:13 ] プロジェクトの作成から図形の描き方までの手順が一通り詳しく乗ってるような ピンポイントなサイトがあると本気で思ってるんだろうか ネットを使うなら情報をかき集めて統合する事を覚えような
989 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:30:42 ] リバーシとかゲームの作り方解説してるサイトならいっぱいある
990 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:53:29 ] ゲームの作り方(笑)
991 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:24:10 ] ゲームの作り方(泣)
992 名前:デフォルトの名無しさん [2008/02/14(木) 21:36:46 ] 少し分かりにくいかも知れませんが固定1次元配列を 動的に2次元配列にしたいのですが。 例えば data[0]〜data[4] data[0]〜data[4] data[0]〜data[4] data[0]〜data[4] ↓ 動的 という感じにしたいのです。 悪あがきで CArray<int[4],int[4]> arraydata; とかやってもダメでした。 くぐってみると両方動的なものはありました。 typedef CArray<int, int> CIntArray; CArray<CIntArray, CIntArray&> ar;
993 名前:デフォルトの名無しさん [2008/02/14(木) 21:38:13 ] CArray<int,int> arraydata[4]; とすれば役割は果たせますが、 これだと data[0] data[0] data[0] data[0] ↓ 動的 data[1] data[1] data[1] data[1] ↓ 動的 data[2] data[2] data[2] data[2] ↓ 動的 みたいな感じになって最初のパターンより フラグメンテーションが大きくなりそうな気がして 恐いのです。 よい方法があったら教えてください。
994 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:51:13 ] クラスか構造体にすればできるだろうけどスレ違い。
995 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:54:25 ] >>993 ポインタのポインタではだめなの?
996 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:09:05 ] >>989 詳しく
997 名前:デフォルトの名無しさん [2008/02/15(金) 00:22:06 ] VisualStudio 2005 の VC++ についてお尋ねします。 共有ライブラリなどを全て静的にリンクさせて DLL などの外部ファイルに依存しない実行ファイルを作るにはどのような設定にすれば良いのでしょうか?
998 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:47:45 ] >>988 くだらないことぐだぐだ言ってる暇あんなら、本でも紹介すればいいじゃねーか。 おれはGDI+は紹介した。VC6のTutorialも紹介した。 くだらねーんだよ。お前は何を出したんだ。