- 1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 388 名前:デフォルトの名無しさん [2009/05/07(木) 00:20:01 ]
- すいません、今日C++始めたばっかりなんです
VBは型ぐらいなら分かるんですがどうしてもふに落ちないもので
- 389 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:32:58 ]
- 自分もC始めたばっかりなんだけど
char string[] = "ABCDE"; char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' }; 文字列は文字の配列だよって理解でいいの?
- 390 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:56:44 ]
- >文字列は文字の配列
読んで字の如し
- 391 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 02:41:38 ]
- >>388
VBやったことあるなら、AscとChr$は知っているだろ。 めちゃくちゃ乱暴に言うと文字リテラル'A'は、Asc("A")と同じ。 Ascの戻り値とChr$の引数、VBではLongとかで扱っていただろうが、 Cではcharという独立した型が与えられていると思えばいい。
- 392 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:22:06 ]
- n文字型があれば1文字型は不要ではという質問だと思うが、
文字の比較や判定の基本はバイト単位だな 32bitや64bit単位でできないこともないけど
- 393 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:38:31 ]
- ああunicodeもあるから
文字単位で比較か
- 394 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:54:01 ]
- >>386
文字と文字列の理解が怪しいな。 そもそもポインタとか分かってる? いきなりC++にいくのは自殺級に難しいと思うからC言語から学んだ方が良いと思うよ。
- 395 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:57:40 ]
- >>389
> 文字列は文字の配列だよって理解でいいの? いいんじゃない。文字列は文字型変数の配列ね。 あと実際に文字列は扱えないからその先頭アドレスで扱うことになるってことを理解してくれ。 例えば "ABCDE"=="ABCDE" がtrueになるかどうかは処理系依存。 左の"ABCDE"と右の"ABCDE"が別に確保されていればアドレスが異なるから これはfalseだが、コンパイル時にコンパイラが気付いてメモリ節約のために 同一文字列をマージすればtrueとなる。 > char string[] = "ABCDE"; > char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' }; これは全く同じになりますよ。
- 396 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:27:08 ]
- で、結局メリットデメリット誰も言えないわけで
- 397 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:36:05 ]
- >>396
は?頭おかしいの?
- 398 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:44:03 ]
- データ型が違うという事実があるだけで、メリットもデメリットもない
メリットは使うときがくれば分かるとしか言いようがないな 使わない人にとっては面倒なだけと言えばデメリットにもなるだろうが、それは何にしてもそうだろう
- 399 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:10:36 ]
- これだからVB厨はコンピュータのこと何もわかってないと
言われるんだよ Cやったあとはマイコンもやれよ で電子回路やってFPGAもやれ そこでやっとプログラマといえる
- 400 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:34:58 ]
- まぁ、いいんじゃないの一つずつ覚えていけば
VBは直感でも何となくできるし、プログラマへの足がかりぐらいにはなってると思うよ 偉そうだったらぶっ飛ばしたなくるけどw
- 401 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:37:26 ]
- >>399
しかたないさ、何てったってvisualかつbasicだもんなw そりゃしょーがない
- 402 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:42:49 ]
- 別にVBでもいいじゃん。
ただし >>396 > で、結局メリットデメリット誰も言えないわけで 全く見当違いな質問に対して答えないだけで 「言えない」発言をする低能を除く!
- 403 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:44:30 ]
- そろそろソフトウェアとハードウェアを一緒に考えてしまってるプログラマが
えらそうにしている風習を改めないと。
- 404 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:02:35 ]
- 一方しかわからないやつに偉そうにされるのはもっと嫌だw
- 405 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:55:25 ]
- 同じプロジェクトのソースをいろいろなビルド構成や複数バージョンのVCで
ビルドしているのですが、ビルド構成やVCのバージョンごとに、 リソースのFILEVERSIONやPRODUCTVERSIONの右端の数字を 違う値にしたいと思っています(どういう構成でビルドされたものかを示すため)。 ビルドするたびに手動で書き換えていると絶対に忘れてしまうことがあるので、 ビルド時にこの数字を自動で書き換えたいのですが、 VC6、VC2005、VC2008に共通の方法はありますでしょうか?
- 406 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:59:44 ]
- それぞれの構成で 別々のコンパイラオプション /D "文字列" を定義する。あとはコード内で
#ifdef "文字列"
- 407 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 22:06:43 ]
- MSC_VER見たいな定数がそれぞれ決まってたような気がするから
プリプロセスでその値を見て文字列を選ぶ
- 408 名前:デフォルトの名無しさん [2009/05/07(木) 22:56:01 ]
- 数値にインクリメントは使えないのでしょうか
cout<<2++; で3になると思いましたがエラー出ました
- 409 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:16:49 ]
- >>408
C言語の基礎だぞ。 ++は変数に対してのみ使える演算子です。 しかも百歩譲ってインクリメントできたとしても cout<<2++; では結局2が出力されるだけ。 その上言いたいことは >エラー出ました エラーメッセージを100回読め。
- 410 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:47:24 ]
- マネージ拡張C++する奴はおらんのか。
VB.NETでやるならまだしも、C#みたいな中途半端言語で.NETやってるのか。 C#でやるよりも、C++の標準ライブラリを生かせていいと思わないか。
- 411 名前:デフォルトの名無しさん [2009/05/07(木) 23:50:37 ]
- じゃあ、マネージ拡張を勉強するので、本を贈ってください。
- 412 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:54:54 ]
- マネージ拡張C++はある意味中途半端なんよ。
C#かC++のように極端のほうがいい。 C#でどうしてもスピードが足りないときのみか、C++資産使うときだけ。マネC++
- 413 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 01:45:13 ]
- VC2008EEのデバッガを使ってデバッグ中、
値が見れない(デバッグのウィンドウに表示されない)変数があるんですけど、なぜなんでしょう? その変数はforの{}内で宣言した変数なんですけど関係ありますかね?
- 414 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 02:03:01 ]
- 停止している場所がforの外なら見れない。中なら見れる。
- 415 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 02:34:17 ]
- >>414
forの中なのに見れませんでした。 何か別に原因があるのかなぁ・・・。
- 416 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 11:43:10 ]
- 再現するソースを見せろ
- 417 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 16:02:15 ]
- 最適化無効にしてないとか?
- 418 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:04:31 ]
- >>415
ウォッチウィンドウにぶち込め
- 419 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:05:25 ]
- 多分みるところ間違ってるのとたまたま表示されてないだけだろ(よくあるよねw)
- 420 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:36:57 ]
- 俺はReleaseデバッグの時はよくある
- 421 名前:413 mailto:sage [2009/05/09(土) 23:00:59 ]
- 遅くなりましたがレスありがとうございます。
>>416 全部のせるのは長くなりそうなので・・・。 >>417 最適化は有効のままでした。 >>418 シンボルが見つかりませんってエラーが出ます。 >>419 見たのは自動変数とローカルです。 >>420 Releaseでビルドしたものをデバッグしてました。 Debugでビルドにしたらちゃんと変数が表示されました。 デバッガ使う時はDebugでビルドしないとだめでしたか。
- 422 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:10:17 ]
- >>421
>デバッガ使う時はDebugでビルドしないとだめでしたか そりゃデバッグモードでしかデバッガは使えないだろw >>420 ESP乙
- 423 名前:デフォルトの名無しさん [2009/05/10(日) 12:20:11 ]
- VC2008 XP
#include <stdio.h> int factn(int n); int main() { int n,fact; for (n = 0; n <= 10; n++) { fact = factn(n); printf("d%! = %d\n",n,fact); } while ( true ) { ; } } int factn(int n) { int i,fact; fact = 1; for (i = 1; i <= n; i++) { fact = fact * i; } return fact; } 関数を使って0〜10までの階乗がしたいんですが 表示がd!=1 d!=2…ってなってしまいます。 どこがおかしいんでしょうか?
- 424 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:25:43 ]
- >>423
d% → %d
- 425 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:31:49 ]
- あああぁぁorz
ありがとうございます
- 426 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:50:11 ]
- nulデータを使うとエラーが出てしまうのですが、変数は絶対に初期化しなければなりませんか?.
VBみたいにnull=0又は0文字の文字列という扱いには出来ないものでしょうか
- 427 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:56:39 ]
- windef.h で NULL = 0 と定義されているが、このことと 「変数は絶対に初期化しなければなりませんか?.」は
直接関係しない。
- 428 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:57:55 ]
- ありがとうございます!!
- 429 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:58:50 ]
- どういうわけか、最近のC関連の説明とか本ってオペランドの説明ばっかな。
オペランドを説明することが解説だと思ってるようだ。だから初心者にとっては わかりにくいんだよ。コンピュータの基本がわかってない奴が本を書くように なってるんじゃないのかって感じる。
- 430 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:01:34 ]
- 一理あるが、オペラント(あるいはオペレータ)がわからんと、先には進めない。
- 431 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:04:49 ]
- 初心者スレなんだからもう少し心を広く持った方が
- 432 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:14:08 ]
- >426
0文字の文字列を作るときはnulで初期化であってる
- 433 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:35:12 ]
- 配列のインデックスの最大値を取得するにはどうすればよいでしようか?
ぐぐってもvbばっかり出てきます
- 434 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:39:08 ]
- sizeof()
- 435 名前:デフォルトの名無しさん [2009/05/10(日) 19:47:38 ]
- >>433
配列の名前をpenisとするとだな、 sizeof(penis);で取得できる。
- 436 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:53:48 ]
- >>435
penisは動的配列なんだな。 sizeof(penis)が一定値にならないぞ。
- 437 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:54:15 ]
- sizeof(penis) = 0 の場合もある
- 438 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:02:58 ]
- struct penis { int used; } myson;
sizeof myson; って括弧なしでかけるんだな 最近知った。
- 439 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:03:43 ]
- >>437
いや実際には・・・ ・・・もう止めようw
- 440 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:07:29 ]
- どうusedどするのか詳しく
- 441 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:32:43 ]
- >>434>>435
ありがとうございます、合計バイト数は出せました。 あとはデータ型に応じたバイト数で割ればインデックス最大値が出せるのですが、それも分かりません・・ 変数penisのデータ型はどうやって調べるんでしょうか
- 442 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:35:27 ]
- sizeof(penis) / sizeof(int);
?
- 443 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:39:21 ]
- >>442
int型は環境によってバイト数が変わると聞いたので・・ LBoundみたいな関数は無いものでしょうか それとも僕はよほど変なことをしているのでしょうか
- 444 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:57:21 ]
- >>443
環境によって変わるからsizeof(int)してるんだよ 変わらなかったら4とか決めうちでいいじゃん
- 445 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:02:00 ]
- >変数penisのデータ型はどうやって調べるんでしょうか
変数penisを宣言しているのは誰だ?
- 446 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:03:48 ]
- 何故、正体不明のデータを扱うのだろう?
- 447 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:06:04 ]
- sizeofとかあとで変更あったときに直しやすくするだけのことで
その辺理解できない馬鹿だったら自分で固定で数決めとけ
- 448 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:08:38 ]
- >>444
成る程!!すいませんでした、気づいてませんでした
- 449 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:10:28 ]
- マンコ
- 450 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:35:25 ]
- デバックしたら自動的に保存されてしまうようですが、オフにすることってできますか
- 451 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:47:39 ]
- 何が保存されるんだ?
- 452 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:01:19 ]
- ソースコードだろ?
保存されたファイルを見てコンパイルするから無理じゃね? VC出身の俺からしたら保存されねぇほうが気持ち悪いけど 他の環境出身者には保存されるのは気持ち悪いもんなのかねw
- 453 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:06:09 ]
- ソースコードです
切ることは出来ないのですか、残念です ちなみにVB・VBA・HSP出身(というほどやってませんが)です
- 454 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:13:09 ]
- スクリプトじゃないんだからコンパイルしなきゃデバッグできんし、保存しなきゃコンパイルもできまい。
- 455 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:07:15 ]
- 土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに
成功した、ハンドル使わない方法でやっとだ。 そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText() のやりかた教えろや。
- 456 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:14:48 ]
- しごいて調べろっていうわけにはいんかだろうしなあああ
>変数penisのデータ型はどうやって調べるんでしょうか
- 457 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:16:28 ]
- ハンドル使わないSendMessage()とか、SetWindowText()があるのか
- 458 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:19:22 ]
- >>457
それはないでしょう。 ですから、ハンドルの使いかた教えてくれって言ってる意味ととって くださってもいいです。すみませんです。
- 459 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:22:46 ]
- >>457
おおかたリソーススクリプトや(親のハンドル使うけど)SetDlgItemTextでも使ったんだろう。
- 460 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:24:28 ]
- そのとおりです。これだって本格的には、ハンドルを使うわけでしょ。
それがわからんから・・・↓こうなってるわけでして。 SetDlgItemText(IDC_STATIC1,"testest");
- 461 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:25:27 ]
- TCHAR szText[] = _T("文字列");
SetWindowText( hWnd, szText); SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
- 462 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:26:54 ]
- あ、忘れていた。つまり、455=458=460です
- 463 名前:455 mailto:sage [2009/05/12(火) 00:30:12 ]
- >>461
その場合、hWndは、どこで宣言し、どうやって代入してるわけですか?
- 464 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:51:42 ]
- ああ、そこからスタートか。
HWND hWnd = GetDlgItem( hDlg, IDC_STATIC1); hDlg はわかるよな。ダイアログプロシージャの第一引数だ。
- 465 名前:455 mailto:sage [2009/05/12(火) 01:11:47 ]
- >>464
その場合のhDlgは、当然にIDC_STATIC1が貼り付けられたダイアログのハンドル っていうことですね。その場合、以下の意味がよくわかんですね。 >「ダイアログプロシージャ」(これは、・・・・Dlg.cppって言う意味ですか?) >「第一引数」(これは意味がわからないです) (例えば、ワークスペース名が"Rocket"として、例でいくと小生の場合はvs6で、 MFC AppWizard でダイアログモードでワークスペースをを作成したんですが。 RockeDlg.cppが以下になってます。このどこで値が決まってますか? #include "stdafx.h" #include "Rocket.h" #include "RocketDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ class CAboutDlg : public CDialog { public: CAboutDlg(); // ダイアログ データ //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard は仮想関数のオーバーライドを生成します //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート //}}AFX_VIRTUAL ・・・・・もっと下ですか?
- 466 名前:455 mailto:sage [2009/05/12(火) 01:16:05 ]
- それとも、hDlgは、予約語っつーかシステムからの引数(定数)っていうことですか?
ダイアログ内なら無宣言で、どこでも使える定数。
- 467 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:17:03 ]
- MFCなら先にそう言えよ。
MFCはウィンドウハンドルを意識しないでいいように作られているから、HWND型はあまり使わない。
- 468 名前:455 mailto:sage [2009/05/12(火) 01:22:23 ]
- >>467
でも、とにかくハンドルを使わないと、別のプロシージャからは、 別イのダイアログに貼り付けられたコントロールは外部参照できない わけでしょ。↓のどれを使おうが。 SetWindowText( hWnd, szText); SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
- 469 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:25:17 ]
- 何をやりたいのかを述べよ。
「別イのダイアログ」なんつうのが今ごろでてくると、何をやりたいのかわからん
- 470 名前:455 mailto:sage [2009/05/12(火) 01:27:02 ]
- >>467
>ウィンドウハンドルを意識しないでいいように なら、SetDlgItemText(IDC_STATIC1,"testest"); と同じく、同一ダイアログプロシージャ内なら、SetWindowText()やSendMessage() も、ハンドル引数(hWnd)は省略していいってことですか?
- 471 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:31:15 ]
- MFCなら CWnd::SendMessage()、CWnd::SetWindowText() を使う。
両者のパラメータにウィンドウハンドルはない。
- 472 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:35:24 ]
- CWnd* pStatic = GetDlgItem( IDC_STATIC1);
pStatic->SetWindowText( _T("文字列"));
- 473 名前:455 mailto:sage [2009/05/12(火) 01:36:24 ]
- >>469
つまり、別のフォームで、RoketDlg.cppで、設定したり計算したデータを、終了前に hddに保存する場合、別なフォームから参照して保存したり、RoketDlg.cppで計算を 始める前に、RoketDlg.cppのプログラム計算を開始する前に、hddに保存したファイルから データを読んで別なダイアログでリストアップして、一覧の中から選んでRoketDlg.cppの 各コントロールのテキスト(キャプション)に値を設定する。それを読みながら計算 させる、とかです。
- 474 名前:455 mailto:sage [2009/05/12(火) 01:54:36 ]
- >>469
つまり↓を、vcに移植したいわけです。 MV魔改.bmp freedeai.com/up/index.html
- 475 名前:455 mailto:sage [2009/05/12(火) 01:55:57 ]
- vb版は、数日中に軍事板でリリースの予定です。
- 476 名前:455 mailto:sage [2009/05/12(火) 02:01:50 ]
- 日本だって、造る気になったら、ICBMなんか、H2やMVを魔改すればすぐ造れるんだ。
って北の将軍様や工作員に見せて、「だから日本を脅かしたってビタ一文出さない。 日本を恐喝したって金にならない。早く被拉致者を返せ。」って教えるためです。
- 477 名前:455 mailto:sage [2009/05/12(火) 02:19:42 ]
- >>471
>>472 ありがとうございます。
- 478 名前:455 mailto:sage [2009/05/12(火) 02:35:46 ]
- >>471
その場合、CWndは、どこで、値が決まってるんですか? >>471と>>472の連携がわからないです。 ↓これは記法ではないっていうことですか? CWnd::SetWindowText() つまり、上の記述の意味は、実際の記法は、 「Cwnd:」は、「CWnd* pStatic」の意味で、 「:SetWindowText(_T("文字列"));」は「pStatic->SetWindowText( _T("文字列"));」 である という意味ですか?
- 479 名前:455 mailto:sage [2009/05/12(火) 02:41:06 ]
- ↓これはあくまでも、同一ダイアログ内での話ですよね?
(IDC_STATIC1は、別なフォームにもあるかもしれないわけで) CWnd* pStatic = GetDlgItem( IDC_STATIC1);
- 480 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 07:18:51 ]
- DirectXを使わないでディスプレイの垂直同期?にあわせて描画する方法ってありますか?
- 481 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:39:40 ]
- 一度VC2008++で作成したソリューションファイルは、2005では使えませんか?
家にあるのが2005しかないもので困ってます…
- 482 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:55:59 ]
- >>455
あなたはクラスを使ったことがありますか?
- 483 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 09:49:30 ]
- ソリューションファイルはテキストだから
適当なエディタで開いてバージョンあたり 書き換えれば2005でも開ける
- 484 名前:455 mailto:sage [2009/05/12(火) 11:05:05 ]
- 結局、VC++では、あるプロシージャで使われるオブジェクト(スタティックコントロールにせよ
エディトコントロールにせよ)、そのハンドルの値というのは、その、プロシージャに 行った時(そのプロシージャが実行されたとき)しか取得(代入)できないということですか? (コンパイル時に、実行ファイルが各「ハンドル」を自動的に管理する変数としてバックグランド で管理、保有するようにはなってない、と。) だから、他のプロシージャから、他のプロシージャで定義、生成されたコントロールとかを 外部参照したい場合は、前もって、そのプロシージャに行った(実行された)時点で、 プロシージャ間で共有できる変数(パラメーター用の変数に)代入しておいて 、プロシージャ間でパラメータとして渡せ、と。 結局、ダイアログにせよ、メモリにロード(画面に出)されてなきゃ、その中のコントロールは 参照できっこないわけだから。 画面に出てるとか、とにかくその外部参照される他のプロシージャ部がメモリにロードされてる うちは、ディスティネーション(アドレス、ポインタ)としての「定数」であって「変数」では ないのだからパラメータになりうるから、プログラマー自身が渡せと。
- 485 名前:455 mailto:sage [2009/05/12(火) 11:07:54 ]
- >>482
「クラス」の意味もよくわからないわけで。「クラスとは、変数の次元でのツリー構造の一部」 という概念ですね。自分としては。
- 486 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:18:37 ]
- >484
結局、VC++では? そんな意味不明なまとめだったら 日記かブログにでも書いとけ
- 487 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:24:47 ]
- もしかしてウインドウのハンドルのことを言ってるのなら
apiだからVC++は関係ない。
- 488 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:27:09 ]
- >>455
そのうちわかるからとりあえず汚くても動くように書いてみな 後で俺ってなんてVB厨だったんだと思うだろうけど仕方ないよ。
|

|