1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
239 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:59:01 ] >>236 int i=1234; char ic[50]; ic = (char[50])i; こうですか? キャストできませんでした
240 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:28:12 ] 一体何がしたいんだ
241 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:03:46 ] 冗談きつすぎるだろこれは…
242 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 09:30:00 ] int型をchar型に入れなきゃならない理由を述べよ。
243 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 09:46:01 ] >>239 あえてそういう風にキャストしたいのなら、例えば・・・ *(int *)&ic[0] = i; とか
244 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:00:39 ] &と[0]は説明のためにあえて入れただけでなくてもいける
245 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:10:37 ] memcpyでいいじゃん
246 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:43:37 ] >>242 ネットでデータ送るときに、パケットサイズを固定長にしたいときとか
247 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:54:16 ] >>243 ありがとうございます。 下記のようにしたところ int i=256; char ic[50]; *(int *)&ic[0] = i; char[]の最初の4バイトにそれらしい値が入るようになりました int=32bit char=8bit なので期待通りの結果が得られてる ような気がします これはcharの参照をintのポインタのポインタにキャストしてるんでしょうか? char[]に入れることはできましたがintに戻すにはどうすればいいかわからんので もっと勉強が必要なようです ありがとうございました
248 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:34:37 ] C++を仕事で扱い始めて自宅でも勉強したいと思っています。 そこで質問なのですがVISUAL STADIOの学生用の安いものとそうでないものとの間で機能に差はありますか?
249 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:46:05 ] >>248 C++の勉強よりも、英語を始めとした一般常識を身につけることをこそ、お勧めします。
250 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:12:06 ] >>248 仕事してるんじゃないのか? なで学生用なんだ 経費で落とせないのか?
251 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:29:10 ] EEならフリーで学生じゃなくても手に入れられます。
252 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:53:05 ] EE(笑)
253 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 16:01:34 ] っGCC/G++/MINGW
254 名前:248 mailto:sage [2008/08/24(日) 19:08:08 ] 愚かなのでわかりません(´・ω・`) あくまで個人で勉強したいので…
255 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 20:09:08 ] gcc makefileのあたりからじっくり、やったほうがいい腕になるよー
256 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:16:22 ] >>254 Visual Studio 2008のAcademicはProfessionalと同じ。 だから、同じのが欲しければProfessionalを買え。 違うのがほしければそれ以外を選べ。
257 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 22:54:44 ] Visual Studio Express Edition でググれ と一言書いてやれば済むのに おまえらほんとに卑屈だな
258 名前:248 mailto:sage [2008/08/25(月) 06:30:55 ] >>256 >>257 ありがとうございます。
259 名前:デフォルトの名無しさん [2008/08/25(月) 12:12:39 ] 質問させてください・・・ www.geocities.jp/ky_webid/win32c/010.html このページの、 ・最初にクリックした点から、次にクリックした点までを結ぶ直線を描くプログラムを作って下さい。 という例題は、どの様に書いたらいいのでしょうか? if文を使うのかと思ったのですが、頭が悪くてswitch文とうまくあわせられません・・・ 大変申し訳ありませんが、どなたか教えてもらえないでしょうか?もうだめぽ・・・><
260 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 12:17:57 ] >>259 そのページを読んでいるのだから直線を描画するプログラムは作れるよね? そのページの前提としてクリックした座標を取得するプログラムも作れるよね? 後は組み合わせるだけだから頭の良し悪しは関係ない。
261 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:47:46 ] dllのインクルードというかリンクの仕方を教えてください
262 名前:デフォルトの名無しさん [2008/08/26(火) 00:52:05 ] 久々にVC++(2008)を使っているんだけど、 構造体のデータを簡単に表示とかいう拡張機能 できたりしていない? マネージドじゃない状態で。 PHPとかPerlとかやってるとさ、print_r(オブジェクト)で オブジェクトのプロパティとか値がずらずら表示されて便利なんだよね。 標準のC++にないのはわかる。デバッグ用にそういう拡張 されてないかなぁと。 デバッガみれ? それしかないかな?
263 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:05:18 ] C++はイントロスペクティブでないから無理ぽ ってSteve Yeggeが要ってた。 pdb漁ってBinaryHackするとかしか思い浮かばないヨ
264 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:09:16 ] プログラム中なら、hoge.(ココでCTRL+SPACE) デヴァグ中なら、ローカル変数とかそういうの。 それ以外は知らん。
265 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 09:41:11 ] >>261 そのDLLに対応したインポートライブラリとリンクするか 実行時にAPIでロードして呼び出す。 インポートライブラリはDLL作成時にできるが、 DLLからLIB.EXE等を使って作ることもできる。
266 名前:259 [2008/08/26(火) 14:17:55 ] すみません・・・マジで悪いみたいですオレは理解力がなさ過ぎる・・・ 上記みたいな感じでいけるかと思ったんですが、error C2196: case の値 '513' は既に使用されています。 と出て動きません・・・ボタンクリックの1回目と2回目を分けるには、どげんしたらいいんでしょうか・・・ プログラム分けてコピペさせていただきます・・・ >>260 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HDC hDC; PAINTSTRUCT ps; int x[2] = {0,0}; int y[2] = {0,0}; switch(msg) { case WM_LBUTTONDOWN: x[0] = LOWORD(lp); y[0] = HIWORD(lp); return 0; case WM_LBUTTONDOWN: x[1] = LOWORD(lp); y[1] = HIWORD(lp); return 0;
267 名前:259 mailto:sage [2008/08/26(火) 14:20:35 ] case WM_PAINT: hDC = BeginPaint(hWnd, &ps); MoveToEx(hDC, x[0],y[0],NULL); LineTo(hDC, x[1], y[1]); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wp, lp); } すんません下記みたいな感じ、でした・・
268 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:36:45 ] case WM_LBUTTONDOWN:が2個あるぞ。 どっちかはWM_LBUTTONUPの間違いだなんてことない?
269 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:37:46 ] >>266 case WM_LBUTTONDOWNが2個あったら、怒られるだろう あと、それだとx[2], y[2]が、WndProc()抜けると消滅する static int x[2] = {0,0}; static int y[2] = {0,0}; static int index = 0; switch(msg) { case WM_LBUTTONDOWN: x[index] = LOWORD(lp); y[index] = HIWORD(lp); index = index ? 0 : 1; return 0; WM_PAINTで、ボタンクリックが2回目以降のみ描画する・・・ とか、詰めなきゃいけないところは、まだあるけど とりあえず、こんな感じでどう?
270 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:00 ] それ、いつまでもindexが0だと思うんだ。
271 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:39 ] と、入れ替えるのか、失礼
272 名前:デフォルトの名無しさん [2008/08/27(水) 16:34:08 ] Visual C++ 2008 EE で、C++ではなくC言語を使うにはどうすれば良いのでしょうか
273 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:38:15 ] ソースファイルの拡張子を.cppから.cに変える
274 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:22:17 ] Visual C++ 2008で、フォームを複数使用しているのですが、 変数の値を他のフォームに渡すことは可能ですか?
275 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:46:46 ] 可能です。
276 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:03:05 ] CodeBlocksでこれのVC++のコンパイル諸々を使うためにVisual C++ 2008 EEを入れたんですが コンパイル時にkernel32.libが開けないと言われます Visual C++ 2008 EEを標準でインストールした場合のkernel32.libの場所はどこでしょうか C:\Program Files\Microsoft Visual Studio 9.0\VC\lib 配下あたりだと思ったのですが そのあたり検索しても見つかりません
277 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:15:11 ] C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
278 名前:276 mailto:sage [2008/08/27(水) 23:33:57 ] >>277 ありがとうございます
279 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:45:12 ] >>275 どうやって渡すのか教えて下さい
280 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:09:18 ] ケースバイケース
281 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:30:15 ] アンケートの質問を複数のフォームに書いて、最終的にその回答 (はい、いいえ、どちらでもない)を質問のフォームとは別の フォームに出力したいと思っています。フォーム1の質問で集めた回答を それぞれの変数に入れ、その値をフォームに2にも引き継ぎ、変数にはフォーム1と フォーム2の値が入っているようにしたいのですが・・・教えていただけませんか?
282 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:43:53 ] 受け渡しするpublicなメソッド書くとか、プロパティにして読み書きすればいいじゃん。 普通のことなのに、何がひっかかってるのかがわからん。
283 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:23:19 ] ご回答ありがとうございます。 プログラミングはC言語を2ヶ月ほどしか学んでいなく、 Visual C++ 2008 EEも使用して2日しか経過していない ので分かりませんでした。publicやメソッドの意味を 調べようと思います。
284 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:14:08 ] まずC++/CLIを勉強しないとな。 つか.NET使うんならC#の方がいいぞ。
285 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:55:08 ] .netつかうならどう考えてもC#のほうが… C++.net好んでつかってるやついるの? いたら何がいいのか教えて欲しいくらい C++のメリットドブにすててまで.netする意味がわからない
286 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:58:41 ] でもC++/CLIはマジで最強だよ
287 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:04:27 ] >>285 283のようなやつは時々現れるが、 単にC++→フォームアプリケーションでプロジェクト作っただけで、 好みではなく気付いていないだけだと思う。
288 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:42:19 ] C#はフリーの逆アセツールでソースが丸見えなのが嫌でC++使ってまふ
289 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:52:23 ] >>286 C++習熟してて なおかつC#とかで.netつかってるなら 本当に最強かもしれんね >>288 あとランタイム配布とかめんどくさいの考えると 本気で配布するソフトはあまりC#つかわないのよね XNAのやる気のなさに絶望して近頃C++しかつかってない
290 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:53:24 ] C++/CLIは逆汗してもソースでないの?
291 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:57:08 ] やっぱVC++6.0が一番頭よさそうに見えるからつこてる
292 名前:デフォルトの名無しさん [2008/08/28(木) 21:27:59 ] ライブラリとかじゃない、普通のプログラムをデバッグしようとしているのですが、 Debugging information for 'regsvr32.exe' cannot be found or does not match. Symbols not loaded. Do you want to continue debugging ? というメッセージが出ます。(開発環境は英語版のVC++9です) Yesを選択しても、 To register a module, you must provide a binary name. という メッセージが出て結局失敗します。 このエラーメッセージの意味は、regsvr32.exeを引数なしで呼び出したためだ というのは調べてわかったのですが、このあとどうすればよいのかよくわかりません。 ツールの中などで、regsvr32.exeを削除するような操作が必要なのでしょうか? regsvr32.exeはOLEコントロールを登録/解除するために使うらしい、というのも 書いてあったのですが、まったく意味がわかってません。 どうかよろしくお願いします。
293 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:42:44 ] regsvr32.exeをデバッグしてるって マイクロソフトの中の人ですか?
294 名前:デフォルトの名無しさん [2008/08/28(木) 23:05:59 ] >>293 結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、 コンパイル終わって実行する前に、登録するために使うプログラムを選択しろみたいな メッセージが出てきて、適当にデフォルトのを選択しておいたところ、292みたいな状態になって しまいました。 ずっとLinux使ってたので、もしかしてすごく見当はずれな質問してるかもしれませんが、 いろいろ検索してもなにも引っかからなかったし、どうすればよいか、ヒントでもよいので ください。
295 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:44:16 ] String^ s = "A"; for( int i=0; i<26; i++ ){ 〜何か操作〜 func( s ); } こんな感じで、func()に、「A〜Z」まで文字列を渡したいのですが、どんな操作をするとスマートに出来ますでしょうか?
296 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:56:27 ] func(static_cast<wchar_t>(L'A' + i).ToString());はどう? iの使い道がほかになければ、こういうループにするという手もある。 マジックナンバー26が消えるのがいい(もっとも、'Z' - 'A'でも消せるけど)。 for ( wchar_t i = L'A'; i<='Z'; i++ ) { func( i.ToString() ); }
297 名前:295 mailto:sage [2008/08/29(金) 04:19:47 ] 他にも使用していたので、前者を使わせてもらいました。 ありがとうございます。
298 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:04:43 ] >>292 >ライブラリとかじゃない、普通のプログラムをデバッグしようとしているのですが、 >>294 >結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、 どっちなんだ。
299 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:20:27 ] ダイアログボックスでボタン配置したときは プロパティからデフォルトボタンに設定できるけど CreateWindowで配置したボタンを デフォルトボタンにするにはどうしたらいいですか?
300 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:30:13 ] 作った後? 作るときなら、BS_DEFPUSHBUTTON
301 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:43:58 ] >>300 作ったあとに デフォルトボタンにしたり、しなかったり したいです
302 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:14:06 ] あとでスタイル変えるのは SetWindowLongでできるけど、 どうなるかはわからん、他のボタンのDEFも外さないと無理かも? 見た目はDM_SETDEFID送ればいいみたいだけど。
303 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:18:01 ] BM_SETSTYLE でもいけた。まあいろいろやってみ
304 名前:デフォルトの名無しさん [2008/08/29(金) 19:28:50 ] >>298 すいません。 結構大きなライブラリのソースをダウンロードしてきて、それをコンパイルした後、付属の サンプルコード(こいつは結構小さい普通のプログラム)をコンパイルしようとしたんです。 なんでどっちも本当です。 結局まだわからないので、スタティックライブラリを自分で作って勉強してみてます。 でもregsvr32.exeなんて使わないっぽい。 スタティックなライブラリをデバックするときって、regsvr32.exeを使いますか? 手順としてはこんな感じ。 (1)ライブラリ作成(名前はStaticLibrary.libとします) (2)regsvr32.exe \i StaticLibrary.lib (3)このライブラリをつかうサンプルプログラムを作成してデバッグ。
305 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:32:48 ] それはない。 regsver32の対象になるのはDLLだけ。
306 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:29:23 ] >>304 exeのプロジェクトのプロパティの「デバッグ」の「コマンド」がregsvr32になってるのかな。 空にしてok押してみて。”$(TargetPath)”が入ると思う。 新しいプロジェクトを作るときのウィザードで選択を間違えたのかな。
307 名前:デフォルトの名無しさん [2008/08/30(土) 01:12:35 ] >>304 ありがとうございます。おっしゃるとおりになってました。 そこを空にして、追加のインクルードパスにboostを追加して、F7でビルドするとビルドできました。 その後、同じソリューションの中のほかのサンプルプログラムをコンパイルするごとに追加の インクルードパスにboostを追加する、という作業が必要だったのですが、これはしょうがないですか? どこかで設定すれば同じソリューション内なら一度の追加ですむとか、そういうことはできないですか?
308 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 12:47:12 ] VS2008を使っているのですが、newで確保したクラスの動的配列の内容を デバッガで全て表示させるにはどうしたらよいのでしょうか? STLのstringやvectorだと上手く表示されているのですが、何かいい方法があるのしょうか? どなたか教えて下さい。
309 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:57:21 ] 変数の後ろに、カンマと数字で
310 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 13:09:13 ] >>309 最初何のことだか分からなかったのですが、ググって見てようやく分かりました。 御回答どうもありがとうございました。 一応他の方の参考になるかもしれないのでリンク張っておきます。 ttp://support.microsoft.com/kb/198953/ja 他にもautoexp.datを使う方法もあるみたいですね。 ttp://www.cycleof5th.com/tips/index.php?date=2007-05-13 ttp://blogs.wankuma.com/melt/archive/2007/10/01/98927.aspx
311 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:21:03 ] 某動画を見ながらVC++2008をインストールしたのですが 新規作成-プロジェクトの 「VisualC++」の「空のプロジェクト」実行で ソース、リソース、ヘッダーファイルが出なく(組み込まれなく?)なりました どこかさわってしまったらしく元に戻せません 超初歩的だと思いますが宜しくお願いします。
312 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:41:32 ] 「空のプロジェクト」なんだから、そういうのが無くて当たり前。
313 名前:311 mailto:sage [2008/08/31(日) 18:34:37 ] www.nicovideo.jp/watch/sm4250927 この動画の1’28”くらいのところなんですが 空のプロジェクトなのに3ファイルが組み込まれてるんです なにか設定を変えているとかでしょうか?
314 名前:311 mailto:sage [2008/08/31(日) 18:43:15 ] 連投すいません 他の説明動画で解決できました。 前の動画は編集されてたのかな?
315 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:11:35 ] こんな動画まであるのか。 ホントになんでもあるなw
316 名前:299 mailto:sage [2008/08/31(日) 23:41:36 ] >>300 BS_DEFPUSHBUTTON も設定しましたがリターンを押しても反応しません >>302 DM_SETDEFIDを SendMessage(ウインドウのハンドル, DM_SETDEFID, (WPARAM)ボタンのID, (LPARAM)0 ); で送ってもデフォルトになってないような? >>303 SendMessage(ウインドウのハンドル,BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON,(LPARAM)0); にしてみましたがやはりだめです 配置してるボタンはウインドウ上に1つだけです ひょっとしてデフォルトボタンはダイアログでしか設定できないのでしょうか?
317 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:45:49 ] Enter打つとボタンが押されたことになるって挙動が欲しいなら、 ボタンのIDをIDOKにして、メッセージループにIsDlgMessageを組み込むじゃなかったっけ。
318 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 00:55:14 ] テキストボックスに入力中にリターン押したときに ある関数を実行したいんですが ダイアログのときはデフォルトボタンで代用してました VBとかでいうところのkeydownイベントのときにキーコードがリターンか調べて リターンなら処理をする みたいな挙動がほしいです IsDlgMessageでググったら日本語のページがひとつもないといふ
319 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 01:55:10 ] じゃあ、IsDialogMessageでググってみて
320 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 04:19:22 ] >>315 そして、 本と同じで、こういう動画も初学者向であふれるんだろなw
321 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 17:48:26 ] >>319 ググったけどよくわからんかった モードレスダイアログにしてIDOK受けるみたいな感じに解釈したんだけど コントロールのサブクラス化のほうが理解しやすかったんでそっちにしました ありがとうございました
322 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:49:31 ] すいません。 これからVisual C++ 6.0を勉強をしようと思っているんですが、 初心者向きのわかりやすい参考書があれば教えて下さい。 よろしくお願いします。
323 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:12:44 ] >>322 本題(参考書の紹介)にレスできなくてごめん。 これから勉強するのに、なんでvc6なのだ? vc6はc++の規格が固まる前のものでオススメでない。 vc9(vs2008)でいいじゃないか。
324 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:15:53 ] VC6使ってるけどC++の規格で困ったことなんかないな
325 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:21:02 ] >>323 そうなんですか? しかし会社で使用する開発環境が6.0らしいんですが・・・ vs2008はOSが2000なのでインストール出来ませんが、 vs2005ならインストールしています。 vs2005を勉強すればvs6.0にも応用出来るのでしょうか? そういうことでしたらvs2005で勉強してみます。
326 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:24:29 ] 会社で使うという事情なら6.0にしておけ。
327 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:25:37 ] ちゃんとライセンスがあるのか心配なレスだなしかしw
328 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:33:29 ] そうですね。 やはり6.0を勉強します。 話は戻りますが、初心者向きのわかりやすい参考書が あれば教えて下さい。
329 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:40:02 ] VCの場合はCかC++がある程度使えないと初心者以前なので 勉強してから出直して来てください。
330 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:44:23 ] 山本信雄のシリーズは入りとしては最高 でも、Cがある程度使えなかったらわかりません >>329 VC++とC++ってそこまで違うものですか?
331 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:53:29 ] C++はプログラミング言語 VC++はマイクロソフト社製の開発環境
332 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:59:50 ] そっか VC++はVSのC++コンパイラ群のことだと思ってた
333 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:08:30 ] ライセンスなんてそんなに(・ε・)キニシナイ!!
334 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:12:31 ] libviscawinの使い方教えてください ていうかどこで聞けばいいですか?
335 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:19:35 ] VC++単体パッケージにはコンパイラしかついてないのか
336 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:59:15 ] >>332 いやまあその理解でもあまり困らないと思う。
337 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:25:10 ] まぁ、VC6と言うとMFCを使えることを想定されるな。
338 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:11:16 ] win32だったらprograming windows (ペゾルド) C言語を知っている前提 MFCだったら標準口座MFC6.0(シルト) C++のクラスぐらいまで知っている前提
339 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 07:41:32 ] main( )で始まるプログラムとMFC使ったプログラムは勝手が違うな
340 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:35:06 ] ポインタをヘッダファイルで定義して、複数のソースから使用します。 そこでヘッダ宣言時に"_declspec(selectany)"で書くと、リンカエラーもなくビルドできます。 この"_declspec(selectany)"とは、どういったものなのでしょうか?
341 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:52:49 ] >>340 その通りの効果。リンク時に重複した定義を許し、1つにまとめる。 msdn.microsoft.com/en-us/library/5tkz6s71.aspx
342 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:03:54 ] WM_PAINTメッセージの処理で、クライアント領域の左側を白、右側を黒に塗り潰すとして、 再描画が必要な領域で条件分岐して、
343 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:06:21 ] 途中で送信してしまいまして、すいません。 WM_PAINTメッセージの処理で、クライアント領域の左側を白、右側を黒に塗り潰すとして、 再描画が必要な領域で条件分岐して、白黒それぞれ描画するか判断するのか、 描画が必要ない領域を塗り潰しても、結局システムは何もしないと思って 両方とりあえず描画するのか、どちらが一般的なんでしょうか
344 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:55:55 ] 領域を指定する
345 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:16:31 ] クライアントエリアの中は全部描く クリッピングは速度のためにある
346 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:23:30 ] 昨日勉強始めました。 LINK : fatal error LNK1181: 入力ファイル 'object\library.obj' を開けません。 というエラーが出るのですがlibrary.objを検索してもHDにはありませんし、 解決するようなサイトが見つかりませんでした。 なにか解決方法ありましたらお願いします。 環境はVisualC++2008 Expressで、コードはチュートリアル用にダウンロードしたもの。 元のコードはVisualC++6で書かれたようです。
347 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:40:55 ] それ理解できないなら別のことやった方がいい
348 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:08:18 ] どっかでひろってきたサンプルのコンパイル方法か
349 名前:デフォルトの名無しさん [2008/09/07(日) 21:02:29 ] >>273 について誰か教えてください。よく理解できません。
350 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:07:28 ] >>349 d.hatena.ne.jp/keyword/%A5%B0%A5%B0%A5%EC%A5%AB%A5%B9
351 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:11:23 ] 特に指定がない場合はコンパイラが拡張子見てどっちか判断する
352 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:33:38 ] 授業でbccを使って書いたプログラムのソース(問題.c)をVisual C++で流用しようとしたら 1>cl : コマンド ライン error D8045 : C ファイル '.\問題.c' を /clr オプションと共にコンパイルできません というエラーが出てコンパイルが完了しません。どうしたらよいでしょうか?
353 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:48:54 ] プロジェクト作るときにWin32を選ぶ。 CLR選んだらCは使えない
354 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:02:52 ] >>353 ありがとうございます。 しかし今度は 「プリコンパイル ヘッダー ファイルが旧バージョンのコンパイラで作成されています。また、C++ のプリコンパイル済みヘッダー ファイルを C で使用しています (その逆も考えられます)。」 というエラーがありました。
355 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:10:12 ] >>354 空のプロジェクト作って追加するのがいいと思うけど、 cppのプロジェクト作って追加したのなら、ソリューションエクスプローラーのとこで 該当ファイル右クリックしてプロパティ出して、C/C++のプリコンパイルヘッダーの項目のとこで プリコンパイル済みヘッダーを使用しない、にする。 あるいはプロジェクト全体でこの設定をしてもいい。
356 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:24:59 ] >>355 ありがとうございます。 何とか上手く行きましたが、最後にscanfの宣言をしてくださいというエラーが出ました。 これはどういうことでしょうか?
357 名前:356 mailto:sage [2008/09/08(月) 00:25:56 ] 正しくは「'scanf' の宣言を確認してください。」でした。
358 名前:356 mailto:sage [2008/09/08(月) 00:33:44 ] すみません。自己解決しました。 Visual C++2005からの仕様変更が原因だったみたいですね。。 お騒がせしました。長らくのお付き合いありがとうございました
359 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:34:45 ] それは2005以降出るよ。 詳しくは、そのエラーの行でF1押して出たページの「CRT のセキュリティ強化」を読むといい。 その関数使う事が決まってるなら無視してもいいし、気になるならヘルプに出なくする方法も書いてある。 scanf以外にも、printf系、str〜系で出る。
360 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 01:34:31 ] 移植性?なんだそれ?そんなの知らん! 俺はMSと心中するんだと言う気持ちならscanf_sなど_s系が付いた関数を使えば良いよ
361 名前:デフォルトの名無しさん [2008/09/08(月) 10:26:31 ] すんません VC++6.0(MFC)でテキストエディタ作れと言われたのですが、 最初の最初でつまづいてます。 プロジェクト新規作成→MFC→SDIアプリ→→で、初期のスケルトン作成。 その後ですが、IDR_MAINFRAMEのフォームの白い部分(メニューバーを除く全部 の領域)を全体的にテキスト入力欄にするにはどう操作すればいいですか? ダイアログベースのプログラムならテキストボックス置けばいいだけですが、 SDIアプリケーションの場合はどうするのでしょうか?
362 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 10:32:15 ] >>361 MFCだといくつかのやり方があって、どういう点を学習してるかによるが、、、 CViewをCEditViewに替えるだけでいけるけど、、、 Editコントロールを貼り付けるのなら、メンバーにCEditでも置いて ウィンドウのOnCreateで一緒にCreateしてやって、OnSize時に CEditをクライアントエリアと同じ大きさにしてやればいい。
363 名前:デフォルトの名無しさん [2008/09/08(月) 12:04:29 ] >>362 ありがとうございます。 なんとか後者の方法でエディットボックス設置はできました。 あとは ・起動時にウィンドウのクライアント領域と合わせる ・リサイズ時にも合わせる のようにしたいですが、ウィンドウサイズの初期値設定、クライアント領域の現在値の取得などはどのようにすれば良いですか?
364 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:10:38 ] クライアントのサイズはGetClientRect()というのがあるけど、 WM_SIZEのハンドラ、OnSizeの引数に幅と高さもあるから、それそのまま使えばいい。 起動時にリサイズ(WM?SIZE)も来るから、起動時のことは考えなくてもいい。
365 名前:デフォルトの名無しさん [2008/09/08(月) 16:42:03 ] >>364 ありがとうございます。 試行錯誤した結果、やはりCEditViewにすることにしました。 www.vcppclub.com/kouza/nextstep1/mdieditor1.html ここを見たら1行も書かずに、読み込み/保存機能はできてしまったのですが、疑問が。 ファイル読み込みのダイアログを出す→ユーザーが選択したファイルを読み込む→テキストエリアに表示 保存も同様。 これらに必要な処理がどこにも書かれていないような気がするのですが。 調べていた段階で、メンバ関数 OnFileOpen() を作成し、 GetOpenFileName();でダイアログを出し、 CFile型に読み込む手順が必要そうだったのですが、 自動生成されたソースではどこにも書かれていません。 にもかかわらず読み書きできるのが疑問です。 (サイトのサンプルはMDIですが、SDIでもほとんど同じのようです)
366 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:33:51 ] その辺はMFCとDocumentViewアーキテクチャの話だからなあ。 CWinAppからCDocument、CEditViewの操作はMFCの中に含まれている。 もちろん、自分で変更することも可能。
367 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:35:50 ] 派生した部分しか見てないんだろ
368 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:37:06 ] オリビア派生
369 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:47:07 ] VisualStudioのエディタのタブや改行の記号表示について質問があります. デフォルトの表示を変更したいのですがどのようにすればよいのでしょうか? 具体的には改行文字を$にタブ文字を>---という風に変更したいのですが
370 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:11:23 ] ひとりごとです
371 名前:デフォルトの名無しさん [2008/09/09(火) 10:49:53 ] CEditViewでの、現在表示されている文字列を格納しているメンバは何ですか? 入力されたものを文字列型にコピーして保存やらなにやらいろいろやりたいのですが。 逆に文字列型に格納された文字列を表示する方法も。 そういったテキストバッファの操作のしかたがいまいち分からないです
372 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:00:09 ] エディットコントロール自身がバッファを持ってる 普通は直接バッファいじらないでメンバ関数使ってアクセスする
373 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:18:51 ] 普通はCDocumentの派生クラスに自分でデータ構造作ってビューはその表示方法書いたりするけど CEditViewは特殊だからな。GetEditCtrl()でCEditのインスタンスが取れるのでそれを操作すればいい。
374 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:28:37 ] typedef struct tagTest { unsigned int x :1; } Test; このようなコードを見かけたのですが、「:1」は何を意味しているのでしょうか。
375 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:31:25 ] >>374 ビットフィールド
376 名前:374 mailto:sage [2008/09/09(火) 11:43:07 ] 素早い回答、ありがとうございました。
377 名前:デフォルトの名無しさん [2008/09/09(火) 13:53:02 ] >>372-373 なるほど。 CEditのメンバ関数見るとそれらしいものがあるようですね。 しかし、GetLine()のように、行ごとに取得してくる関数はあるみたいですが、 「とりあえず改行も含めて全体をCStringにコピー」するようなものは見当たらないです。 全部の行を走査してコピーする部分は自分で作成しないとダメですか?
378 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:02:47 ] 全取得はGetWindowText() これはCEditでも、CEditViewでも使える。
379 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:06:23 ] >>377 MSDNを見るときは、継承元のクラスのメンバも見よう。 GetWindowText()で取れるんじゃね? って書いてたら先を越されたw
380 名前:デフォルトの名無しさん [2008/09/09(火) 14:28:49 ] >>378-379 おぉ ありがとうございます! MSDNの見かたを訓練するようにします。 ところでもうひとつ質問が。 MainFrameのメニュー選択によりそれらの動作をさせたいのですが、 void CMainFrame::On????(){ } ↑ここの記述で、 MainFrameのほうからViewを操作するにはどのようにすれば良いですか? C(アプリ名)Viewクラスのインスタンス名が分かれば「名前.関数名」のような形 で呼び出せると考えたのですが、 どこにも宣言部分が見当たらないようです。
381 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:12:49 ] >>380 えーと、SDIだったよな? CFrameWnd::GetActiveView()でどうか。
382 名前:デフォルトの名無しさん [2008/09/09(火) 15:24:53 ] >>381 CViewのポインタが帰ってくるようで、継承して作られたC???Viewの関数は使えないようです。 CFrameWnd::GetActiveView()->関数(); このようにしてもビルドが通らないです。
383 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:32:12 ] >>382 GetWindowtext()が見つけられないようだったから、わざわざCFrameWnd::GetActiveView()の 書き方にしたのに、そしたらこれかよ・・・ CなんたらEditView* pView = (CなんたらEditView*)GetActiveView(); でいいだろ、ちょっとは考えろよ。
384 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:36:11 ] メニューから直接よべる
385 名前:デフォルトの名無しさん [2008/09/09(火) 19:30:54 ] >>383 未熟ですみませぬ・・・ おかげさまで思った通りのものができました。
386 名前:デフォルトの名無しさん [2008/09/10(水) 11:58:44 ] お世話になります。VC++6でダイヤログベースのプログラムを作っています。 ダイヤログにボタンを新設し、Classウィザードを使ってON_BN_CLICKEDメッセージ関数を使って ボタンがおされた事はプログラムで取得できるようにできました。 ボタンを何秒間押したかを調べたいのですが、ボタンが離されたメッセージがなく、 どうやって作ったらいいかわかりません。 どのようなメッセージを使えばいいのでしょうか? よろしくお願いいたします。
387 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:04:58 ] CButtonをサブクラス化して自分でLBUTTONDOWNとLBUTTONUPの時刻の差を取るしかないんじゃないかなあ
388 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:32:58 ] ボタンのイベントは押した時じゃなくて、離した時に発生する気がしたけど
389 名前:デフォルトの名無しさん [2008/09/10(水) 15:12:46 ] 数日前にVC++ 2008 Express Editionを使い始めた初心者です。 ttp://homepage3.nifty.com/ishidate/ を参考にWindowsフォームアプリケーションのテンプレで作成したのですが、 一度目のビルドは普通に実行されて表示されるものの、少しでも書き換えた後(内容に一切変化がない場合でも) 以降ビルドを行おうとするとexeファイルが見つからないと表示され、エラーが発生します。 CやC++は以前から触れていたのですが、VisualStudioの操作に関しては いまいち分からないので原因が分かりません。 どなたか分かる方は折られるでしょうか?よろしくお願いします。
390 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:16:29 ] なんかおかしいね。 PCの時計はくるってない?
391 名前:デフォルトの名無しさん [2008/09/10(水) 16:59:39 ] EXE だけど DLL としても使えるバイナリってどうやって作ればいいですか?
392 名前:デフォルトの名無しさん [2008/09/10(水) 18:07:37 ] VC6で、2003以降のXmldocumentクラスに相当するものってありますか?
393 名前:391 mailto:sage [2008/09/10(水) 19:31:29 ] 自己解決しました。とりあえず __declspec(dllexport) 付けて宣言しとけばEXEでビルドしてもエクスポートされるんですね。
394 名前:デフォルトの名無しさん [2008/09/10(水) 19:42:43 ] VC++ 2008 Proを使っています。 デバッグでプログラムを実行させると出力欄に、 「'System.NullReferenceException' の初回例外が ImageRecognize.exe で発生しました。」 と表示されるのですが、これがどの行で発生したかを調べるにはどのようにしたらいいでしょうか? どなたか教えていただけると嬉しいです _ _
395 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:45:00 ] ヌルポ
396 名前:394 mailto:sage [2008/09/10(水) 19:47:11 ] すみません、メニューのデバッグ→例外を設定することで出来るようになりました。 お騒がせいたしました。
397 名前:デフォルトの名無しさん [2008/09/11(木) 01:08:30 ] CreateProcessで新規のルートプロセスを発行した後、 親プロセスはWaitForSingleObject(hHandle, 0)を実行して 即終了させようと思っています。(UNIXのデーモンプロセス生成のような感じ) ここでWaitForSingleObject()のタイムアウト時間を0秒に設定すると 何か問題あるでしょうか?
398 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:20:13 ] そのwaitに一体何の意味が?
399 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:25:50 ] >>398 形式的に入れた方がいいのかと思ったのですが、 もしかして即終了させるならば必要ないですか?
400 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 08:08:02 ] 何のために待つのか考えろよ
401 名前:デフォルトの名無しさん [2008/09/11(木) 09:40:54 ] VC++ 6.0で、 xmlファイルを解析して読み込む/書き込む仕組みを作らなくてはならないのです が、手探りで困っております。 検索してみると、VC2003以降になればXmldocumentクラスなるものが使えるよう ですが、 VC6.0ではmsxml.hを使わなくてはならないようです。 これについての資料やサンプルがweb上にあまり無くて困っています。 また、xercesのライブラリを使う手段も打診されているのですが、 これについてはどのようにすれば良いでしょうか? ダウンロードしても構成ファイルが大量にあり、これらをどう組み込むのが検討 が付きません。 また、VC6用のサンプルのプロジェクトファイルは同梱されていたものの、なぜ かビルドが通らないようです。 こちらから入手したものです。 xerces.apache.org/xerces-c/ 次レスに続きます
402 名前:デフォルトの名無しさん [2008/09/11(木) 09:42:05 ] xerces-all.dswを開いてビルドすると エラー内容 C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691) : error C2039: 'InterlockedCompareExchangePointer' : '`global namespace'' のメンバではありません。 C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691) : error C2065: 'InterlockedCompareExchangePointer' : 定義されていない識 別子です。 cl.exe の実行エラー 外部のライブラリを使用するプログラムを作ったことが無いので、そういった部 分の基本から教えていただけると幸いです。
403 名前:デフォルトの名無しさん [2008/09/11(木) 09:51:27 ] >>401 VC2008とboostいれようぜ。 そしたら簡単。serializationとか
404 名前:デフォルトの名無しさん [2008/09/11(木) 09:55:05 ] VC2008が無料で2005より軽いことをしらんのか?
405 名前:401 [2008/09/11(木) 09:57:19 ] すんません 業務で、VC6と指定なのです。
406 名前:デフォルトの名無しさん [2008/09/11(木) 10:02:12 ] この辺参照。 これ使うとXMLの扱いがとっても簡単になりますね 基本的にはシリアライズしたいクラスのメンバにserialize関数を追加するだけです d.hatena.ne.jp/faith_and_brave/20070809/1186672741 d.hatena.ne.jp/cass_src/20070730
407 名前:デフォルトの名無しさん [2008/09/11(木) 10:04:40 ] >>405 では、boostをいれれば? コンパイルできるかは知らないけれど。 でも、msxml.hを使うのが普通ですね。標準機能なので。
408 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:04 ] ありがとうございます。 boostを研究してみます。
409 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:40 ] この辺にMSXMLの使い方かいてありますよ。 あとはMSのサイトで調べれば完璧じゃないですか? www.utj.co.jp/xml/dev/dom/dxdom1_1.html www.utj.co.jp/XML/DEV/dom/dxdom2_1.html www.sutosoft.com/oldroom/devdiary/20020505.html www.sutosoft.com/oldroom/devdiary/20040307.html hp.vector.co.jp/authors/VA014436/prg_memo/windows/vctips/006.html www.s34.co.jp/cpptechdoc/article/xml/persist/
410 名前:デフォルトの名無しさん [2008/09/11(木) 10:23:01 ] >>408 boostが動かせる(コンパイルできる) かどうかのコンパイラ別の対応表がどこかにあったのですが 忘れてしまいました。boostのホームページのどこかにあったはずです。 XMLを扱う簡単さでは、boostの方が上と思いますが VC6の機能からなるべくはみ出ないようにするには、MSXMLと思います。
411 名前:デフォルトの名無しさん [2008/09/11(木) 11:24:48 ] やはりVC6でビルドしようとすると、「ブロックが大きすぎてコンパイルできません」と出ます。 あきらめてmsxmlのほう使います。 詳しい資料ありがとうございました。
412 名前:デフォルトの名無しさん [2008/09/11(木) 15:42:25 ] >>411 MSの機能以外を使って良いなら、いったんVC2008とboostのバイナリパッケージをインストールして serializationを使ってXML操作DLLやLIBを作成してVC6でそれを利用するという手をある。 上位のライブラリをVC6で使えるかはよくわからないけど、 DLLにしてあればMinGWやBCCやVCで共通に使えるので平気と思う。
413 名前:デフォルトの名無しさん [2008/09/11(木) 15:45:08 ] boostのバイナリパッケージはここにある。次に対応している。 Visual C++ 7.1 (Visual Studio 2003), 8.0 (Visual Studio 2005), and 9.0 (Visual Studio 2008) www.boostpro.com/products/free
414 名前:デフォルトの名無しさん [2008/09/11(木) 17:15:00 ] このサイトで解説している、以下の部分 www.sutosoft.com/oldroom/devdiary/20020505.html // ●ファイルから読み込む。● lpXMLDoc->put_async(VARIANT_FALSE); VARIANT FilePath; ::VariantInit(&FilePath); FilePath.vt = VT_BSTR; V_BSTR(&FilePath) = ::SysAllocString(L"test.xml"); VARIANT_BOOL result; lpXMLDoc->load(FilePath, &result); ::VariantClear(&FilePath); わざわざファイル名を指定するのにVARIANT型を使うのは何故ですか? CString型でパス名指定したりして読めれば楽なのですが・・・ 実行ファイルと同じフォルダにtest.xmlを置いても、読み込みできていないよう です。 ::VariantInit〜::VariantClearで囲うことの意味、 V_BSTR(&FilePath) と、一見関数に見えるものに代入演算子が付いている意味など、 VARIANT型を扱う処理が全体的に分からず困ってます。
415 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:00:39 ] DOM(Document Object Model)、COM(Component Object Model)の約束なのでしかたがないのでは? Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。 特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。 この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。 COMコンポーネントは開発に使った言語やコンポーネントのある場所などに拠らず、 どの言語からでも、どこからでも利用することができる。 ネットワークを通じて別のコンピュータ上にあるCOMコンポーネントを利用する技術をDCOMと言う。 これらの技術はWindowsだけでなく、UNIXやMac OSにも移植されている。 コンポーネント開発が楽にできるよう改良された次世代のCOM+の開発が進んでおり、 Windows DNAの中核技術として期待されている。 bizex.goo.ne.jp/tool/it/8_77/209/
416 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:01:57 ] そういうのはVBで扱う前提だからVCだとめんどくさい
417 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:58:31 ] CComVariantとか使うべき
418 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:08:34 ] char str[20]とかいうのがあって strが"abcd%EFG"だったときに %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?
419 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:31:26 ] >>414 #importでのraw_interface_onlyやめろ。 それを無くすと、高水準なラッパを作ってくれてめちゃくちゃ楽になる。 例えば、loadメソッドならVARIANTやBSTRを使わず文字列を直接渡せるようになる。
420 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:32:59 ] size_t length = strlen(str); char * rp = str; // read char * wp = str; // write while (rp != '\0') {
421 名前:デフォルトの名無しさん [2008/09/12(金) 11:37:10 ] >>419 詳しく教えてください。 #importから、raw_interface_onlyを削除しました。 しかし、あいかわらずloadメソッドではVARIANT型、VARIANT_BOOL型のふたつの 引数が要求されます。 IXMLDOMDocument* を定義してから、インスタンスを生成し、ファイル名を指定 して読み込み、ノードを指定してい読み込んでくるまでの 一連の流れを教えていただけると幸いです。
422 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:46:14 ] 初心者スレでやることとは思えない
423 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:56:30 ] コピペ つ pDoc->load(_variant_t(L"majissuka.com/NewInfo.xml "),
424 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:59:33 ] ファイルなら絶対指定では file:///C:/windows/test.txt かな? test.txtでもいいとはおもう。
425 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:13:02 ] >>418 > char str[20]とかいうのがあって > strが"abcd%EFG"だったときに > %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか? > char *p; p = strchr(str,'%'); p++; strcpy(str,p);
426 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:20:56 ] これでいけたけど・・・ #include <msxml.h> #include <comdef.h> #include <atlbase.h> int main(){ CoInitialize(NULL); IXMLDOMDocument* lpXMLDoc; CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&lpXMLDoc); // ●ファイルから読み込む。● VARIANT_BOOL result; lpXMLDoc->put_async(VARIANT_FALSE); lpXMLDoc->load(_variant_t(L"test.xml"), &result); // ●ノード検索● IXMLDOMNodeList* lpNodeList; BSTR NodePath = ::SysAllocString(L"Test/Item"); lpXMLDoc->selectNodes(NodePath, &lpNodeList); ::SysFreeString(NodePath); long lLength; lpNodeList->get_length(&lLength); for (int i = 0; i < lLength; i++){ IXMLDOMNode* lpItem; lpNodeList->get_item(i, &lpItem); BSTR str; lpItem->get_text(&str); USES_CONVERSION; printf("%s\n", W2A(str)); SysFreeString(str); lpItem->Release();} lpNodeList->Release(); lpXMLDoc->Release(); CoUninitialize();}
427 名前:デフォルトの名無しさん [2008/09/12(金) 17:59:27 ] >>423-424 ,426 ありがとうございます。 やはりうまくビルドできないですが・・・ 引き続き試行錯誤しつつ、XML関連のスレのほう除いてみます。 ところで、CEdit型のエディットコントロールの、それ自身のウィンドウ内での座標をゲットおよびセットする関数ってありますか? (つまり、事後的にプログラム内で任意で位置を変更したい) SetRect(),GetRect()だと思ったらコレはこのコントロール内での座標のことのようでした。
428 名前:デフォルトの名無しさん [2008/09/12(金) 19:02:06 ] ふと思ったんだがCDとかDVDとかって Diskか? Discか?
429 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:05:27 ] Discは光学メディア Diskは磁器媒体
430 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:13:23 ] CDはソニーが作ったから
431 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:21:35 ] サンクス! そう言う区分だったのか ってことはCD/ DVDを「Disk」って書いちまった資料を全部直さないとか・・・
432 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:26:55 ] ja.wikipedia.org/wiki/Universal_Disk_Format Universal Disk Format (ユニバーサルディスクフォーマット、UDF)は光ディスク用のファイルシステムである。
433 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:30 ] >Discは光学メディア >Diskは磁器媒体 MOはどっち?
434 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:43 ] e-words.jp/w/E58589E38387E382A3E382B9E382AF.html 光ディスク 【optical disk】 データの読み書きにレーザー光を利用する記憶媒体のこと。 CDやDVD、PDなどが代表的な光ディスクである。
435 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:48:37 ] e-words.jp/w/E58589E7A381E6B097E38387E382A3E382B9E382AF.html 光磁気ディスク 【MO】 読み方 : ひかりじきディスク 別名 : Magneto-Optical disk
436 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:19:20 ] VC2008でテキストボックスに0x01と表示するにはどうしたらいいですか? unsigned char buf[2] ={0x01,0x02}; textBox1->Text = buf[0]; と実行したらエラーがでます。 error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : 1 番目の引数を 'unsigned char' から 'System::String ^' に変換できません。(新しい機能 ; ヘルプを参照) 1> 使用可能なユーザー定義された変換演算子がない、または 1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません
437 名前:デフォルトの名無しさん [2008/09/12(金) 20:24:20 ] >>436 unsigned char *buf[2] ={"0x01","0x02"}; textBox1->Text = buf[0];
438 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:40:21 ] >>437 その方法でもエラーがでまます。 error C2440: '初期化中' : 'const char [5]' から 'unsigned char *' に変換できません。 Hexデータをテキストボックスに表示したいだけなのに。難しい
439 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:14:27 ] テキストボックスに "あいう"と表示してみろ
440 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:17:46 ] >438 テキストボックスはテキストを表示する所だから Hexデータは表示できない
441 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:53:49 ] 基本的なことなんですけど 文字判定でスペースが入力されたら 「空白です」 と表示させたいんですけど、誰かご教授ください
442 名前:デフォルトの名無しさん [2008/09/12(金) 22:57:06 ] C++を初めてインスコしたんですけど、 製品の登録ってなんですか? 無料ですか?
443 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:58:38 ] 有料
444 名前:デフォルトの名無しさん [2008/09/12(金) 23:00:42 ] そうですか。 いくらですか?
445 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:09:11 ] >>438 抜粋 private: System::Void Showbutton_Click(System::Object^ sender, System::EventArgs^ e) { array<System::String^>^ Numdata = {L"0x01",L"0x02",L"0x03",L"0x04"}; if(i < Numdata->Length) this->textBox1->Text = Numdata[i]; else{ i = 0; this->textBox1->Text = Numdata[i]; } } private: System::Void NextShowbutton_Click(System::Object^ sender, System::EventArgs^ e) { i++; }
446 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:15:48 ] >441 キー入力をチェックしてもいいけど マウスで入力する場合もありえるから 入力内容が変った時のイベントでやるのが無難
447 名前:デフォルトの名無しさん [2008/09/14(日) 01:09:45 ] Express 2005で3連休プログラマーなんだけど、 String^ folderName; の ^ ってなに?
448 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:26:01 ] >>447 ハットサイン、或いは山形アクセント記号。
449 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:30:56 ] C++/CLIのスレで聞いて来いw
450 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 08:42:37 ] C++/CLIとC++は別の言語。 C++を勉強したいならVisual studioのCLRのカテゴリには手を出すな。
451 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:09:05 ] 今まで普通に使えていたのですが突然MessageBoxが使えなくなりました。 1>.\main.cpp(135) : error C3861: 'MessageBox': 識別子が見つかりませんでした とエラーが出ます。コードは if(MessageBox(hWnd,"あ","あ",MB_YESNO) == IDYES) 等で文字セットはマルチバイト文字です。windows.hもインクルードしてあるのですが何がいけないのでしょうか。 VS2008再インストールしても直りません。
452 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:32:27 ] デフォルトはマルチバイトじゃないはずだから いらんところいじってるだろ
453 名前:デフォルトの名無しさん [2008/09/14(日) 10:58:11 ] MessageBoxAだとかMessageBoxWとかにしてやってみたらー(
454 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:41:04 ] プロジェクトの設定にある文字セットってどういう意味なの? あの設定によってコンパイルが通らなくなるし。
455 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:12:52 ] マルチバイトかUnicodeか
456 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:17:03 ] >>455 exeファイルを配布する上で、文字セットの設定が問題になるの?
457 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:24:35 ] Unicode: NTネイティブ、9xでは原則として動かない マルチバイト: NT/9x両方で動くけど、NTではAPI内部で変換がかかるのでオーバーヘッド有り。
458 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:10:02 ] >>457 なるほど。参考になります。 文字コードに「設定なし」とあるけどこれは一体?
459 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:15:19 ] いや、9xの時代から、APIはAとWの両方あったような記憶があるけど。
460 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:26:05 ] >>458 基本的にはマルチバイトと同じ。 ただ、<tchar.h>の中の一部に、なし/マルチバイト/Unicodeの3つで切り替わるやつが存在する。 例えば_tcscpy→strcpy/_mbscpy/wcscpy。 mbs版は2バイト文字の2バイト目が欠ける事態にならないなどといった効果を持っていることが多い。 >>459 エントリポイントだけはあるが、実装されているのはごく一部の例外的存在。 msdn.microsoft.com/en-us/library/ms813063.aspx
461 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:32:09 ] TEXT/_Tマクロをちゃんと使った参考書って少ないよな
462 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:49:42 ] >>461 正直、文字列は、ワイドかマルチバイトか決めうちにして、それは使わないほうがいいんじゃないかって気がする。
463 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 17:39:00 ] 自分ひとりでやるなら勝手だろうけど マクロ使ってない糞サンプルばらまかれると迷惑する
464 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:07:04 ] 大人数でやるところほど、きめうちしたほうが無難っていうか。 ジェネリックテキストつかってても、ワイド文字版と、マルチバイト版と両方でテストやってるところなんてほとんどないだろうし。 文字列を編集してる処理とか、ちゃんと、マルチバイトでもワイド文字でも動くように意識して書いてなかったりするだろうし。 テスト以前に、コンパイル通すとかもやってないだろうし。 古いコードをあさったら、char *p = _T("・・・・"); みたいのいっぱいあるだろうし。 中途半端に対応しても、どうせ片方でしか動かないコードなら、きめうちのほうが安全だと思われ。
465 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:58:07 ] そういう場合は開発環境も限定するだろ 特定の環境でしかコンパイルできないサンプルをばらまかれると皆が迷惑する
466 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:24:42 ] いや、ジェネリックテキストなんて、VCにしかないでしょ。
467 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:28:35 ] >>466 またまた御冗談を 真面目な話、BCCでもGCCでも<windows.h>が使えるやつならどれでも使える。 <tchar.h>も結構存在するし。
468 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:36:49 ] それでもWindows限定じゃん。
469 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:42:29 ] まあWindows APIだしね。
470 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:48:41 ] >>465 それはジェネリックテキストを使っても、ぜんぜん解決してない。
471 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:11:10 ] C#でメソッドなどの一行上に"///"書くことで自動生成されるXMLのドキュメント /// <summary> /// /// </summary> /// <param name="i"></param> /// <returns></returns> public int hoge(int i) { return 0; } このような機能はC++ではないのでしょうか クラスやメソッドをオブジェクトブラウザで参照したいのですが,うまくいきません. どのようにすればいいか教えていただけませんでしょうか. お願いします.
472 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:19:51 ] C++はプログラミング言語です
473 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:00:10 ] テキストボックスを使わずに、キースキャンで読み取った文字から漢字辞書変換をしたいのですが できるでしょうか?どのようにすればいいですか?
474 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:15:21 ] IME使う
475 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:29:19 ] 説明してあるHPなんかあったら紹介して欲しいです
476 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:44:21 ] つ[msdn]
477 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:52:50 ] 初心者にやさしくヽ(`Д´)ノ
478 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:03:22 ] msdn.microsoft.com/ja-jp/library/cc448105.aspx ここにIME関連のapiの一覧があるから 適当なapiの名前でぐぐれば何か見つかる
479 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:06:30 ] ありがd
480 名前:デフォルトの名無しさん [2008/09/16(火) 18:04:42 ] VC6でDirectXを使いたいです。 本格的なゲーム作るわけじゃないんですが、 ある業務用ソフトの画面効果で軽い2D処理が必要になりまして。(スプライトが 使えればいい程度) ウェブを見た限りではVC6で使う情報はあまり無かったようです。 9.0のSDKと、VC6で使えるようになるという2004 Summer Extrasは入手しました。 ライブラリをインクルードするところから知りたいです。
481 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:22:45 ] 質問です。 VisualC++ 6.0 MFC WindowsXP SP3 の環境で作成した、画面をビットマップ保存するプログラムを、 別のPC VisualC++ 6.0 WindowsXP SP3 の同じ環境で実行すると、作成されたBMP画像が「描画できませんでした」となってしまいます。 この場合、どのようなことが原因だと考えられますでしょうか? また対応策はあるのでしょうか? どうかご教授おねがいします。
482 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:29:52 ] 業務用ソフトだったら外注に頼むだけ
483 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:30:32 ] 多分、ビットマップが微妙に正しく生成されていないのだろう 別のPCで、BMPファイルは何と関連付けされてるの? ペイント?Windowsのビューア?IE? 対策:「画面をビットマップ保存するプログラム」のソースを見直す
484 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:42:21 ] 画面をビットマップ保存するプログラム 作成されたBMP画像が「描画できませんでした」 本当にお前が作ったプログラムか? ソースコピペしたら動きましたレベルだろ
485 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:54:08 ] >>483 Windowsのビューアです。プログラムを見直したいと思います。 >>484 そうです、申し訳ありません。 ですが、同じ環境のPCなのに失敗するのは何が原因と考えられるのでしょうか? よろしくお願いします。
486 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:19:45 ] 考えられる原因は無限にある。 せめてどこで失敗するのか突き止めろ。
487 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 06:44:43 ] >>481 モニターのカラーのビット数が違うとか
488 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 06:48:41 ] 何も知らない初心者がC#ってやつから始める事にしたお。 その次はJAVAかな。地味に頑張るお。新兵に激励を頼むお。
489 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 07:58:15 ] 貴様は人間ではない!糞ほどの価値もない! C#訓練に生き残れたら、プログラムの司祭となる! サービス残業に命を捧げるTI土方だ!
490 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 09:22:37 ] ビットマップの作成で失敗するか、表示で失敗するかぐらい確認しろ それぞれの環境で両方のビットマップ表示したらわかるだろ
491 名前:デフォルトの名無しさん [2008/09/17(水) 16:09:06 ] std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
492 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 16:44:02 ] スレ違い
493 名前:デフォルトの名無しさん [2008/09/17(水) 16:54:08 ] >>492 死ねアホ。
494 名前:デフォルトの名無しさん [2008/09/17(水) 16:57:32 ] std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
495 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:05:43 ] ここC++スレじゃないけど
496 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:07:42 ] >>494 boost::ptr_vectorを使うか、boost::smart_ptrでポインタを包む
497 名前:デフォルトの名無しさん [2008/09/17(水) 17:08:26 ] Visual 「「「「C++」」」」」」
498 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:08:28 ] ×boost::smart_ptr ○boost::shared_ptr std::auto_ptrはだめです
499 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:12:02 ] >>496 >>498 要するに勝手にdeleteまではしてくれないということですね? boostの使用も検討してみます。ありがとうございました。
500 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:12:37 ] 数学の授業で小学校レベルの算数の質問されたら迷惑だろ いちおう関係なくはないけど
501 名前:デフォルトの名無しさん [2008/09/17(水) 17:15:39 ] ↑今日一番のアホ
502 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:31:33 ] >492,495,500 痛いな
503 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:00:34 ] 寧ろ>493,497,501,502が痛い罠。
504 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:14:29 ] いやいや、俺に言わせれば >502,503 が必死w
505 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:15:20 ] C++やC#やるのにどのソフトがお勧めとかある?
506 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:28:10 ] とりあえず2008 Express Edition使っとけ
507 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:50:45 ] Microsoft Visual Studio 2008 Express Editionの事? 無料でいいのか?とか不安に思った Visual Studio .NET Professional普通にこっちのがいいかとも思ったけど Express Editionでも平気ならそっちでいいか
508 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 19:19:56 ] お前に使えるのか不安に思った
509 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 20:36:02 ] むむ…初心者を舐めたらいかん きっとなんとかなる…はず…多分…恐らく…
510 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:23:22 ] >>507 グダグダ言ってる間に使ってみればいいだろ
511 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:41:18 ] >>499 VC++ 2008にSP1当ればboostなくてもstd::tr1::shared_ptrが使える。
512 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:39:27 ] 数日前までうまく言っていたのに、急にコンソールウィンドウを 最大化しないと見られなくなりました。 原因が分からないのでどなたか教えてください
513 名前:デフォルトの名無しさん [2008/09/18(木) 20:22:37 ] VC6で、ウィンドウ上部のメニューやツールバーアイコンを、 必要に応じて適宜、グレー可(クリック不可なようにする)などの変更をする方法教えてください。
514 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:07:25 ] Enable: ボタンを選択可能または選択不可能に設定します。
515 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:06:37 ] CとC++の違いって何ですか?
516 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 10:07:07 ] 一言では言い表せない
517 名前:デフォルトの名無しさん [2008/09/19(金) 14:06:30 ] VC++とBorland C++Builderってどっちのほうがつかいやすい? 低スペPCの俺には無理?
518 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 14:35:32 ] 人による
519 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:15:31 ] VC++のほうが低スペック コンパイル速度はBCC
520 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:18:52 ] そんなどうでもいいことで選ぶやつもいるんだ
521 名前:481 mailto:sage [2008/09/19(金) 17:35:10 ] >>486 ビットマップの作成で失敗していると思われます。 プログラムの作成に使用したPCではビットマップ画像のファイルの大きさが2,521KB に対して、プログラムを移行させたPCではファイルの大きさが1,262KBで作成されてしまいます。 >>487 プログラムを移行させたPCが手元にないのでわかりませんが、調べて同じにしてみたいと思います。 >>490 上にも書いたとおり、ファイルの大きさが違うので作成で失敗していると思われます。 よろしくお願いします。
522 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:56:20 ] >>517 VCスレきたんだからおとなしくVCつかっときな BCのほうはただでさえ人少ないのに 偏屈なこだわりがある自称玄人ばかりだから ネットの情報すくないし何を聞くにしても大変 だからといってVCはましなのかというと腐ってるわけだがBCほど腐ってない
523 名前:デフォルトの名無しさん [2008/09/20(土) 16:48:08 ] VC6で、DirectXのAPIを使わずに、スプライトなどの2Dグラフィックス表現を実現する簡単な方法はありますか? オートシェイプのような簡単な画面レイアウトソフトを作りたいのですが、 標準のコントロールやCViewクラスの描画メソッドでは、重なりや透過などの指定に限界が出てきてしまうようです。 オブジェクトをドラッグで移動したり拡大縮小したりにも対応させたいので、 ゲームプログラムに近い作り方で各オブジェクトをスプライトとして扱いたいのです。 業務用で使うツールとして、DirectXが動くかどうか怪しい環境でも使うことを想定しているので。 DirectXのAPIを使うことは無しの方向で、いろいろ模索しています。
524 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 16:52:36 ] bitbitがある
525 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 16:59:53 ] このソースで初めて、windowsの標準で描写できるのを知った おまいらSaGa4つくろうぜ! www.geocities.jp/saga4project/
526 名前:デフォルトの名無しさん [2008/09/20(土) 17:12:53 ] VC++でソースをかいてビルドするのですが、 VC++が応答なしになってしまってビルドできません。 これはスペックの問題でしょうか? ちなみに警告やエラーはありません。
527 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:31:06 ] 正直向いてない
528 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:25:09 ] bitbltだろww
529 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:32:17 ] 当然とは思ったけど念のため手持ちのゲームを解析してみたら 必ずしもDirectXは使ってないね
530 名前:481 mailto:sage [2008/09/20(土) 22:24:56 ] 解決しました。 >>487 さんがおっしゃってたことを試しました。 プログラムに使用したPCのモニターのカラーのビット数を最高(32ビット)から16ビットにして ビットマップを作成すると、1,262KBの描画できていないビットマップが作成されました。 なので移行したPCもモニターのカラーを最高(32ビット)に変更したいと思います。 ありがとうございました。
531 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 22:29:28 ] なんつう糞プログラムだ
532 名前:523 [2008/09/20(土) 23:17:20 ] >>524 >>525 >>528 >>529 Bitbltですね。ヒントありがとうございます。 スプライト的な使い方ができる解説やサンプルみたいなのありますか? >>525 のソースは見てみましたが、 できればVC6のプロジェクト形式でのサンプルがあればと。 Bitbltを使えば、CViewクラスのビュー上に描画することが可能なのですか?
533 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:21:35 ] VC++開発においてC#やVBなどで用いられる IDE機能をもたらすアドインはないでしょうか? 例えば、コメント表示(C#ではコメントはXMLで整理されており コード内のメンバにカーソルをあわせたときや入力補完のときに 情報ウィンドウにコメントが表示されます)や、 コードチェッカ・整形(C#ではresharperというアドインによって 定義されていないメンバの呼び出しに色づけしたり、 メンバ名変更などのリファクタリングができます) クラス定義のリンク (既定・継承クラスへのリンクを列挙したり 名前からクラスやメンバを検索したり、 参照へのリンクも標準のgrepみたいな質素なのではなくて、 名前空間・クラス・メンバで階層化されたものがよいです) こういった定番的な付加機能のアドインを知りたいです。 あとVSのエディタで宣言部分 (例えば「Vector vec;」でVectorの部分)に色づけをすることはできませんか?
534 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:43:50 ] コピペ、クレクレ厨かよ
535 名前:533 mailto:sage [2008/09/20(土) 23:55:04 ] >>534 お気を悪くされたのでしたら申し訳ありません。 でもコピペではないし、 ここはVC++関連について教えて頂けるスレではないのでしょうか? クレクレばかりではなく普段自分が教えられることは教えていますし、 事前に一応検索もしました。うまく見つけられなかったので お力を借りたいと思いここに書きました。
536 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 00:22:22 ] その機能ってインテリセンスなんじゃないのか? あと、特定の単語に色をつける機能はある。Userナントカってファイルがどうのこうの、だったが……忘れた。
537 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 08:25:41 ] >535 初心者スレで質問してるんだから初心者だよな? 慣れるまでデフォルト、ノーマルで使っとけ
538 名前:533 mailto:sage [2008/09/21(日) 19:33:38 ] >>537 すみません、C++は初心者ですが必要になったから使うだけなので ガリガリ書いてマスターする気にはなれません (デフォでやったからといって上達するわけでもないし)。 なので支援機能は是非欲しいのですが皆さんデフォで使ってるのでしょうか? .NETと比べるとまるでプレーンテキストを読み書きする感覚です。 初心者スレではなく他のスレに書いたほうがいいのかな?
539 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:44:47 ] C++はマスターしてから書きましょう
540 名前:デフォルトの名無しさん [2008/09/21(日) 20:25:18 ] visual C++の入門書を買おうと思うんですが、どれがいいでしょうか? プログラミング経験は、あまりないです。(PHPを少し扱える程度)
541 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:34:15 ] >プレーンテキストを読み書きする感覚 的確な表現だと思うのは俺だけか。 ドットネットが部品を組み合わせて使うものなら、C/C++はその部品を自分で作らなくちゃいけないんだよ。 判りやすく言うと、マゾい。作りたいアプリとは関係ないところで躓くことも多いし、 ちょっと間違えただけで簡単にクラッシュする。一昔前ならOSごと落ちる。 はっきりいって、そのような向上心のない態度ではとてもじゃないが使えない。 時間の無駄。断言できる。結果が出せるまで一年くらいかかることは確定的に明らか。 それでもC/C++を使ってる人たちは、そのような強烈なデメリットを承知の上で、 なおあまりあるメリットを見いだしてるから。 部品を自分で作る必要がある、ってのを、どうとらえるか。 それ次第で、C/C++は便利な道具にも、使えないガラクタにもなる。 いいかね?使う方が言語を選ぶんじゃあない、言語が使い手を選ぶんだ。それがC/C++だ。 わかったらドットネッターにもどるんだな。おまえにも かぞくがいるだろう……
542 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:35:39 ] ガイル乙www
543 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:36:22 ] 少佐!お疲れ様であります!
544 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:27:48 ] >538 このへんを参考に www.microsoft.com/resources/msdn/en-us/msdntv/episodes/en/20031028LHORNDB/ChrisA-DonB_300K.asx
545 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:28:39 ] >>541 マスターする気がないといったことは、 バリバリやってるマ様には失礼な発言ですみませんでした。 でもそこまでマゾになんなくても、 楽をするのに努力を惜しまないのがマなのでは? OSSが巷に溢れる昨今に部品を自作する意味は弱いという考えもありますし、 そもそも今回の話題は部品の自作ではなく環境の整備が焦点です。 あんまりにも環境が貧弱でそれが無駄にC++の敷居を上げている と思ったのです。 以下は質問なのですが 継承クラスを探すのにはgrepでもやってるのでしょうか? 与える引数の型がミスしてるのを脳内チェックかコンパイラしか 見つけられないのでしょうか? メンバ名の変更は対象以外が置き換わる危険性を孕んでまで全文置換でしょうか? 細かな仕様(例えば参照渡しで事前に値設定が必要なのかなど) もわかりづらいと思うのですが、いちいちリファレンスを引くのでしょうか?
546 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:32:51 ] C++は複雑すぎてインテリセンスできないのです。 C#のように単純な言語ならではなのですインテリセンスは。
547 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:40:51 ] >>546 インテリセンス(入力補完)はC++でも有効でしょうし複雑さとは 関係がないような気がします。コメント概略が表示されないのは何故…。
548 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:49:20 ] >>544 ありがとうございます!少し道が開けた感じです。 連投すみませんでした。皆様もよりよい環境でプログラミング できますように。
549 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:20:40 ] ここでそんなことをぐだらぐだら聞くよりもやるべきことは他にあるだろうに。
550 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:21:41 ] forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3904878&SiteID=7 日本語読まない奴ってどこにでもいるなぁ
551 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:26:45 ] 自分の知らない単語は無意識に飛ばしてるのだろう。 これは日本語でも英語でも同じw
552 名前:デフォルトの名無しさん [2008/09/22(月) 18:54:56 ] >>540 の回答お願いします。
553 名前:523,532 [2008/09/22(月) 18:56:55 ] Bitbltでオブジェクトを表示したりマスクかけたりする処理についていろいろ調べてみました。 画像とそのマスクを用意して透過するぐらいまではなんとかできるようになりました。 今作ってる表示のメインはテキストや図形なので、とりあえずテキストを貼り付けたCDCオブジェクトを用意したいのですが・・・ どのようにしても表示されず困っています。 viewのOnDrawメソッドで、 CDC* spr=new CDC; spr->CreateCompatibleDC(pDC); spr->TextOut(0,0,"テスト文字"); pDC->BitBlt( 0, 0, 300, 300, spr, 0, 0, SRCCOPY); これで何も出ないです。 TextOutではなくDrawTextでやる方法も試みました。 DrawText(spr->m_hDC,"てすともじ",11,temp,DT_CENTER) こちらも表示されないようです。 画像表示のときは CDC::SelectObject() で、対象のCBitMapを指定すれば良かったようですが、 テキストの場合はどう指定すればよいですか? VC6なので資料やサンプルが少なくて難儀してます・・・
554 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:58:30 ] >552 PHPを少し扱える程度じゃVCは無理 もうちょっと初心者向けの言語をお勧めします。
555 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:59:52 ] >>553 DCはデフォルトでは1x1のモノクロビットマップが選択されている そのまま描いたらたぶん、1ドットだけBitBltされてると思うよ、よくみてみ。 通常はイメージに限らず、ビットマップを作成してDCに選択し、そこに書き込んでから ウィンドウにBitBltする。
556 名前:デフォルトの名無しさん [2008/09/22(月) 19:20:34 ] >>555 CBitmapクラスにテキスト(の形)を読み込んで使うということですか? どのメソッドを使ったら良いか教えてください。
557 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:29:20 ] コピペ君には教えるだけ無駄
558 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:59:36 ] メソッドじゃできないよ。CでAPIを直に触らないとダメ
559 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:49:37 ] >>553 CBitmap::CreateCompatibleBitmapをやって 553で言うところのsprにSelectObject あとはspr->TextOut or DrawTextしてpDCへBitBlt 手(CDC)に紙(CBitmap)と活字(CFont)を持って(SelectObject)文字を書く(DrawText) 最初は面倒だけどすぐ慣れるよ。
560 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:30:31 ] >>556 DCにつながってるデバイスってディスプレイだったりプリンターだったりするじゃない? そういうデバイスを指定しないで作ったDCはビットマップがデバイスなんだよ。 だから自分でビットマップを作りそれをDCに選択してそのDCにTextOutすると そのビットマップに文字が描かれる。 そのビットマップをウィンドウのDCにBitBltすれば画面上で見られるってわけ。
561 名前:デフォルトの名無しさん [2008/09/23(火) 13:42:57 ] visual studio 2008 express を使用しています。 現在あるオープンソースソフトウェアをソースからビルドしようとしているのですが、 ビルドに際し、環境変数が見つからないと言われます。 windowsOSの環境変数は指定されている通り設定しているのですが、エラーが起こります。 確かvisual studio自体にも環境変数を指定する箇所があったと思うのですが、 場所がわかりません。 visual studio自体に環境変数を指定する場所があるならば、 その方法を教えていただきたいです。
562 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:49:35 ] すいません。 スレ違いのようですね・・・ 失礼いたしました。
563 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:53:25 ] さようなら
564 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:36:04 ] 新規プロジェクト追加時に、自分で設定した値を常に反映させることは可能でしょうか。 具体的には警告レベルを4として、新規プロジェクトが作成されることを望んでいます。
565 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:48:50 ] お使いの製品のグレードあるいはユーザーの知的レベルによって可能
566 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:51:39 ] VS2005EEです。知能は未アカデミックです。
567 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:01:03 ] エンタープライズエディションをばかにするな あやまれ!! みたいな。
568 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:35:19 ] カスタムプロジェクトを使用 マクロで設定 既存のプロジェクトをコピーして使いまわす。 プログラム、スクリプト等で定義ファイルを書き替え VSにパッチを当てて改造する。
569 名前:デフォルトの名無しさん [2008/09/24(水) 15:57:07 ] C/C++室から誘導されて参りました。 VC++2005の使い方を教えてください。質問は以下です。 > 482 :デフォルトの名無しさん [] :2008/09/24(水) 07:57:18 > VC++2005を利用しています > 例外を勉強しているのですが、例外を発生させたときに、 > catchで例外を処理しても、デバッガに例外があったことが出力されます > > catchで例外を処理するときは、 > デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか > > 483 :デフォルトの名無しさん [↓] :2008/09/24(水) 12:37:12 > >>482 > 出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる > デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。 > > 484 :482 [] :2008/09/24(水) 13:18:40 > >>483 > れす、ありがとうございます。後者です。 > > 例外のつかいかたについては勉強していくところです。 > もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。
570 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:12:20 ] リリースビルド
571 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:18:03 ] 勉強? その出力で困るやつがいるのか? 遊びじゃないんだからいい加減にしろ
572 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:30:52 ] 無料になってから馬鹿が増えたな
573 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:37:53 ] >>569 Googleで検索しろ 遊びじゃないんだからそのくらい自分で調べろ
574 名前:553 [2008/09/25(木) 08:33:12 ] >>559 >>560 大変分かりやすい説明ありがとうございました。 やりたかったことが実現できました。
575 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:49:58 ] >>569 例外は文字通り例外的なことが起きた場合に使うもので、実行を中断せざるを得ないぐらいの場合にしか使わないほうがいい。 そんな滅多におきないことのためにifをたくさん書くのは面倒だしテストが大変になる。だから例外を使って楽に例外処理を実装する。
576 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 21:16:30 ] class Hoge{ public: Hoge(); virtual void abs_func() = 0; }; class Hoge_1:public Hoge{ public: virtual void abs_func(); }; Hoge::Hoge(){ abs_func(); } void Hoge_1::abs_func(){ } int main(int argc, char* argv[]){ Hoge *p = new Hoge_1; delete p; return 0; } このコード、BCB6では正常ビルドできるけど VC2005では「外部参照 1 が未解決」リンカエラーなる。 何で?コンパイラスイッチで回避可能?
577 名前:デフォルトの名無しさん [2008/09/26(金) 22:18:04 ] 基底クラスのコンストラクタで純粋仮想関数呼んでるから
578 名前:デフォルトの名無しさん [2008/09/27(土) 10:58:32 ] 今までEclipceをずっと使ってたんだけど、C++で開発するにあたり、VisualC++を使ってみた。 これにはEclipceみたいに、コンパイルエラーが出る箇所を赤線で事前に教えてくれたりってのはないの?
579 名前:デフォルトの名無しさん [2008/09/27(土) 11:12:32 ] ないね。
580 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 11:27:05 ] ありがと〜
581 名前:デフォルトの名無しさん [2008/09/27(土) 11:40:47 ] ほのぼのしたスレですね
582 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 13:14:19 ] 文法間違えてると、それ以降のツールチップヒントが出てこない場合がある。 例えば、構造体のメンバだと、 hoge. ここまで書くとメンバ一覧がひょこっとでてくるが、 前に間違いがあると、 a += b: これ間違い。 hoge. ここでヒントが出てこなくなる。
583 名前:デフォルトの名無しさん [2008/09/27(土) 14:30:10 ] VC2005でプログラム(コンソールで動くもの)を作成しています。 コンパイルして実行してみても予期したとおりに動かないのでデバッグで調べた所、 cppファイルのテキストと実行している位置がずれているようです。 ステップオーバーで1行ずつ実行しているのにありえないところで数行飛んだりします。 (代入文が5つ続いてるのをジャンプしたりする) 一つ気になる点はビルド時に LINK : 前回のインクリメンタル リンクで C:\Documents and Settings\管理者\My Documents\Visual Studio 2005\Projects\****\Debug\****.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。 という表示が出ることです。 ソリューションのクリーンを行ってもncbファイルを削除してからリビルドしてもこの表示が出ています。 原因or解決方法ご存知の方、お助けくださいませ。
584 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:34:59 ] Release版をデバッグ実行してね?
585 名前:583 [2008/09/27(土) 14:38:59 ] >>582 素早いレスありがとうございます。 確認しましたが構成はDebugになってます。
586 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:39:39 ] そもそもデバッガなんて使わないほうがいいよ。 printfとfprintfがあればおk
587 名前:583 [2008/09/27(土) 14:39:42 ] ↑は>>582 じゃなくて>>584 です。
588 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:42:31 ] 漢は黙ってmdbg
589 名前:583 mailto:sage [2008/09/27(土) 14:43:31 ] >>586 了解です。 printfで変数を調べてみた所きちんと代入されていることが分かりました。 一つ一つチェックしていくことにします。 回答ありがとうございました。
590 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:43:32 ] 586みたいなのを時代遅れっていうんだろうな
591 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:45:50 ] >>585 つか、Debugビルドの構成が間違ってるんじゃね?
592 名前:583 mailto:sage [2008/09/27(土) 14:52:03 ] >>591 回答ありがとうございます 構成マネージャ-> 構成=Debug プラットフォーム=Win32 ビルド=チェックあり 構成プロパティ->C/C++->全般にある デバッグ情報の形式=C7互換 となってます。 Debugビルドの構成の部分がどこを指すのかイマイチよくわからないのですが
593 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:54:47 ] デバッガに頼るようでは真のプログラマとは言えない
594 名前:583 mailto:sage [2008/09/27(土) 14:56:02 ] >>593 まだ真のプログラマじゃないのでご容赦下さい
595 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:06:08 ] 旧バージョンのプロジェクトからアップグレードでもしたのかな? C7互換を /Zi か/ZI にする。 最適化 無効 (/Od) であることを確認する。 変なのが沸いてるけどデバッガにトラウマでもあるのかな(笑
596 名前:583 mailto:sage [2008/09/27(土) 15:12:34 ] >>595 最適化無効によりデバッグ情報と実行位置情報が一致するようになりました。 無事いつもどおりのデバッグができるようになりました。 回答していただいた皆様、どうもありがとうございました
597 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:23:25 ] 最適化してたら一致しないのはあたり前だ
598 名前:583 mailto:sage [2008/09/27(土) 15:30:00 ] >>597 すいません。全くもってその通りですね… いつもはデフォルトで最適化が無効になっているのですが 今回はなぜか最適化されてしまっていたので気づきませんでした。
599 名前:デフォルトの名無しさん [2008/09/28(日) 00:30:32 ] Visual C++ と C++ って何が違うんですか><
600 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:34:06 ] VC++は商品名。
601 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:01:13 ] C++はプログラミング言語の名前、Visual C++はC++開発のためのソフトウェアの名前
602 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:19:12 ] 開発ソフトの名前に言語名入れるの禁止にしようぜ
603 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:27:43 ] むしろ言語名が入ってないほうが困る
604 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 03:34:12 ] Visual C++/CLI でおk
605 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 14:42:10 ] パソコンもプログラミングも初心者ですがインストールで詰まったり(一応)解決できたりしたので報告してみる OS:Vista HomeBasic SP1 はじめ、Visual Studio 2008 SP1 のDVDイメージをダウンロードして焼いてVC++インストール開始。 インストールの途中で、暗転・黒背景白字の英文エラー数秒出て(読めない)OSが落ちて再起動、インストール失敗。 次に書籍付録DVDからVC++2008無印をインストール。一応最後まで成功。 だが前回インストール失敗した残骸(?)が中途半端に残っているのか、登録手続きでキーが表示されなかったり、 ヘルプの参照で壊れている項目があったり、ということが発生。 そこでMicroSoftのアンインストールツールでアンインストール、.NET FRAMEWORK 日本語パックと本体も削除した。 今度はVC++2008SP1をウェブインストール開始。 が.NET FRAMEWORKインストール直後あたりに数秒エラーメッセージが出て(やっぱり読めない)落ちて再起動、失敗。 再びアンインストール作業をして、今度はもうちょっと慎重にやろうと決意。 LAN抜いて、セキュリティソフト(ウイルスバスター2008)を切って、msconfigからMS以外のサービスを停止。 そしてSP1のDVDからインストール開始。 途中Machine Debug Managerを停止せよとの通告が出たので、コンピュータの管理から該当サービス停止。 またHTMLアプリケーションホストも停止せよと言ってきたので、(これっておかしくね?DVDからインスーラ起動する(?)htaのアレだろ? なんで邪魔にすんだよ?とか思ったが)setup.htaのウィンドウを閉じて、再試行。 最後まで進んでコンピュータの再起動。「システムの構成を更新」してるという表示が出て2回ほど再起動。 今度はうまくいったようで、今のところ問題なく hello fuck'n world とかで遊べてます。 すごい迷走だ。バスターのせいだったのかな。
606 名前:605 mailto:sage [2008/09/28(日) 14:50:10 ] Cドライブ直下にインストール作業フォルダっぽいのがいくつも残ってるwww
607 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 17:41:04 ] ここはあなたのメモ張じゃありませんよ
608 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:23:28 ] 失敗例と解決しての成功例は貴重なレポートなのでむしろいいぞもっとやれ
609 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:41:01 ] ブログにでも買い解け
610 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:48:56 ] >>609 はげどう
611 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 12:26:56 ] インストールだけでこんなにも躓く奴が存在するなんて・・・
612 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:13:31 ] ttp://www.microsoft.com/japan/msdn/vstudio/express/maninstall/2008/default.aspx 最新で無料のバージョンはこれでいいの?
613 名前:デフォルトの名無しさん [2008/09/30(火) 19:59:04 ] VC6で質問です。 CScrollViewクラスのビュー上で、 クライアント領域にBitbltでいくつかのオブジェクトを貼り付けて表示したり動かしたりするプログラムを作っています。 ページが動かないときはそれでいいのですが、スクロールバーを動かしたりしても連動して動いてくれないです。 たとえばBitbltで座標100,100に貼り付けた場合、スクロール有効領域全体の0,0を基点にするわけではなく、 「現在見えている」領域の、100,100の位置に貼り付けられるといった具合です。 OnScrollメソッドで再描画をかけて、GetScrollPosition()の値分、補正して貼り付けてやれば、 スクロールバー連動で位置を動かすことはできたのですが、画面がちらついてしまいます。 スクロールバーと連動して描画したい場合、もっとスマートなやり方はありますか? たとえば、スクロール有効領域全体の0,0を基点にしたデバイスコンテキスト(のようなもの)を取得して、 そこに貼り付けてやればこちらで再描画かけてやらなくても、スクロールによりWindowsが勝手に動かしてくれるイメージで。
614 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:11:36 ] ずらして描画は正しい まずはちらつく原因を特定して、それを抑えよう バッファに描いてそれを転送でもいいし、バックグラウンドの塗り潰しかもしれん スクロールした場合、元の画像はずらしてくれて、 新たな部分だけ無効領域になってるはずだよ
615 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:16:25 ] ってもしかしてOnScrollでInvalidateしてんのか? それは意味ないぞ 全部更新したいなら別だが。 そこはUpdateWindowだけな
616 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:13:48 ] VisualC++ 2005 Express Editionをインストールしようとしたらvs_setup.msを開けませんでした と出てきてインストール出来ませんでした。 ちょっと前には普通にインストール出来てたのですが、何が原因かわからないです。
617 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:21:14 ] 私も分からないです
618 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:28:44 ] ハードディスクがお亡くなりになる前兆ですね なむ〜
619 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:22:53 ] >>618 HDの寿命なのか・・・ うわああああああああああああああああああ
620 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:45:34 ] >vs_setup.ms こんなもん始めから無いだろ。 vs_setup.msiじゃないの? これ試してみては。 ttp://support.microsoft.com/default.aspx/kb/833594/ja
621 名前:613 [2008/10/01(水) 14:09:24 ] >>614 ありがとうございます。 バッファとしてのデバイスコンテキストを持つようにする方式を試してみました。 CreateCompatibleBitmapでビューのDCと互換のでDCをクリエイトするようにしたところ、 ディスプレイ解像度を超える部分には書き込まれないようです。 (ディスプレイ解像度を大きく超える広さの領域をバーでスクロール表示したい) ディスプレイに影響されない、独自の形式(解像度)のDCを作る方法がありましたら、教えてください。 CreateCompatibleBitmapではなく、 CreateDCで独自の形式(解像度)のDCを定義することを考えていますが、 このメソッドの使い方(引数の指定方法)がよく分かりません。 ウェブの資料にあった、 bufDC.CreateDC("DISPLAY", 0, 0, 0); とすると、書き込んだ時点で全画面モードになってしまう予想外の動きが・・・
622 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:01:03 ] そりゃディスプレイのDC持ってくりゃそうなるだろ。 いったいどうやってんの? Bitmap作るのに大きさ指定できるでしょ? GetClientRect(&rect); CPoint pos = GetScrollPosition(); (略) pDC->BitBlt(pos.x, pos.y, rect.Width(), rect.Height(), &dc, pos.x, pos.y, SRCCOPY); こんな感じでやってる? 面倒だからとりあえず、 pDC->BitBlt(0, 0, bitmap.Width, bitmap.Height(), &dc, 0, 0, SRCCOPY); で試してみては?
623 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:32:08 ] ところでbitbltの読み方はビットブリットでいいのかな ビットブルト?ビットブロット?
624 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:06:19 ] ビットブリットと言っているなあ
625 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:06:54 ] 自分はビットブリットだと思ってるけど 周りのみんなはビットビルトって言ってる
626 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 17:11:16 ] >>620 vs_setup.msiでした 無事インストール出来ました。ありがとうございます
627 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:42:06 ] >>622 ありがとうございます。 ディスプレイ解像度うんぬんは的外れで、CBitmapのCreateBitmapのところで必要な解像度指定すればうまくいきました。 もうひとつ質問です。 VC6で、DrawTextで貼り付けるテキストを、サイズ指定したりフォントや色を変えたりできますか? MFC見ているとVC2003以降はDrawTextExってのがあるみたいですが、6でそのようなことをする方法あったら教えてください
628 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:50:05 ] えーと、、、、それは基本中の基本だと思うんだが。 フォント作ってDCに選択して書くだけだろ。 色はペンやブラシを替えればいいし、GDI関連一通り実験してくれ。
629 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:50:29 ] DrawTextExはVC6にもある
630 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:52:49 ] 俺はビットビーエルテーって読んでる。
631 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:15:45 ] C++って何て読むのー?しーぷらすぷらす?
632 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:17:59 ] ttp://wikipedia.org/wiki/C++
633 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:18:09 ] シータスタス
634 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:53:07 ] 吹いた
635 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:14:48 ] 質問です。 今、自作のゲームソフトを作っているのですが、 プログラムでどのぐらいメモリが使われてるか見てみようと思って Windows タスクマネージャでメモリ使用量を眺めていた所です。 どうも、ファイル読み込みがあるたびにメモリ使用量が増えていき ある程度の数字を超えると使用量の増加がやむ、というような感じみたいなのです。 mallocやnewで確保したメモリが開放されていないのかな?と思いましたが、 何度見直しても開放処理を行っています。 これってひょっとしてXPのシステムキャッシュというのが プロセスのメモリ使用量として加算されてるという解釈であっていますでしょうか? また、ゲームを公開するにあたって動作環境の表記は必要だと思いますが、 このようにプログラマの意図しない所でメモリが消費されているとすると、 プロセスが実際に使う最大メモリ使用量というのはどのように割り出せばいいのでしょうか?
636 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:19:22 ] メモリのほうは判らんが、 動作環境なら、自分の動かしてる環境書いて、「これ以上のスペックなら問題ないでしょう」でいいんじゃない?
637 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:11:42 ] >635 基本的に「メモリ使用量」(専門的にはワーキングセットという)は OSがプロセスに割り当てた物理メモリの量。 プログラムがまたアロケートしたときに 割り当てのための余計なコストが増えないよう 物理メモリを確保したままでとどまる。 プロセスがバックグラウンドに移されたり、 他のプロセスがメモリを要求したりした時点で 初めてワーキングセットが減らされる。 ちなみに実際にプロセスが使っているメモリの量を知りたければ 「仮想メモリサイズ」を得る必要がある。
638 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:23:31 ] >>636-637 レスありがとうございます。 >>636 確かにそれでもいいのかも知れませんが、Windowsアプリになれたプロの人なんかは、 そのソフトに必要なメモリをどのように決めているのかと思いまして。 >>637 >プログラムがまたアロケートしたときに >割り当てのための余計なコストが増えないよう >物理メモリを確保したままでとどまる。 ということは、メモリ割り当ての問題であってファイル読み込みとは無関係なのですか? 音声のファイルを読み込んだりしたときに、ディスクアクセスしてないように見えるのですが
639 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:33:47 ] そりゃ以前読み込んだ音声ファイルのデータがキャッシュに残ってたんだわ。 ちなみにシステムやプログラムが使ってない物理メモリは 全部ディスクキャッシュとして使われる。
640 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:30:24 ] なるほど。ファイル読み込みのキャッシュはプロセスのメモリ使用量とは また別として確保されるのですね。 仮想メモリサイズを取得するというのはGlobalMemoryStatus()でしょうか? これってプロセス単体の使用量を調べられましたっけ? それとも、他にプロセスの仮想メモリサイズを調べるための関数がありますか?
641 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:14:10 ] GUIアプリとコンソールアプリの共存って出来ますか? 例えば、物理シミュレーションの映像をDirectXやopenGLでウィンドウ表示しつつ、 演算結果はコンソールで表示し続けるみたいなことです。 プロジェクトを作るときに、コンソールとwin32アプリの2択しかないので、 そういうことは出来ないのでしょうか…
642 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:15:59 ] コンソールプログラムからCreateWindow関数を呼ぶとできます。
643 名前:641 mailto:sage [2008/10/02(木) 11:39:08 ] >>642 ありがとうございます。
644 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:18:40 ] そんなに簡単に呼べたっけ? ライブラリとインクルード用意すれば呼べそうな気もするけど、 mainとwinmainで全然作りが違う気がする
645 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:25:00 ] 一つのプロジェクトの中には、一つのmain関数しか定義できないのですか? だとすると、directxなどのライブラリを用いるサンプルソースを試すにはその 都度、プロジェクトを作成しなといけないと思うのですが、ソリューション内の プロジェクト全てに同じインクルードパスとライブラリパスを適用するような ことは出来ますか?
646 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:41:45 ] パスの設定はVC++そのものの設定でやればいいだろう。 lib指定が面倒だったらヘッダーに#pragma comment入れとけばいいし
647 名前:645 mailto:sage [2008/10/02(木) 13:02:32 ] >>646 ありがとうございます。 #pragmaはコンパイラによって挙動が違ったような気がするので 見送りかな。linuxでもコンパイル出来るようにしときたいので。
648 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:13:28 ] >>647 LinuxではDirectX使えないよ そもそもここはVisualC++のばりばり環境依存のスレです
649 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:28:45 ] >>644 #include <windows.h> int main(void) { HWND myWindow = CreateWindow( TEXT("STATIC"), TEXT("hogehoge"), WS_OVERLAPPED, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, NULL, NULL ); ShowWindow(myWindow, SW_SHOW); MessageBox(NULL,TEXT("ok"),TEXT("close"),MB_OK); return 0; }
650 名前:640 mailto:sage [2008/10/02(木) 13:40:43 ] 一応自分なりに調べてみてGetProcessMemoryInfo()という関数があるのがわかりました。 プロセス終了時に取得したPROCESS_MEMORY_COUNTERS構造体のメンバのうち、 PeakWorkingSetSize と PeakPagefileUsage の合計値が プロセスで実際に使われた最大メモリ使用量という事でいいのでしょうか? というか、ゲームに使われる全てのファイルサイズの合計超えてます^^; こういうものなのでしょうか?プロの人は本当にどうしてるのか気になります。 一度大きくメモリを確保してプログラムで小出しにするなんちゃってアロケート実装とかですかね?
651 名前:647 mailto:sage [2008/10/02(木) 13:45:51 ] >>648 directxはあくまで例で言っただけで、openGL使うと思います。 混乱させてすみませんでした。
652 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:46:00 ] テストプログラム作って実測だろうが 机上で計算しても何の意味もない
653 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:59:01 ] lib指定のpragmaはcomment文なので、他には影響なさそうだけどね。
654 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:00:34 ] >>641 は入門用にglutから入ればそんな心配も出てこなかったろうに。
655 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:01:06 ] >>652 >>650 は実測はしてはみたけどそれが正しい方法なのか知りたいって事でしょ 俺もメモリ関係よくわからんから知りたいわ
656 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:05:12 ] >一度大きくメモリを確保してプログラムで小出しにするなんちゃってアロケート実装とかですかね? こんなこと言うくらいだから知ったかぶりして余計な心配してるだけだろ
657 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:05:17 ] GUIって「ぐい」ってよみますよね。 無知な後輩から馬鹿にされたんですが。師ねよ。
658 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:06:53 ] >>656 Windowsはともかく、家庭用ゲームの開発だと大抵はそういう手法とってるよ Windowsのメモリ管理なんてまともにやってるゲーム会社なんてないんじゃね?
659 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:06:57 ] 自動で付けられるコードの「 { 」を次の行にする設定ってあるんでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:10:17 ] >>659 C言語で { を勝手に改行されたら逆に困りますよ
661 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:14:03 ] C++クラスの追加とかの自動で挿入されるコードについて、ってこと?
662 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:17:34 ] 具体的に言うと private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { を private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { て感じです そもそも後者の方は一般的ではないんでしょうか? もしそうなら今の設定に慣れるように努力します
663 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:20:33 ] 俺は後者だよ。その方が見やすい。別に手動で改行すればいいじゃん。
664 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:28:00 ] 自動でできる設定はないですか・・・。 分かりました手動で頑張ってみます どうもありがとうございました
665 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:29:37 ] ツール→オプション→テキストエディタ→C#→書式設定→改行→新しい行にメソッドの始めかっこを配置する にチェック ではないか C++/CLIの設定ってあるのかね?
666 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:20:17 ] 自分で探せ
667 名前:デフォルトの名無しさん [2008/10/02(木) 23:33:03 ] あるレジストリキーの直下にある複数のレジストリキーの リストを取得する関数はありますか? 具体的には↓のtest直下にあるtest1、test2、test3の名称を取得したいです。 test\test1 \test2 \test3
668 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:41:52 ] apiにはそういう機能がないから第三者が作った関数を探してるということ?
669 名前:デフォルトの名無しさん [2008/10/02(木) 23:50:43 ] test以下に何があるかわかんない場合だよね RegOpenKeyEx と RegQueryInfoKey と RegEnumValue で列挙できたと思う 詳しい使い方忘れた、ググれ
670 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:51:36 ] >>668 そういうAPIを探していたのですが見つからないので 自作しかないでしょうか?
671 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:55:52 ] >>669 ありがとうございます。それらのAPIを調べてみます。
672 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:31:05 ] RegEnumKeyExという関数を見つけました。 これで取得できそうです。
673 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:22:01 ] #define ANYARGS ... と言う宣言は、可変長引数を表しているのですか? '...'でググッたら死ねましたorz
674 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:48:13 ] レジストリ触るのが怖くて未だにINIファイルな俺
675 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 07:49:35 ] そう予測したのなら、可変長引数でググってみればいいじゃない
676 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:18:54 ] >>673 名前と ... から考えるとそうだろう
677 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:01:50 ] 今Vista(x64)マシンでVC++.net2008を使いコンパイルしたのを ノーパソのXP(x86)にもってきてみると動きませんでした 動かない理由は 1.x64でコンパイルしたから 2.MS土台のバージョンが古いから 3.そもそもXPでは動かない どれでしょうか?
678 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:08:52 ] クイズかよ
679 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:12:15 ] ワロタw
680 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:12:24 ] あと2008は2005と違って日数制限があって完全フリーじゃないんですよね?
681 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:16:15 ] 2008 expressはフリー゜
682 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:20:20 ] AnyCPUなら動くよ… fw入ってないんだろう
683 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:20:24 ] そうですか 677 ノーパソに2008入れてないのがまずいのかな〜
684 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:21:48 ] >>682 ノートはシングルコアでした
685 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:24:34 ] ああ、ここVC++か 再配布可能なファイルredistなんたらが入ってるから それ入れてみ
686 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:28:45 ] やってみます 使う側も最新にしとかないとだめなんですねえ
687 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:36:14 ] あと、ターゲットをx64にしてたら 動かすほうのOSも64bitじゃないと 動かないよ、当然だけど念のため
688 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:38:04 ] 了解
689 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:47:38 ] あーあとコード生成の設定で/MTにすると追加無くても動くかもな。
690 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:54:58 ] /MTですか 探して見ます
691 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:04:42 ] 結局、Debug版という落ちだったりして。
692 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:07:41 ] >>674 俺は商用アプリでもなきゃレジストリ使わないな インストーラーアンインストーラー不要で済むし
693 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:08:23 ] いくらなんでもメッセージ見て気が付くだろ
694 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:11:03 ] .netから *View.cpp はないんですよね 全部 *.cpp に書くんですか
695 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:20:11 ] C++/CLIのことを言ってるならありゃ全部 *.hに書くんだぜ。 MVCとかMVPにしたいなら自分で勝手にrefクラスを分ける。
696 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:25:37 ] C++勉強しようとインストールしたまでは良いのですが、コンパイルが出来ません メニューにビルドの項目が無いのですが、どうやって追加するのですか?
697 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:30:07 ] 新規プロジェクトを作成して、書いたコードをプロジェクトに追加してからビルドする。
698 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:31:19 ] >>696 メニューの、新規作成 -> プロジェクト でプロジェクトを作成しないと、ビルドはでないよ。
699 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:36:09 ] >>697-698 親切にありがとうございます 無事にコンパイルが出来ました
700 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 21:47:21 ] pc11.2ch.net/test/read.cgi/tech/1222813731/31,32 で宿題を教えてもらったものですが、 Visual C++で pc11.2ch.net/test/read.cgi/tech/1222813731/32 のソースコードで開くファイルを指定するにはどうすればよいでしょうか? 向こうのスレでは pc11.2ch.net/test/read.cgi/tech/1222813731/71 という方法を教えられたのでコマンド引数にファイル名をフルパスで書いたのですが、うまくいきません
701 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:19:53 ] あなたはプログラムをやらない方がいいと思うよ とっととコンビにのバイトの面接でも受けにいけばいかがでしょうか。
702 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:24:13 ] コンビ弐
703 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:27:46 ] 学校で聞け
704 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:32:32 ] 過去ログ読まないでいきなり質問するやつ
705 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 22:43:46 ] >>704 このスレのログは「ファイル」で検索して読みました。 読んでもわかりませんでした。
706 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:46:39 ] この程度のことを自力でできないような奴にプログラマになられても迷惑だよ
707 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:53:44 ] >>705 何がどううまくいかないのか説明して欲しい。 fopen()でNULLが返ってくるのか、 それとも他に何かエラーが出ているのか。
708 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:05:14 ] >>707 ソースコードは #include<stdio.h> void moji_line_count(const char *filename){ FILE *fp; int prev='\n', moji, moji_count=0, line_count=0; if((fp=fopen(filename, "rb"))==NULL) return; for(;(moji=fgetc(fp))!=EOF;prev=moji,moji_count++) if(moji=='\n') line_count++; fclose(fp); if(prev!='\n') line_count++; printf("File : %s\nCharacter count : %d\nLine count : %d\n\n", filename, moji_count, line_count); } int main(int argc, char *argv[]){ int i; for(i=1;i<argc;i++) moji_line_count(argv[i]); return 0; } なのですが、エラーが帰ってくるのではなく純粋にこのソースコードで開くファイルを指定する方法ががわからないのです
709 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:09:33 ] コマンドラインに打ち込んだ文字列も書けよ
710 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:10:36 ] >>708 ファイルを指定する方法は、 プロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド引数で ファイル名を指定する、と既にアドバイスをもらっているはずだけど。
711 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:16:07 ] >>710 適当なテキストファイルのフルパスを打ち込んで見ましたが、うまくいきませんでした アドレスは 打ち込むのってこれであってますよね? C:\\Documents and Settings\\ユーザー名\\デスクトップ\\テキストファイル.txt
712 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:17:26 ] gccつかえ
713 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:19:19 ] gcc www.tdragon.net/recentgcc/
714 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:20:39 ] コマンドライン使えないやつ
715 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:22:00 ] >>711 何度も言うけど、うまくいかないという書き方は良くない。 何をやって何がうまくいかなかったのか丁寧に書くべき。 で、そのフォルダに「テキストファイル.txt」というファイルは置いてある?
716 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:23:24 ] 結局何がどううまくいかないのかがわからないんだが。 意図していた結果と、実際に得られた結果がどうなってるの?
717 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:28:54 ] >>715 すいませんでした。 Ctrl+F5でビルドしても「続行するには何かキーを押してください」とでてキーを押すと終了します。 ファイルは確かにデスクトップにおいてあります。 >>716 >>708 のソースで求めているものは、 ファイルを1つまたは複数指定し、 各ファイルに含まれる行数と文字数を数えて画面に出力 なのですが、 ファイルを指定して各ファイルに含まれる行数と文字数を数えて画面に出すことができず、 終了してしまいます
718 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:30:42 ] もう711で答え出てるじゃん
719 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:38:22 ] >>717 コマンド引数を指定して、ファイルは存在するとしたら プログラム自体がおかしい、となる。 そこでブレークポイントを置いてF5でデバッグ実行。
720 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:41:47 ] あっちの71です。 ひょっとしてDocuments and Settingsの罠にかかってる? argvの中身確認してみて。
721 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:47:22 ] >>720 argvをググりましたがさっぱりわかりません
722 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:48:53 ] だめだこりゃ
723 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:50:49 ] ダメですか… んじゃー退散します つきあってくれたかたありがとうございました
724 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:51:37 ] >>721 何がわからないのか説明(ry あとデバッグ実行(ry
725 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:58:07 ] argvの中身を確認しろと言われてググるとは… プログラムは誰かに作ってもらったんだろうな。
726 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:18:23 ] 最初から宿題スレで作ってもらったと書いてあるやん
727 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:02:34 ] \\ バカじゃねーのwww
728 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:16:41 ] 質問者も回答者も馬鹿 ホントゴミ溜め以下だなここは
729 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:18:23 ] 宿題やってもらう前に授業をちゃんと受けろと
730 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:39:36 ] こういうのがいるから、ソフトのバグはいつまで経っても無くならないんだろうなあ……
731 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 08:26:38 ] GUI環境でコンソールプログラムをやると GUI環境とコンソール環境の両方の知識が必要になるから 最初はコンソール環境で始めた方がいい。 小さなプログラムコンパイルするのにいちいちプロジェクト作ったり パラメータ渡すのに設定いじるとか よくそんな面倒なことやってるなと感心する。
732 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 08:43:54 ] 学校と同じgccいれろよ www.tdragon.net/recentgcc/
733 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:02:31 ] >>731 MAKEFILE覚えないですむから比較的楽じゃね?
734 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:04:21 ] いきなりデバッガ使えるからGUIに限る。 しかしデバッガ自体知らないのでは話にならんが。
735 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:07:01 ] 確かに、printfデバッグより楽だからいいよな まあでも学生ならgccなりBolandのC++コンパイラーなり覚えた方がいいと思うが
736 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:30:02 ] プロジェクトつくるまでもない規模ならMAKEFILEも必要ない
737 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:34:58 ] プロジェクト作る程度の事がそんなに大変だともおもわんけどね
738 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:41:45 ] プロジェクトがないとCやるのは不便 一ファイルに難行も詰め込んだら間違える
739 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:00:43 ] まあ、ちょいとしたツールや宿題程度の問題なら、 cl main.c で充分だわな