1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
83 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:07:25 ] そのまま普通に数値を代入すれば良い
84 名前:デフォルトの名無しさん [2008/08/08(金) 04:56:56 ] お世話になります。 C++で質問です。 Visual c++ 2008で勉強中です。 ヘッダーファイルの使い方をお聞きします。 ある本のCDについていたコードなのですが、 hoge.h hoge.cpp というファイルがありました。 ヘッダーファイルにはクラスの定義しか書いていなくて、 cppファイルにそのクラスで利用する関数の中身が書かれていました。 自分はこのままでは、ヘッダーファイルをincludeしても利用できないと考えています。 でも、上記のヘッダーファイルをincludeしたファイルを動かすことができます。 何故上のようにかけるのでしょうか? また、ヘッダーファイルにはクラス定義しか書かなくて、 そのメンバ関数の実装はヘッダーと同名のcppファイルに記述するのが現場ではいいとされているのでしょうか? 「お前これ分かってないからここ調べろ」という意見もぜひお願いします。 誰かに聞くことができない状態なので、ものすごく助かります。 お願いします。
85 名前:デフォルトの名無しさん [2008/08/08(金) 05:32:05 ] VISUALC++に限った話ではないのですが、これを勉強してて思ったのでちょっと質問させてください。 アプリ開発の際は、メモリをどう考えるのでしょうか? たとえばPS1だとVRAMが少ないから格闘ゲームには不向きだ、セガサターンの方が向いてる、みたいな話を見たことがあるのですが 大規模な開発をする場合は、メモリはかなり重要な問題なのでしょうか? 今まではCでソートだとか入出力みたいな勉強しかしてこなかったので、進んでいくうちに疑問がわいてきました。 できればレスお願いします・・・
86 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 05:35:50 ] ヘッダファイルってのは要するにこんな関数 まあこの場合クラスだけど、どこかにはありますよと言う宣言だから そのヘッダファイルをインクルードして実装している ソースファイルがきちんとあれば 他では宣言だけ見て存在だけ知ってれば使える あと現場では良いとかじゃなくて普通そうするもの
87 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 05:37:48 ] そんなのはメモリを相当喰うようなプログラムを作る時に考えれば良いんじゃない?
88 名前:デフォルトの名無しさん [2008/08/08(金) 05:52:30 ] >>86 ヘッダーについて回答ありがとうございます。 なるほど。では、ヘッダーは1つで、実装してるcppが2つある、 ということもあるのでしょうか? ヘッダーを利用するプログラムによって、そのcppを切り替えたりすることができそうな 気がしいるのですが、そんなことってありますか?
89 名前:デフォルトの名無しさん [2008/08/08(金) 06:27:20 ] VC++で質問です。 開発する際、ソリューションエクスプローラの使い方がいまいち分かりません。 たとえば電卓をGUIで作るとき、どのようなプロジェクト構成になりますか? ■予想1 ソリューション電卓 電卓プロジェクト ソースファイル ○GUIソース、処理ソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) それとも、 ■予想2 ソリューション電卓 GUIプロジェクト ソースファイル ○GUIソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) 処理プロジェクト ソースファイル ○処理ソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) 予想2のように、モジュールごとにプロジェクトを作成するのものなのでしょうか?
90 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:49:02 ] >>84 cpp はコンパイルして obj になるだろ。 関数そのものは、このobjとリンクして使えるようになるんだよ。 その関数の使い方が書いてあるのがヘッダだし、 1つ以上のobjをまとめたものが lib ファイル。
91 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:51:14 ] >>85 そのソートだって、膨大なデータをソートするとなると オンメモリでできるのかどうかが重要になるでしょう。 ゲームで問題になるのは、リアルタイムで動作させなくちゃならないから、 できる限りオンメモリにしておく必要があるからな。
92 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:44:52 ] >>89 モジュールごとにプロジェクトを作成する。 けど、上記のモジュールってできあがるファイルのことよ。exeとかlibとかdllとか。 もんの凄い強力な電卓でなければ、普通はGUIと計算を別モジュールに分けないでしょうね。 「分けるのが目的なんだ」ってことならば、分けるのは可能です。
93 名前:デフォルトの名無しさん [2008/08/08(金) 15:30:49 ] >>90 >>92 回答ありがとうございます。 どうやらC++でのプログラムの作り方自体自分はよくわかっていないようです。 何か勉強になるサイトや本、見るとためになるようなものがあれば教えていただけませんか?
94 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:43:14 ] 習うより慣れろ
95 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 19:06:15 ] >>83 ありがとうございました charに数値を入れることができました ひょっとしてcharを配列にすると8Bit以上の数値を入れることもできますか?
96 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 19:28:03 ] なぜ試さないの?
97 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:04:46 ] >>85 分野にもよる。 家庭用ゲーム機は全体的にメモリが(同時期のPCと比べ)少ない場合が多いというだけ。 だからその分上手にやりくりしないといけない。 PCやサーバだとあまりそういう話は聞かない。無駄遣いは忌避されるべきだがそこまでシビアにはならない。
98 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:13:04 ] 使えるメモリは有効に使うべき。ってのがVista
99 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:50:06 ] >>85 PSとサターンで同じゲームを作ったときは どの文字を使うかってのも気を使ってた 同じシーンで使う文字種を減らしてフォント絵のメモリ節約とか
100 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:53:12 ] 音源仕様の差は面倒だったなぁ
101 名前:デフォルトの名無しさん [2008/08/09(土) 16:46:11 ] ここにはゲーム製作者もいるのかお
102 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:50:39 ] ゲームってどうやって作ってたん? キャラ動かしたりするのは元データがあって、それをプログラマーが動かしてたの? プログラマーによって綺麗な画面になったり汚い画面になるとか聞いたことがあるが。。。。。。わからん
103 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:53:19 ] ゲームとか今の話なのか昔の話なのかでかなり変わりそうだが
104 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:55:51 ] 昔のゲームのハードを調べるのがいい
105 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:38:36 ] 今の3DゲームはMAYAとかでモデリングした後に、そのデータを使ってフィールド上で動かすの? それだとリアルタイムレンダリング?だからプログラマーの腕が問われるのかね。スレチだな
106 名前:デフォルトの名無しさん [2008/08/10(日) 16:47:15 ] C++で自分だけのライブラリーのようなものを作るにはどうやって 作っていったらいいのですか? ソリューションライブラリーのようなものを作って、 プロジェクトごとにヘッダーを1つずつ作ればいいのでしょうか?
107 名前:デフォルトの名無しさん [2008/08/10(日) 19:04:48 ] 106よろしく!
108 名前:デフォルトの名無しさん [2008/08/10(日) 20:18:28 ] Visual C++ 2008 Express Editionで、本に書いてある通りに ファイル → 新規作成 → プロジェクト → Win32プロジェクト → アプリケーションの設定画面で「空のプロジェクト」にチェック プロジェクト → 新しい項目の追加 → C++ファイル(cpp) として、ソースファイルに #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR 1pCmdLine, int nCmdShow ) { return 0; } というプログラムを書いて「ソリューションのビルド」をしたところ、 1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------ 1>コンパイルしています... 1>test.c 1>c:\source\test\test.c(6) : error C2059: 構文エラー : 'サフィックスが無効です。' 1>c:\source\test\test.c(6) : error C2143: 構文エラー : ')' が '定数' の前にありません。 1>c:\source\test\test.c(6) : error C2143: 構文エラー : '{' が '定数' の前にありません。 1>c:\source\test\test.c(6) : error C2059: 構文エラー : '<不明>' 1>c:\source\test\test.c(8) : error C2059: 構文エラー : ')' 1>ビルドログは "■■■■" に保存されました。 1>test - エラー 5、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== となって失敗してしまいました。 全て本に書いてある通りに行ったつもりなのですが、何がいけなかったのでしょうか。 使用OSはWindows Vistaなのですが・・・
109 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:29:08 ] 1pCmdLineがいけない
110 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:43:51 ] 変数名の先頭って数字は使えなかったんじゃなかったっけ?
111 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:10:24 ] >>109 >>110 言われた場所を変えてみたらできました! ありがとうございました!
112 名前:デフォルトの名無しさん [2008/08/10(日) 22:25:33 ] 106も答えてください
113 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:39:30 ] 自分がよそのlib使うときを考えたらわかるべ
114 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 23:52:58 ] >>106 あまりしつこいと教えてくれないよ。 プログラマとはそんな性分の奴が多いw
115 名前:デフォルトの名無しさん [2008/08/11(月) 00:29:37 ] >>106 ここで聞いても自分で使う暮らすライブラリこりこり作ってる殊勝な人間は少ないから無駄
116 名前:デフォルトの名無しさん [2008/08/11(月) 05:49:57 ] そうなのか。
117 名前:デフォルトの名無しさん [2008/08/11(月) 06:03:37 ] そうなのだ。
118 名前:デフォルトの名無しさん [2008/08/11(月) 06:18:01 ] int型整数の下三桁を抜き出したいんですが、 どうやったら効率的ですか? a=123456 とあったら、 b=456 って感じに抜き出したいんですが。 私が考えたのでは、 b=(a%10); a/=10; b+=(a%10)*10; a/=10; b+=(a%10)*100; a/=10; というのなんですが、もっとスマートなやり方ってありますか?
119 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 07:54:38 ] y = x % 1000; じゃいかんのか?
120 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:35:47 ] % 10がわかってて % 1000 が出てこないとはw
121 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 13:24:21 ] 質問です。 以下のページに記載されている内容と同じ問題が発生します。 m--takahashi.com/bbs/pastlog/05700/05696.html TrackPopupMenu()の前後でSetForegroundWindow()とPostMessage(WM_NULL)を実行しましたが、 効果がありません。どうすればこの問題を回避することができますか?
122 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 14:02:21 ] 前後ってなんだよ。 TrackPopupMenuの前でSetForegroundWindowしてる? どうしてもおかしいままなら、その部分のコード出してごらん。
123 名前:121 mailto:sage [2008/08/11(月) 15:17:09 ] >>122 レスありがとうございます。 以下がフックプロシージャです。 LRESULT CALLBACK MouseProc(int p_iCode,WPARAM p_wParam,LPARAM p_lParam) { COPYDATASTRUCT stCopyDataStruct; MOUSEHOOKSTRUCT *pstMouseHookStruct = (MOUSEHOOKSTRUCT *)p_lParam; if (p_iCode == HC_ACTION && p_wParam == WM_NCRBUTTONUP && pstMouseHookStruct->wHitTestCode == HTMAXBUTTON) { stCopyDataStruct.dwData = 0; stCopyDataStruct.cbData = sizeof(MOUSEHOOKSTRUCT); stCopyDataStruct.lpData = pstMouseHookStruct; SendMessage(g_hWnd,WM_COPYDATA,0,(LPARAM)&stCopyDataStruct); return TRUE; } return CallNextHookEx(g_hHook,p_iCode,p_wParam,p_lParam); }
124 名前:121 mailto:sage [2008/08/11(月) 15:17:43 ] 以下が本体のウィンドウプロシージャです。 LRESULT CALLBACK WndProc(HWND p_hWnd,UINT p_uiMsg,WPARAM p_wParam,LPARAM p_lParam) { COPYDATASTRUCT *pstCopyDataStruct = (COPYDATASTRUCT *)p_lParam; HMENU hSubMenu; // ポップアップメニューのハンドル MOUSEHOOKSTRUCT *pstMouseHookStruct = pstCopyDataStruct->lpData; switch (p_uiMsg) { case WM_COPYDATA: hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu,MF_STRING,0,TEXT("MenuItem")); SetForegroundWindow(pstMouseHookStruct->hwnd); TrackPopupMenu( hSubMenu,TPM_NONOTIFY, pstMouseHookStruct->pt.x,pstMouseHookStruct->pt.y, 0,p_hWnd,NULL); PostMessage(pstMouseHookStruct->hwnd,WM_NULL,0,0); DestroyMenu(hSubMenu); break; default: return DefWindowProc(p_hWnd,p_uiMsg,p_wParam,p_lParam); break; } return 0; }
125 名前:デフォルトの名無しさん [2008/08/11(月) 15:27:15 ] MSDNライブラリでprintf関数の説明を読んでみると、以下の記述があります。 ---------------------------------------------------- ライブラリ LIBC.LIB シングルスレッド スタティック ライブラリ、リテール版 LIBCMT.LIB マルチスレッド スタティック ライブラリ、リテール版 MSVCRT.LIB MSVCRT.DLL 用インポート ライブラリ、リテール版 ---------------------------------------------------- このことから、printfにはスタティックライブラリの版とDLLの版がある ということが分かります。 そこで質問なのですが、僕が作った"Hello, World"プログラムは printf関数をスタティックに.exeにリンクしているんでしょうか? それとも.exeにはprintf関数は含まれていなくて、実行時にprintf関数 を含むDLLがロードされてそれを呼び出しているんでしょうか? どうやったら確かめることができるのかを含めて教えてください。
126 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:50:02 ] >>125 プロジェクトのプロパティの「C/C++」の「コード生成」の「ランタイム ライブラリ」で指定する。
127 名前:デフォルトの名無しさん [2008/08/11(月) 18:53:08 ] keybd_event使って特定キーが押されてる間処理を繰り返したいのですが voidだからwhileの条件式に入れれませんでした。 どうすればいいのでしょうか
128 名前:125 mailto:sage [2008/08/11(月) 19:25:58 ] >>126 なるほど。オプションで指定するんですね。ありがとうございました。
129 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:19:03 ] #include <iostream> #include <vector> #include <windows.h> #include <psapi.h> #pragma comment(lib, "psapi.lib") int WorkSize(void){ PROCESS_MEMORY_COUNTERS info; GetProcessMemoryInfo(GetCurrentProcess(),&info,sizeof info); return info.WorkingSetSize; } using namespace std; int pm=WorkSize(); void MyFunc(){ vector<string> vec; for(int i = 0; i < 1000000; i++) vec.push_back("abcdefghijklmnopqrstuvwxyz"); cout<<WorkSize()-pm<<endl; } int main(){ cout<<WorkSize()-pm<<endl; MyFunc(); cout<<WorkSize()-pm<<endl; system("pause"); return 0; } VC++2008でvector+stringを使ったらメモリ解放しきれてないみたいなのですが、 これはちゃんと解放しきる事は出来ないのでしょうか。
130 名前:デフォルトの名無しさん [2008/08/12(火) 14:21:54 ] すいませんVC++6.0のMFCでCSVファイルを作るにはどうすればいいですか?
131 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:22:53 ] >>129 std::vectorは一度確保したメモリはデストラクタを除き 自動的には解放されない。 どうしてもやりたいならswap技法を。 vec.swap(std::vector<std::string> >());
132 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:24:48 ] vec.swap(std::vector<std::string>()); もしくは std::vector<std::string>().swap(vec); だった
133 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:37:34 ] >>130 CSVといっても、所詮はテキストデータ "123,456,789" とういテキストデータで、ファイル化してみれば分かる 拡張子csvだと尚良し
134 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:48:32 ] 今乗り換えというかなれておかないと大変だと思うよ。 俺は趣味でやってるからいいんだけど。
135 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:53:12 ] >>132 それをMyFuncの最後に書いてみたのですが、結果は変わらず…。 使い方が間違っているのでしょうか。 ↓メモリ表示結果 0 68435968 7213056
136 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:11:06 ] freeしてもOSにメモリが返されるわけではないし、 ワーキングセットなんてプログラム上の確保した量とはあまり関係がないし。
137 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 17:25:11 ] >>132 前者はダメだ。 非constな参照引数に一時オブジェクトは渡せない
138 名前:デフォルトの名無しさん [2008/08/12(火) 17:51:38 ] 質問させてください。 WINAPIでは、戻り値にTRUEかFALSEを多用している様に思うのですが、これは0か0以外の数値を 表しているのでしょうか? たとえばマウスの左ボタンをクリックして、クリックされたら数字の1、されなかったら0を返す、という事? いまいちイメージが掴めないのですが、0以外の数字が返された場合はその関数を正常処理する、という感じですか?
139 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:11:12 ] MBCSの場合charに1バイトと2バイトの文字を混ぜた文字列を設定したとき char[x]が1バイト文字か2バイト文字の前か後ろかを見分ける方法はありますか?
140 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:27:31 ] >>138 あまり気にせず、結果をif文その他の条件判断で使える、位に思っていればいい。
141 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:29:38 ] >>140 そうなんですか なんかしっくりこなくて戸惑ってました。ありがとうございます
142 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:30:04 ] >>139 MBCSの文字コードによるが、SJISだと前にさかのぼらないと判断できない。 UTF-8だと、1バイト文字か、2バイト以上の1バイト目かそれ以降かの判断はつく。
143 名前:デフォルトの名無しさん [2008/08/12(火) 18:39:10 ] 今、猫でもわかる〜を見て勉強しているのですが @ // timer.h #define IDM_END 1000 #define IDM_OPTION 2000 #define IDC_STATIC 3000 A// Dialog OPTDLG DIALOG DISCARDABLE 0, 0, 121, 69 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "オプション" FONT 9, "MS Pゴシック" BEGIN DEFPUSHBUTTON "OK",IDOK,7,38,50,14 PUSHBUTTON "キャンセル",IDCANCEL,61,37,50,14 LTEXT "オブションです。",IDC_STATIC,36,19,48,8 END の、1000や0, 0, 121, 69といった数字の部分がわかりません・・・。 @とAでは数字の意味が違うと思うのですが、@の数字は適当に決めていいのでしょうか? Aは何か決まりごとが?
144 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:39:52 ] >>142 つまり、コードによるけどふつうの1バイト文字と同じものが2バイトの前か後ろに 出る可能性はあるということですね 2バイト文字に含まれない文字ってないですかね〜 区切り文字として都合のいい文字を探してます
145 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 19:52:52 ] >>136 なるほどです、ありがとうございました。
146 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:16:15 ] >>144 所謂ShiftJISの2バイト目には、(単独なら)アルファベットと同じ文字コードも来れば1バイト目と同じコードも来る。 従って、前に遡って判定するか素直に頭から判定するか、対策が必要。 尤も、0x40未満のコードはShiftJISに使われないので'/'でも';'でも区切りに使えなくはないと思う。
147 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:29:37 ] >>143 1の数字は、同じカテゴリでかぶらないようになってれば適当で良い。 2は、ダイヤログの大きさ。後ろ二つが幅と高さ。適当に変えてみるとわかるよ。
148 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:31:47 ] >144 タブコードはダメ?
149 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 02:03:57 ] >>146 0x40以下のコードを調べてみようと思います ありがとうございました >>148 タブとか改行コードとか使うのが無難ですかねやっぱり
150 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:12:38 ] Visual C++ 2005を勉強中なのですが、TRACEマクロ(ATLTRACEマクロ)で ユニコード文字列(*wchar)を出力しようとして、フォーマット文字列に"%S"と 指定したら、実行時にライブラリ内のASSERTで引っかかって止まってしまいます。 TRACE出力にユニコード(漢字)文字列を出力するには、どうすれば良いのでしょうか ?
151 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:28:49 ] >>147 助かります、どうもありがとうございました。早速やってみます。
152 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:48:16 ] USBから受信したデータをキー入力に変えたいのですが パソコンのキーボードでキーを入力したときに送られるメッセージってなんですか? ソフトでこのメッセージを送ればキーボートと同じようなものも作れますか?
153 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:58:31 ] USBから受信したでーた? キー入力フックして入力内容をだますってことか? それともソフトがキーが入力されたように振舞うってことか? それなら最悪DDKとかめんどくさいのに手を出さないとだめかもな どっちにしても何が言いたいのかよくわからん エスパーな人よろしく
154 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:33:08 ] 別に受信するほうはすでにあるんだろ。 キーを送るのはウィンドウに限ればメッセージ送るだけでいいかもしれない。
155 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:44:08 ] オートマウスでも作る気か? MMORPGとかで不正行為する用か、三国人!
156 名前:デフォルトの名無しさん [2008/08/14(木) 16:24:45 ] 初心者の妄想質問です。 例えば、1つのアプリケーションなのですが扱う機能が違う為に2つのウィンドウを開いて同時に使う、という場合には どのようにしたらいいのでしょうか? 同じプロジェクト内ではなく、別々のプロジェクトでソースを書いていかなくてはならないのでしょうか? またその際は、ハンドルの名前も別々にしなくてはならないのでしょうか?
157 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:04:09 ] >>156 「一つのアプリケーション」が「一つの実行モジュール」を指すなら、逆に寧ろプロジェクトは一つにしないと(一般的には)ダメ。 一つのソースで複数のウィンドウの面倒を見るか、別のソースに分けるかは、使用するライブラリ次第。 # まぁ、普通分けるだろうけれど。 つーか、扱う機能が違うのに「一つのアプリケーション」にする理由がないなら分けた方が使い易くないか?
158 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:28:32 ] >>152 ゲームパッドの入力をキー入力に変えたいのか? だったら無理せずJoyToKey使え。
159 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:53:15 ] >>153 PICとPCをUSBで接続していて、親指先が+で他4本が−のスイッチで組み合わせによるPCへのキー入力をしたいのですが、 PICまではできてるんですが、PCのキーボードでキーを押した時と同じようにPC上に送出する関数というかメッセージというか流れが知りたいのです。
160 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:00:26 ] >>154 その辺の流れがちょっとわからないのですが、キーダウンメッセージはアクティブなウィンドウに対して受取分岐がソフト上にある場合に機能するもの なんですよね。キーが押されたメッセージ事態を作り出すにはどうすればいいんでしょうか?
161 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:47:50 ] Visual C++ 2008 Express Editionを落としてインスコしてて、諸事情でアンスコしてインスコし直そうと思ったのですが どれをアンスコすればいいのかわかりません C++をアンスコすれば全てアンスコされるのではなく、C++と一緒に複数同時にインスコされてました それぞれ個別にアンスコしないといけないようです C++ アンスコでぐぐっても的したページがヒットしません どれを消すべきかわかる方いましたらお願いします
162 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:48:28 ] アクティブじゃなくてフォーカスのあるウインドウ
163 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:49:44 ] アンダースコートがどうしたって?
164 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:35:20 ] アポリケーションの追加と削除で、VCEEとインストロール日時が同じで、見覚えの無いやつを全部消しちゃえば?
165 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:56:31 ] SQL Server CompactとWindows SDKとあと何があったっけ?
166 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 07:03:44 ] >>161 Microsoft .NET Framework 3.5 Microsoft .NET Framework 3.5 Language Pack - 日本語 Microsoft Visual C++ 2008 Express Edition - 日本語 Microsoft Windows SDK for Visual Studio 2008 Express Tools for .NET Frameword Microsoft Windows SDK for Visual Studio 2008 Express Tools for Win32 Microsoft Windows SDK for Visual Studio 2008 Headers and Libraies MSDN Library for Microsoft Visual Studio 2008 Express Edition Microsoft Silverlight
167 名前:161 mailto:sage [2008/08/15(金) 09:12:27 ] (TдT)アリガトウございました無事インスコ出来ました
168 名前:121 mailto:sage [2008/08/15(金) 16:16:15 ] コードに問題があれば指摘してください。 以下のページに記載されている方法を試しましたが、効果がありません。 homepage3.nifty.com/endou/tips/04/tips39.htm 本体のウィンドウでは、このような現象は起きません。 開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
169 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 13:39:15 ] これまではC言語の学習用にEmacsを使用していたのですが、今回VisualStudio2008を購入しました。 そこで質問なのですが、VisualStudio2008にはEmacsのようにtabキーを押したときに必要なだけ字下げする機能がありますか?
170 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:18:08 ] 複数行選択時の、TAB、ShiftTABの動作が近い?
171 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:22:56 ] >>169 とりあえずキーバインド設定は変更したのか?
172 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:48:58 ] ちょっと質問があります。 std::cout << std::toupper('a') << '\n'; std::cout << toupper('a') << '\n'; この二つは何か違うのでしょうか? 上のやつは #include <cctype> しないといけないようだが・・・
173 名前:169 mailto:sage [2008/08/16(土) 21:20:11 ] キーバインド Visual Studioで検索したらやり方がわかりました。 どうもありがとうございました。
174 名前:169 mailto:sage [2008/08/16(土) 22:53:11 ] インデントはEmacsのようにできるのですが、 データの保存など他のキーの設定もEmacsのものになってしまいました。 インデントだけをEmacsのものにする方法はありますか?
175 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 02:19:20 ] そうきたか、 コマンド検索のとこに「インデント」っていれて 適当なコマンドと設定を入れ替えろ あと、プログラマ志望なら 今のうちにEmacs操作覚えた方が良いぞ、楽だから vi派って訳じゃないんだろ
176 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 02:51:42 ] ( ´д)ヒソ(´д`)ヒソ(д` )今時Emacsだって・・・
177 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 04:41:46 ] 最近の流行はなんなんだ?
178 名前:デフォルトの名無しさん [2008/08/17(日) 06:58:46 ] スレ違いかもしれませんが、教えてください。 Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)をダウンロードしてきて インストールしたのですが、インストールディレクトリが”一番空き容量が多いドライブの直下”に インストールされてしまいます。これは仕様なんでしょうか?
179 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:39:00 ] テンポラリ展開じゃなくて?
180 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 11:17:04 ] >>179 一時ファイルのようで、展開されたファイルは削除しても問題ないっぽいです。 お騒がせしました
181 名前:デフォルトの名無しさん [2008/08/17(日) 13:53:54 ] Visual C++ 2008 Express Editionで、 ファイル → 新規作成 → プロジェクト → Win32 コンソールアプリケーション プロジェクト → 新しい項目の追加 → C++ファイル として、 stdio.hをインクルードして文字列を表示させる簡単なコードを書いて実行したのですが、 コマンドプロントみたいなウィンドウが一瞬開いてすぐに閉じてしまったため 文字列をよく確認出来ませんでした。 どうしたら開いたままにしておけるのでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:31:25 ] あるあるw どうするんだろ 出力ウィンドウにも何も出ない?
183 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:16:03 ] 「○○を読み込みました」・「シンボルが読み込まれました。」 っていうのが4行と、 あともう1行、 「プログラム○○はコード0(0×0)で終了しました。」 っていうのが出ます。 コード0っていうのはreturn 0にしたからだと思うんですが…。