1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
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にしたからだと思うんですが…。
184 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:19:07 ] 邪気眼がどーのこーの
185 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:35:48 ] >>181 同じく初心者で、昨日から始めたんですが returnの前に、文字を入力する関数を入れることで対処してます。 Cだと scanf("%d",n); とかなんですが。
186 名前:185 mailto:sage [2008/08/17(日) 15:38:07 ] ごめん。 今見たら scanf("%d",&n); でした。もちろん、先にnは宣言するものとして。 でもC++だと入力するための関数違うと読んだ気も。
187 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:40:48 ] Ctrl+F5でいいじゃね?
188 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:45:39 ] そうか、、、 とりあえず、 ・確認したいだけなんだったら、stderrでメッセージ出せる ・あと処理の最後に無限ループ入れる
189 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:46:25 ] >>187 ガチで知らなかったんだがw
190 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:50:17 ] 全ての質問が初心者ではなく初心者を装った釣師によるものだと仮定して いかにうまくボケるかを競いあう ここはそういうスレの一つだと思い込んでいる
191 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:01:39 ] >>190 ガチで知らなかったんだがw
192 名前:181 mailto:sage [2008/08/17(日) 16:30:01 ] >>185 ,>>187 ,>>188 出来ました!ありがとうございます!
193 名前:デフォルトの名無しさん [2008/08/17(日) 16:42:45 ] dialogBoxにPostMessageしても届かないんだが、ちなみに PostMessage(hDlg,0x500,123,456); なぜだ?
194 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:52:28 ] お前ぜんぶ聞く気だろ 調子乗んな
195 名前:デフォルトの名無しさん [2008/08/17(日) 20:53:27 ] アふぉはだまっとれ
196 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 10:52:14 ] >>185 getchar()でいいじゃん。わざわざ変数を用意する必要があるscanf()を使うのはナンセンスだ。 >>188 無限ループってあんた、エコじゃないな。 >>181 cmd動かしておいて、コマンドラインから動かすって手もあるよ。
197 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 10:58:29 ] 昔から、return 0; の部分にブレークポイント置いている。 まあデバッグ必要ないときはCtrl-F5だが。
198 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:12:40 ] _findfirst("tes*.tx", &searchData) でファイルを検索した場合には test.tx は見つかり test.txt は見つかりません。 しかし、_findfirst("tes*.txt", &searchData) で検索した場合には test.txt も test.txtx も見つかります。 Q1. ドキュメントには書いてないのですが、この関数は拡張子を3文字しか見ないのでしょうか。 Q2. 4文字以上の拡張子に対応したファイル検索関数にはどんなものがありますか。
199 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:45:36 ] >>196 >getchar()でいいじゃん。 あらほんと。今度からこっち使います。 ありがとう。
200 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 18:39:01 ] VC使ってるならsystem("pause");でいいかと
201 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:15:09 ] 変なクセつけちまうから getchar()で良いでしょ
202 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:10:13 ] >198 たしかWindowsが隠して格納してる8.3なファイル名がひっかかるんだな。 Short Filenameってやつ。findfirstしてあらためて排除するとか。
203 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 02:02:38 ] メソッド名の頭にアンダーバー付いてるのとか 何か意味があるのですか?
204 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 02:21:43 ] ttp://msdn.microsoft.com/ja-jp/library/45aft37a.aspx
205 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 12:28:52 ] ありがとう
206 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 05:52:40 ] Dドライブに今までなかったファイルがいくつか作成されてる。。。 Eula.1041.txt globdata.ini install.exe install.ini install.res.1041.dll VC_RED.cab VC_RED.MSI vcredist.bmp しかも作成日時が2007年11月20日。 二週間ほど前にPC買い替えたばかりだからこの作成日時はおかしいと思う。 調べてたらvisualC++が関係してるっぽい。 これなに?
207 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 08:00:59 ] インストーラが一時ファイルを展開したんだろ。
208 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 09:56:20 ] VS2008のインストールしたんだろうな
209 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 11:36:28 ] インストーラって怖いな
210 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:32:56 ] やっぱりか 2005は初めから入ってたんだけど、これって勝手に更新したりするものなの? 2008なんてインストールした覚えがないし、気味わるいからアンインストールしたいんだけど。。
211 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:47:25 ] 別に一時ファイルだし勝手に消せば? とりあえずそのファイル群は再配布可能なやつだと思うから なんかのソフトが必要としたんじゃないの? 2008というのは2007/11/20だからそう思ったんだけど。
212 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:03:48 ] なんかのソフトが必要としてるんならアンインストールしないほうがいいね。。 一時ファイルだけ削除しておく。 >>207-210 サンクス
213 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:03:53 ] > 2005は初めから入ってたんだけど、 VisualStudioプリインストールなんてどこで売ってるの?? > これって勝手に更新したりするものなの? しない。
214 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:06:36 ] visualstudioというのははいってなかった。 visualC++2005Redistributableというのが初めからはいってた。
215 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:12:58 ] それはランタイム。VCどころかパソコン初心者レベルの話になってきたな・・・
216 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 19:01:21 ] そのランタイムというやつは消しても問題ない?
217 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 19:23:17 ] 消すな。最初から入ってたということは他のソフトが使ってる。
218 名前:デフォルトの名無しさん [2008/08/20(水) 20:57:37 ] Visual Studio2003でWindowsプログラムを作ってるんですが、 よくバグってメモリリークしたり、既に解放済みのアドレスを解放したりしてます。 そういうのって、PCに悪影響は無いんでしょうか?
219 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:11:17 ] 悪影響はあります
220 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:28:19 ] >>217 最初から入ってたのは2005。 今日気づいたら2008がインストールされてた。 まぁ気にしないことにする。
221 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:35:34 ] >>220 だけど自己解決。 BUFFALOの ttp://buffalo.jp/products/catalog/multimedia/chideji/streamtest.html をインストールしたときに一緒についてきたみたい
222 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 22:02:47 ] >>220 気付いたらってどういう意味だおいw
223 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 23:41:28 ] >>222 もう放っとこうぜ >>218 OSがうまくやってくれる、たぶん
224 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:36:39 ] ちょっとよろしいでしょうか? MFCを勉強しようと思って www.kumei.ne.jp/c_lang/mfc/mfc_01.htm のページのコードをコンパイルしてみて うごいたのですが プロジェクトの設定は「MFCを使用しない」に なっていても問題ないみたいなのです。 MFCを使っているのに「MFCを使用しない」でよいのでしょうか?
225 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:48:07 ] >>224 そんな設定どこにあった? 基本的にMFCを使うかどうかはヘッダのincludeとリンクするライブラリで決まる。
226 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:05:37 ] >>225 なるほど。MFCを使用するかしないかを変更することによって リンクするライブラリやコード生成のオプションが変わるみたいです。 なのでMFCを使用するかしないかの設定はあくまで テンプレートということですね。 やっぱウィザードに頼っているとだめっすね。
227 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:16:49 ] やべー なんかMFCマスターした気がする
228 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:19:55 ] おめでとう
229 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:26:17 ] ありがとう
230 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:38:50 ] オナニーマスター黒沢
231 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:57:30 ] fatalita.sakura.ne.jp/3DLib/Ref/_T/ にCStringはマルチスレッドに対応してないって書いてあるんだけど マジで? やべーじゃん。
232 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:43:32 ] >STLのstring型やwstring型は利便性においてはCString型にあるマルチバイトとユニコードの相互変換機能が無い分劣りますが、 >スレッドセーフである為classやtypedef内の変数に宣言するのに向いています。 >マルチスレッドで文字列を扱う際にはstring型かwstring型を使いましょう。 大嘘やん。標準にはスレッドの概念が無いし、スレッドセーフかどうかは実装依存になる。 CStringも使い方さえ間違わなきゃマルチスレッドで使える。 ttp://msdn.microsoft.com/ja-jp/library/h14y172e.aspx
233 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:47:26 ] なーんだ
234 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:48:29 ] そして、VC++のstd::stringはどうかというと、こうなっている。 msdn.microsoft.com/ja-jp/library/c9ceah3b.aspx ちゃんとやらないとだめだという点でCStringと互角。
235 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 19:32:26 ] charに0〜255の数値を設定することはできるようですが char[]にintやfloat等の数値を設定したり取得するにはどうすればいいですか?
236 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 19:39:53 ] union使うかビットシフトかキャストで。 目的による。
237 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 20:50:24 ] 型について学び直せ。
238 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 21:13:58 ] 文字列として受け取って変換するとかの話?
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文とうまくあわせられません・・・ 大変申し訳ありませんが、どなたか教えてもらえないでしょうか?もうだめぽ・・・><