- 1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 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でビルドしてもエクスポートされるんですね。
|

|