トップページ⇒tech
1001コメント306KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001987NGNG
タイトルのとおり、
Visual C++ 初心者用スレッドです。

前スレ・関連スレは、>>2 ぐらい。
0545デフォルトの名無しさんNGNG
1ダイアログに255個以上のコントロールが貼り付けられないのですが仕様ですか?
0546デフォルトの名無しさんNGNG
DirectInput等つかってなければ、可能ナリ。
0547デフォルトの名無しさんNGNG
すいません。教えてください。

BOOL型のメンバ変数m_Tempを追加したのですが、
ソースにカーソルを当てると、ポップアップで
int CTestView::m_Temp
とINT型で表示されるのですが、BOOL型なのになぜINTなのでしょうか?

例えば、
if(m_Temp == true){ ・・・ と記述すると以下の警告がでます。
「warning C4805: '==' : 演算中の 'int' 型と 'const bool' 型の混用は安全ではありません」

#define TRUE 1 が、Afxstd.hで宣言されてるので、
if(m_Temp == TRUE){・・・ と記述すれば警告はでなくなるのですが
なんか胸の中がすっきりしません。どういう事なのでしょうか?
0548547NGNG
ちょっと訂正します
誤 #define TRUE 1 が、Afxstd.hで宣言されてるので、
正 #define TRUE 1 が、AFX.Hで宣言されてるので、
0549デフォルトの名無しさんNGNG
>>547
bool = 1bit
BOOL = int = 32bit

という説明でよろしいか?
0550デフォルトの名無しさんNGNG
>>549
ありがとうございます!!!なるほど納得&警告でなくなりました!
0551デフォルトの名無しさんNGNG
気持ちわかる↓
>なんか胸の中がすっきりしません

BOOLをboolする関数でも組めば?

inline bool BOOL2bool(BOOL f)
{
  return (f == TRUE) ? true : false;
}

inline BOOL bool2BOOL(bool f)
{
  return (f == true) ? TRUE : FALSE;
}
0552デフォルトの名無しさんNGNG
>>544
Aのダイアログにメッセージが送れるなら、Aのダイアログのボタンで生成
されるメッセージをそのまま送るわけにはイカんのですか?

0553デフォルトの名無しさんNGNG
>>551
レスどうもです。そういうやり方もあるんですね。参考になりました。
0554本7 ◆HON7/awDa. NGNG
金ないんでVC++4.0でがんばってます。
winsockでTCPソケット通信でtelnetサーバを作りたいです。
ソケットを起動(っていうんですか?)して > 接続要求待ち >
要求があれば > サーバの紹介文を送りログインを求める  >
パスワードが照合すればクライアントにDOS画面を送る

というのはどういう流れにすればよいですか?関数とかも挙げて説
明頂けるとありがたいです。よろしくお願いします。
0555デフォルトの名無しさんNGNG
>>545
仕様。
自前でCreateしる。
0556デフォルトの名無しさんNGNG
>>554
とりあえず、それ用の本買うことをお勧めする。
ここで聞いて理解できるようなら、たぶんで作成できるだろうし・・・。

金ないならネットで検索しとけー。
レス1つや2つで終わるような話じゃないと思うぞー。
なんせ、それだけで本1冊かけるしな。

ネットワーク質問スレの過去ログ全部読んでみるのもいいのでは?
0557デフォルトの名無しさんNGNG
ttp://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=winsock%83v%83%8D%83O%83%89%83%7E%83%93%83O&lr=
0558本7 ◆HON7/awDa. NGNG
ありがとうございます。いろいろ試してがんばまります。
0559デフォルトの名無しさんNGNG
>>551
>return (f == TRUE) ? true : false;
( ´_ゝ`) フーン
0560デフォルトの名無しさんNGNG
ってか両方とも==で比較しなくていいよね
0561デフォルトの名無しさんNGNG
ってかキャストでいいよね
0562名無し@沢村NGNG
>>551
そのコード、バグの温床だな。
0563デフォルトの名無しさんNGNG
「BOOLはint」って話の流れで「f == TRUE」は無いよね
0564デフォルトの名無しさんNGNG

つか、 true と TRUE を使い分ければ良い話でわ?
わざわざ変換関数必要なん?

0565デフォルトの名無しさんNGNG
>>564
STLとか使って普通にWindowsプログラミングをしていたら必要になってくるだろ、ボケ。
0566デフォルトの名無しさんNGNG
>>565
簡単な例出してみ。総ツッコミ入るだろうけど。
0567デフォルトの名無しさんNGNG
>>565
簡単な例出してみ(ゲラ 総ツッコミ入るだろうけど(嘲笑激藁
0568デフォルトの名無しさんNGNG
教訓:ここは初心者に教えるスレであって、初心者が知ったかするスレではない。
0569デフォルトの名無しさんNGNG
全然Visual C++関係ないじゃないか・・・
0570デフォルトの名無しさんNGNG
>>566

std::bitset<10> aho;
aho.set(0, ::IsWindowEnabled(hWnd));

さあ、ツッコミ入れろ。vector<BOOL>にしろとか言うなよ。
0571デフォルトの名無しさんNGNG
唐突ですみませんがgetmemoryってどういうことなんでしょうか?
0572デフォルトの名無しさんNGNG
>>570
ツッコミも何もそのコード自身、変換関数なんて使ってないじゃん。
0573デフォルトの名無しさんNGNG
今までの流れ
>>564「わざわざbool<->BOOL変換関数必要なん?」
  ↓
>>565「STLとか使って普通にWindowsプログラミングしてたら変換関数が必要だろボケ」
  ↓
>>566「変換関数が必要になる例出してみ」
  ↓
>>570「std::bitset<10> aho; aho.set(0, ::IsWindowEnabled(hWnd));」
  ↓
>>572「どこにも変換関数使って無いじゃん(;´Д`)」
0574ドアフォ。NGNG
あんのー、Visual BasicとBasicだけ微妙に触ったことある程度のド素人なんだけど、
せっかくMicrosoft Visual C++ 6.0も入ってるのに学校ではやらないそうなんです。
で、個人的に勉強してみようとあっちこっちの初心者向け回ってるんですが、
どうやったらプログラム作り始められるかがわかりません!!w

とりあえずファイル>新規作成>Win32 Console ApplicationでDOS窓用、
Win32 ApplicationでWindowsプログラムってのはなんとなくわかったんだけど・・・
File ViewでSource Filesって書いてあるのがコード書いたのを保存するフォルダ?
あーわけワカメ。
0575デフォルトの名無しさんNGNG
>>574
本買え
0576デフォルトの名無しさんNGNG
warning C4805

を出したくないだけでしょ。
0577デフォルトの名無しさんNGNG
>>560

会社だと

bool fHantei = 判定関数;
:
:
:
if(!fHantei){ //←ここ
:
}

こういう書き方はダメなところが多いと思うけど。
C#でもこういう書き方はErrorになるはず。
0578デフォルトの名無しさんNGNG
==TRUEはもっとダメ。
0579デフォルトの名無しさんNGNG
漏れの同僚に

#define NULLPO 0

HANDLE *pHandle = GetHandle();
if(pHandle == NULLPO){
 MessageBox("ぬるぽ!");
 exit(0);
}

ってやるやつがいます。
0580デフォルトの名無しさんNGNG
外出みたいだけどもう一度

BOOL型を返す関数でFALSEがエラー
FALSE以外が正常ってのがあったような気がするから

BOOL B;
...
if(B == TRUE)はやってはいけないと
やるなら
if(B == FALSE)
if(B != FALSE)
みたいに
0581デフォルトの名無しさんNGNG
ガイシュツのものをなぜわざわざもう一度書くのだろうか?
0582デフォルトの名無しさんNGNG
そもそも比較する必要がない
0583デフォルトの名無しさんNGNG
皆それぞれ言いたいことはあるだろうが、ここは一つ>>551は糞ってことで収めないかね。
if(hoge==FALSE)するかどうかはコーディングスタイルや会社の規約に関わってくるから
水掛け論にしかならんだろうし。
0584デフォルトの名無しさんNGNG
もう >>551の顔の火も、鎮火しただろーよ
0585デフォルトの名無しさんNGNG
顔がチンコに?!
0586デフォルトの名無しさんNGNG
>>585
よく読め。「顔の火」がチンコだ。
0587デフォルトの名無しさんNGNG
>>585
どんな生命体だよ・・・
0588デフォルトの名無しさんNGNG
顔の人はチンコだったか
0589デフォルトの名無しさんNGNG
>>587
  /⌒\
 (    )
 |   |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |   |<  呼んだー?
 ( ・∀・)  \_________
  )   (
 (__Y_)
0590551NGNG
>>589
読んでねーよ、氏ねや



ああ、イライラする
0591デフォルトの名無しさんNGNG
まだフィッシングかよ……
0592デフォルトの名無しさんNGNG
int main(){
if( >>551 == true )
{
cout <<"  /⌒\   "<< endl;
cout <<"  (    ) "<< endl;
cout <<"  |   | "<< endl; 
cout <<"  |   | "<< endl;
cout <<"  ( ・∀・) "<< endl;
cout <<"   )   ( "<< endl;
cout <<"  (__Y_) "<< endl;
return 0;
}

return -1;
}
0593551NGNG
だいたいここ初心者向けのスレなのに
あの程度のミスでなんで糞呼ばわりされなきゃならないんだ?
初心者なんだから仕方ないだろう?
それともあんたらはプログラム初めてそういうミス一度もしたことないのか?
0594デフォルトの名無しさんNGNG
教える側がミスしちゃいかんだろ。
0595デフォルトの名無しさんNGNG
BOOL型==TRUE ってだめなの?
0596デフォルトの名無しさんNGNG
あ〜なるほどねわかった気がした
0597デフォルトの名無しさんNGNG
初心者スレだから叩く
人間叩かれて大きくなるんだYO!
でも変な所を大きくしないでね
0598デフォルトの名無しさんNGNG
>>593
おまえだけが間違うのは勝手だが初心者を巻き込むな
0599デフォルトの名無しさんNGNG
BOOLを使わなければいいのでは?
0600デフォルトの名無しさんNGNG
intでやれよな。
0601デフォルトの名無しさんNGNG
大は小をかねる。
0602デフォルトの名無しさんNGNG
つーかこんな事で喧嘩すんなよ互いに(w
0603デフォルトの名無しさんNGNG
楽しけりゃいいじゃん!!
0604デフォルトの名無しさんNGNG
>>592みたいなのってendlでフラッシュするじゃん
たぶんそこがネックになって速度が落ちると思うのね
もっとフラッシュを抑制する方法ってないかしらん?
0605デフォルトの名無しさんNGNG
嘘を教えちゃいけないよね
0606Are you OK ??NGNG
#include <iostream>
#include <windows.h>

using namespace std;

inline bool BOOL2bool(BOOL f){ return (f == TRUE) ? true : false; }
inline bool bool2BOOL(bool f){ return (f == true) ? TRUE : false; }

int main()
{
   for(int i=0;i<3;i++){
      BOOL fB = (BOOL)i;
      bool fb = (bool)i;
      cout << "(BOOL)" << i << " = " << fB << " , BOOL2bool((BOOL)" << i << ") = " << BOOL2bool(fB) << endl;
      cout << "(bool)" << i << " = " << fb << " , bool2BOOL((bool)" << i << ") = " << bool2BOOL(fb) << endl;
      cout << "\n";
   }
   return 0;
}


(BOOL)0 = 0 , BOOL2bool((BOOL)0) = 0
(bool)0 = 0 , bool2BOOL((bool)0) = 0

(BOOL)1 = 1 , BOOL2bool((BOOL)1) = 1
(bool)1 = 1 , bool2BOOL((bool)1) = 1

(BOOL)2 = 2 , BOOL2bool((BOOL)2) = 0
(bool)2 = 1 , bool2BOOL((bool)2) = 1
0607デフォルトの名無しさんNGNG
まだやってんの(;´Д`)
0608デフォルトの名無しさんNGNG
これで完結じゃないの。実例出たからみんな納得するだろう。
0609デフォルトの名無しさんNGNG
ていうかすでに納得してんのに何を粘着に(ry
0610606NGNG
>>609 いや、個人的に気になったから
普段からBOOLなんて使わんしさ
0611デフォルトの名無しさんNGNG
>>610
なんでWindowsプログラミングをしていないのにこのスレにいるの?
0612デフォルトの名無しさんNGNG
なぜか急にクラスビューに1つのクラスだけが表示されなくなってしまいました。
どうすれば直りますか?
0613デフォルトの名無しさんNGNG
>>612
引っ込み思案な性格を、カウンセリングで直せ。
0614デフォルトの名無しさんNGNG
>>604
endl のかわりに \0 代入して
表示するさいに std::finish とかってどうよ?
0615デフォルトの名無しさんNGNG
>>611
まだCを勉強して間もない初心者なんじゃないの?
0616デフォルトの名無しさんNGNG
初心者を初心者と見抜けないと
(初心者スレで回答を得るのは)難しい。
0617デフォルトの名無しさんNGNG
>>546
>>552
大変遅くなりましたができました。ありがとうございました。ちなみにこのような感じです。

SendMessage(HWND,WM_KEYDOWN,(WPARAM) VK_RETURN, 0);
SetFocus(HWND);
SendMessage(HWND,WM_KEYUP,(WPARAM) VK_RETURN, 0);

0618デフォルトの名無しさんNGNG
>>612
VC終了して拡張子clw,aps,opt,ncbのファイルを消してVC起動して「表示」→「ClassWizard」で
なんか聞いてくるから「はい」選択。変なダイアログ表示されるから「全て選択」ボタン押してからOK。
0619612NGNG
>>618
ありがとうございます。ちゃんと表示されるようになりましたヽ(´ー`)ノ
0620デフォルトの名無しさんNGNG
そんなことしなくても当該クラスのヘッダーファイルを変更すれば
表示されるよ。変更はスペースでもコメントでもOK.そのあと元に戻せばOK
0621デフォルトの名無しさんNGNG
子ウインドウの取得に関しての質問です

メモ帳をスパイで見ると
"無題 - メモ帳" Notepad
 └""Edit
となっており、クラス名Editのハンドル取得は以下のようにして行うことができました。
FindWindowEx(FindWindow("Notepad", NULL),NULL,"Edit",NULL)

ここで質問なのですが、
"Titlehoge" Clshoge
 └""Edit
    └"Edit2"
 └""Edit
    └"Edit3"

の場合、クラス名Edit3のハンドル取得はどのように行えば良いのでしょうか?
0622デフォルトの名無しさんNGNG
hです。
制すうちを入力しshort型の変数に格納した後
この変数の内部表現をビット列で表示するプログラムを作成せよ・・・
という課題がでました。

integer=>1
0000000000000001
integer=>-2
1111111111111110

といった感じで表示するってとこまでは分かったけど・・・
実際のプログラムが分かりません。どうしよう・・・tt
0623デフォルトの名無しさんNGNG
>>622
スレ違いw
0624デフォルトの名無しさんNGNG
ボーランドC++ビルダーコンパイラのインストール手順(readme)内に、

a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。

と記載されているのですが、いきなり意味がわかりません。
これは、どういうことをするのですか?

インストールしたところは、
D¥program files\borland\bcc55
としますた。

0625デフォルトの名無しさんNGNG
>>624
スレ違いw
0626デフォルトの名無しさんNGNG
>>622
氏ね
C/C++の宿題やらせてください。おながいします
http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50

>>624
おまえも氏ね
タダで使えるBorland C++ part2
http://pc2.2ch.net/test/read.cgi/tech/1030493157/l50
0627 NGNG
今日のフラワーCの勝ち馬がわかりません。
誰か教えてください。
0628 NGNG
>>628 スレ違い
0629デフォルトの名無しさんNGNG
>628
0630デフォルトの名無しさんNGNG
>>628
再起関数
0631デフォルトの名無しさんNGNG
Microsoft VisualC++ 6.0 Enterprise
で開発してるんですけど。
ブレークポイントを追加してから、デバッグすると
かなりの確立でフリーズするんですけど・・・
ずっと昔からこの状態が続いているんですよ。同じ現象の方いらっしゃいませんか?

環境は
WindowsXP ProfessionalとWindows Me(どちらでも同じ現象)
CPU AthlonXP1600+
Memory DDR256MB
0632デフォルトの名無しさんNGNG
>>630
再帰関数
0633デフォルトの名無しさんNGNG
>>631
フリーズってOSごと?VCのみ?
0634631NGNG
VCがフリーズ→
Alt + F4で強制終了がきかない→
Alt + Ctrl + Delでタスクマネージャーを呼び出せない→
死亡。
なぜにタスクマネージャーさえも呼び出せないのかが不明!
マウスは動きます。キーボードも動作してます。

あとたまにビルド中でVCのみフリーズすることがあります。
Meのときは、一時その状態にしとくと、OSもフリーズしました。
XPのときは、そのままにしておくと、どうもなりません。
0635デフォルトの名無しさんNGNG
.NETに切り替えろという意味では。
0636631NGNG
>>635
そんな無茶な。
というか、結構前からこの症状でてマシタ。
0637デフォルトの名無しさんNGNG
監査は,女体監査
  しめつけ性,しゃぶなめ性,こしふり性を監査
 上シスは,上級尻刺す
  ゴムがうんこだらけ,でもやみつき
被監査対象  監査持ってるが仕事がない人事教育のオールドミスに食われました。ぐいぐいと。
 しかも,一生懸命奉仕したため,オールドミス仲間や最近ごぶさたの孫持ちおばはんの同僚たちにも回され,徹底的に姦さされました。
 この年ではじめて3Pしましたが,相手2人の合計はぼくの年のほぼ4倍です。
 助けてほしいですが,気持ちよくて,そんな自分が許せないのです。どうしたらいいでしょうか。
監査技法  バイブを使いなさい,伝統的な技法では通用しません。
 上がシースルー を上シスと呼びます
 電算室でSEXすると,いくらはりきっても汗が出ません。
アナルスト  え,まだ前からやってるの?
 坊や,まだまだ子供ね
ぶす
 松嶋奈々子 図体はともかく顔でかすぎ
 田中麗奈  爬虫類?
 広末涼子  あざらし
 藤本美貴  AVエロ顔
こんなので抜けるの?
本上まなみ 地味ぶす
男の方がましかも
最近の女,ぶすばっか
くさいし
ばかだし
すぐやらせちゃって病気もちだし
疥癬だし
腋臭だし
エステ通ってるおばちゃんか,男のほうがいいな
0638デフォルトの名無しさんNGNG
>>636
SPは5?
0639デフォルトの名無しさんNGNG
>>636
その症状が出るようになった頃にインストールしたソフトは何?
0640デフォルトの名無しさんNGNG
>631
ttp://forums.belution.com/ja/vc/000/050/71.shtml
いろいろあるがうちではMS IMEが問題だった。
Win2000 & WinXP & VC6 & VC.NET
この中の組み合わせで確認。
MS IMEを使わないことで解決しました。
参考に。
0641631NGNG
Meの頃も発生していたんで、インストールしたソフトは関係ないと
思われます。
SPはわかりません・・バージョン情報で確認できませんでした。
というか、SPをインストールしたことはないのでSPは入ってないのかな?
Coperight (c) 1994-98 って書いてあるんで、更新されてないと思います。
0642デフォルトの名無しさんNGNG
>>641
SPは入れておこうよ。
まあインストールしたことにより新たな不具合が発生することもあるけど(^^;
0643631NGNG
同じ症状の人いたんですね^^
って喜んでいいのか・・・
Nortonの仕業かもしれません。
Norton2002を入れてるんですが、Norton2003だったときは
正常に動いていた気がします・・・
皆様ありがとうございました。
0644デフォルトの名無しさんNGNG
Nortonは極悪ソフトとして有名
■ このスレッドは過去ログ倉庫に格納されています