★初心者にVisual C++を教えるスレ★ Part5
■ このスレッドは過去ログ倉庫に格納されています
0001987
NGNGVisual C++ 初心者用スレッドです。
前スレ・関連スレは、>>2 ぐらい。
0256デフォルトの名無しさん
NGNG何か1冊初心者向けの本を読んだほうが良いと思われ。
フォルダの作成と、ボタンに反応する関数の作り方では
アドバイスが異なります。
0258デフォルトの名無しさん
NGNG使ってないっす(´Д`;)
そのスレッドの中でWaitForSingleObjectでループしてるんですが
そのループ内で宣言してあげたら何故かメモリリークが取れました。
・・・なぜ・・・?
0259デフォルトの名無しさん
NGNGvoid AFX_CDECL CString::Format(LPCTSTR lpszFormat, ...)
{
ASSERT(AfxIsValidString(lpszFormat));
va_list argList;
va_start(argList, lpszFormat);
FormatV(lpszFormat, argList);
va_end(argList);
}
void AFX_CDECL CString::Format(UINT nFormatID, ...)
{
CString strFormat;
VERIFY(strFormat.LoadString(nFormatID) != 0);
va_list argList;
va_start(argList, nFormatID);
FormatV(strFormat, argList);
va_end(argList);
}
0260デフォルトの名無しさん
NGNGシングルスレッド用のライブラリになってない?
0261デフォルトの名無しさん
NGNGいないのに、表示したりできますか?できるなら教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
for(;!kbhit();)printf("%8d",rand());
return 0;
}
コンソールで書くと、こんな感じです。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG始めたばかりの初心者にぴったりな文献を、どうか、お願いしまつ。
Windowsプログラムより先に、MS-DOSのプログラムを先に
勉強した方がいいんでつか?
初心者的質問スマソ(´Д⊂
0264デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1046937366/
0266デフォルトの名無しさん
NGNG販売しているパッケージがいろいろあってどれを使えば買えばいいのか
分かりません、以下の用途の場合どのパッケージを買ったらいいのでしょうか?
・C/C++はまったくの初心者で使いながら学習していきたい
・画像ビューアを作りたい、GV,Susie,IrfanViewのようなもの
0267デフォルトの名無しさん
NGNGstandard で十分と思ふ。
お金に余裕があるなら Professional を
購入してもいいと思うけど。
Win98なら、VC++6.0しか選択肢なし。
Win2000/XPなら、VC++.NETも使える。
.NETは良く分からんので、他の人に聞いとくれ。
0268デフォルトの名無しさん
NGNG一番高いのを買っておけば間違いはないよ
0269デフォルトの名無しさん
NGNGもっとも.netの場合VC++.netはstandard版しかないので自動的にVisual Studioになるが。
ちなみにアカデミック版VS.netはVS 2003への無償アップグレードの対象外らしいので注意。
0270デフォルトの名無しさん
NGNGVC++ Pro と Std の違いは
Standard -> MFC のみ
Professional -> MFC + ATL
だと思ったのですが、ATLってのはそんなに便利なんですかね?
自分はVC++6.0 Pro持ってるんですが、ATLは使ったこと無いので、
MFC + Platform SDK で十分かなぁと思ったもので。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGいいかげんVisualC++.net Pro出せ
Stdなんか買うがボケが
0274デフォルトの名無しさん
NGNG>ATLってのはそんなに便利なんですかね?
人による。俺はATL+WTLの組み合わせが大好きだがね。
いずれにせよStdにもATLは付いているとは思うが。
0275266
NGNG単品でのProはやっぱりないのですね、Standardしかないからおかしいと
思ってました・・・
ついでといってはなんですが、でた話で聞きたいことが
今購入すると2003への無償アップグレードが可能なのですか?
2003はいつごろ発売予定なのでしょうか?
ちょっとスレと離れてきてすいません
0276デフォルトの名無しさん
NGNGソース打ち込んでるときに"cout"(もちろんこの他も)と打ち込みビルドすると、
Unicode識別子はサポートされていません となり、エラーが起こってしまいます。
どうしたらよいでしょうか?
0277デフォルトの名無しさん
NGNG全角で打ち込んでないか?
スペースとか。
0278159
NGNG返答を…古い書き込みに対してのレスですいません。
>>172
大当たりでした!!まさにそのとおりです。
おかげさまでワークスペースを開くをボタンイメージにして、
開くの横に設定できました。こんなチェックボックス今までいじったこと
ないのになぜだったんだろう…?
でも、治って(思い通り)嬉しいです、ありがとうございました。
そして私の書き込みに対して返答してくれた方もありがとうございました。
0279デフォルトの名無しさん
NGNGDLL内で自分で発行したWM_TIMERを受け取るには
ウィンドウ作るしかないんでしょうか。
0280デフォルトの名無しさん
NGNG追加する方法ってあるんですか?
0281デフォルトの名無しさん
NGNG↑を打ち込んでビルドしたら、
error C2297:'<<':無効な右オペレントです。 と言われますた。
どうすればいいんですか?
0282デフォルトの名無しさん
NGNGendじゃなくてendl
エルがつくの。
0283281
NGNGそうなんですかw
ありがとうございます。
ぶっちゃけ、end1;と打ってました(w
すいませんでした。
0284281
NGNG上を打ち込んでビルドしても、
error C2297:'<<':無効な右オペレントです。 と言われますた。。。
どうしたらいいでしょう。。
0285デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;は?
0286281
NGNG#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>
void main()
{
//変数宣言
int ans, myans, score;
bool bContinue = true;
char res;
//ゲームのループ
while(bContinue){
cout << "***** 数当てゲーム *****" << end1
<< "こちらが考えている0-99の範囲の数を当ててください" << endl;
score = 0;
srand((unsigned)time(NULL));
ans = rand() % 100;
0287281
NGNGwhile(1){
cout <<"数値を入力してください" << endl;
cin >> myAns;
// 正否判定
if(myAns == ans)
break;
//程度判定
if(abs(myAns - ans) > 30){
cout << "かなり";
}else{
cout << "少々";
}
// 大小判定
if(myAns > ans){
cout << "大きいです。" << endl;
}else{
cout << "小さいです。"<< endl;
}
score++;
}
//プレイ終了処理
cout <<"正解です!"<< end1
<<"あなたは、"<< score <<"で正解しました!"<< endl;
0288281
NGNGcin >> res;
if( res != 'y' && res !='y')
bContinue = false;
}
//ゲーム終了処理
cout << "ゲームオーバー" << endl;
}
0289mainはintにしろよ
NGNGmain()の上にでもusing namespace std;と書くか、coutやendlにstd::をつける。
0290281
NGNGusing namespace std;と入れたところ、エラーが激減しました。
ありがとうございます。
あと、エラーふたつあるんですが、
//プレイ中のループ
while(1){
cout << "数値を入力してください" << endl;
cin >> myAns;
の三行目に対し、
error C2065:'myAns':定義されていない識別子です。
error C2593:'operator >>'があいまいです。
となってしまいました。
0291デフォルトの名無しさん
NGNGC++では識別子は大文字と小文字を区別する。
0292デフォルトの名無しさん
NGNG・・・
0293281
NGNGA→aにしたところ、識別子エラーがなくなりました。
>>292
全角スペースを半角にしました。
お二方ありがとうございます。
また、エラーが発生しました。
error: LNK2019:未解決外部シンボル_WinMain@16関数_WinMainCRTStartupで参照されました。
fatal error:LNK1120:外部参照1が未解決です。
と表示されますた。
0294デフォルトの名無しさん
NGNGWin32 Console Applicationでプロジェクト作り直してみて。
0295281
NGNG出来ました!
ありがとうございます。
いろいろご教授してもらい、皆様、誠にありがとうございました。。
0296デフォルトの名無しさん
NGNGスタティックコントロールの背景のウインドウ(親ウインドウ)
にMOUSEMOVEイベント送られて来てないですか?
ペゾルトによるとスタティックコントロール上でマウスの移動や
クリックがあると、コントロールが親ウインドウに WM_NCHITTEST
を送って、DefWindowsProc がこれをクライアント領域の
マウスメッセージに変換するそうです。
クライアント領域で自分でマウスの位置を計算するか、コントロールを
サブクラス化するしかないんじゃないでしょうか。
0297デフォルトの名無しさん
NGNGところで HTTRANSPARENT ってなんですっけ?
どこかで見た記憶があるんですが、関数なのか
パラメータ値なのか、メッセージなのか忘れてしまった。
0298デフォルトの名無しさん
NGNGIn a window currently covered by another window in the same thread
(the message will be sent to underlying windows in the same thread
until one of them returns a code that is not HTTRANSPARENT)
だそうだ。
0299デフォルトの名無しさん
NGNG検索の仕方も忘れたか
0300デフォルトの名無しさん
NGNGhttp://members.tripod.co.jp/aiton21/a.jpg
こんな感じの、リストの上をクリックしてソートできる物を作りたいのですが
http://members.tripod.co.jp/aiton21/b.jpg
ここからどうやればよいのか分かりません。。。
とりあえずリストボックスを書いてみたんですが
ほかにそれらしき物は見当たらず・・・。
0302デフォルトの名無しさん
NGNGリストビューのレポート形式
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG何かいい方法はありますか?
0306デフォルトの名無しさん
NGNG残念でしたまたどうぞ
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG氏ね
0309300
NGNGどもです!ちょっと試してみます。
0310デフォルトの名無しさん
NGNGどもです!ちょっと試してみます。
0311300
NGNG無事リストを描けたんですがリストにアイテムを追加
するにはどうすればよいんですか?コントロールの変数しか
追加できないんですが・・・。
0312デフォルトの名無しさん
NGNG思っているのですが、CONの思考中(再起呼び出し中)落ちたりしませんか?
0313デフォルトの名無しさん
NGNGあんたがヘタレだから落ちます。絶対に。
0314デフォルトの名無しさん
NGNG落ちるかどうかはどうプログラムを組むかによるだろ。
313に同意。
>>311
MSDN見ろ
0315214
NGNGもっかい見てみます。
0316300
NGNG0317デフォルトの名無しさん
NGNGVisualC++関係のヘルプの日本語が理解できないです。
助けてください。
0318312
NGNGコンソールアプリだと永久ループでキー入力を待っています。CONの思考中の時は
再起呼び出し中から抜けるボタンを用意しています。ただウインアプリはイベント
トリブン方式(始めから永久ループが用意されている)なのでどうかなと。
思考中に小分けにWinMainの永久ループに戻すみたいなことをすればいいの
ですかね。
永久ループ→CONの手番→CONの思考
↑ ↓
← ← ← 抜けるボタン(中断など)を押した∨思考終了
0319デフォルトの名無しさん
NGNGいやアンタのアルゴリズムが強いか弱いかじゃなくて……
スレッドつくってそっちに任せたほうがいいんじゃないか。
0320デフォルトの名無しさん
NGNGみつからないんですぅ〜
0321デフォルトの名無しさん
NGNGウインドウハンドルからインスタンスハンドルはできますけど、
逆はできるんですかねぇ。俺も知りたいところですが。
0322デフォルトの名無しさん
NGNG出来たとしても使ってるウインド全部引き連れてくるんじゃないの。
0323デフォルトの名無しさん
NGNG参考書(古い奴)通りにやると、古いとか何とかがでるんだけど(ビルド時じゃなくて)、
新しい参考書買ったほうがいいのかな?
0324デフォルトの名無しさん
NGNG説明不足で回答不能。
0325デフォルトの名無しさん
NGNGCやC++の本の勉強をVCでやろうとしてる?
0326デフォルトの名無しさん
NGNGどうせANSI以前の本でも借りてきたんだろ
大人しくVC++.NETの本を買っとけ
どうせANSI準拠の本買ってもコンパイラ通るか怪しいんだから
0328デフォルトの名無しさん
NGNGソースとエラーメッセージをうざく無い、程度に書きこんでみるのが吉。
誰か親切な方が、それなりに答えてくれますよ。
0329デフォルトの名無しさん
NGNGそうですね。
やっぱりできないのかな。複数のウインドウハンドルが
返って来ても、どれが欲しいハンドルなのか判別できないような
気がする。
0330デフォルトの名無しさん
NGNG結局何がやりたいのか相談したら?
別のもっといい方法があると思うが。。。
0331デフォルトの名無しさん
NGNG>>330
漏れは質問者ぢゃないので。^^;
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGstatic関数にすれば呼べるが、クラス設計に注意汁。
0334デフォルトの名無しさん
NGNGもうちっと勉強してきます
0335335
NGNG質問なんですが
あるcppファイルから他のヘッダを取り込んで
他のヘッダにあるクラスでオブジェクトを宣言しようとすると、
コンストラクタ関数を呼び出したことになってしまいます。
オブジェクトを新たに宣言できないんですがどうすればいいですか?
0336デフォルトの名無しさん
NGNGイマイチ言ってる意味がわからんのだが。
あるクラスのインスタンスを宣言したらコンストラクタは必ず呼び出される。
プログラム開始時に呼びたくないのであればポインタで宣言して好きなときにnewしる
0337デフォルトの名無しさん
NGNGクラスの構成がこんな感じになってたりするとか?
--A.h--
#include "B.h"
class A{ ... B testB; };
------
--B.h--
#include "C.h"
class B{... C testC };
------
--C.h--
#include "A.h"
class C{... A testA };
------
0338デフォルトの名無しさん
NGNGMFCスレをみてきたけど……
正直、もう少しC++について調べる必要があると思われ。
知識なさすぎ。
……人に聞くのは「調べる」って言わないからね。念のため。
0339デフォルトの名無しさん
NGNGVisualC++の初心者向けの本とか買ったのか?
それ見ながらいろいろ試してやっていきなさい
0340335
NGNGどもです。それは分かるんですが、インスタンスを宣言した
ということにならず、そのくらすのコンストラクタを呼び出したことに
なっちまうんです。
newに関してはよく知らんですが見てみます。
>337
そうではないです。
そういう構成は何か支障があるんですか?
>338
正直自分でも痛感です。全然進まないし。。。
>339
参考書買おうと思っても、.NETの参考書って
なかなかないんすよね。VC++6の参考書で大丈夫ですか?
ってかそもそもC++の知識がままならないっすね・・・。
0341デフォルトの名無しさん
NGNGDirectXのテンプレート使わないでライブラリの設定をするには
どうやるんでしょうか?
0342デフォルトの名無しさん
NGNGそれを CTest1 や CTest1Dlg で使いたいんですが
両方の cpp の先頭に include "testglobal.h" ってやると
Test1 error LNK2005: "int abc" (?abc@@3HA) は既に Test1.obj で定義されています。
って感じにリンクエラーになります。
CTest1 のヘッダだけに include を入れても同様のエラーになってしまいます。
どうすれば CTest1 でも CTest1Dlg でも使えるようになるんでしょうか?
0343デフォルトの名無しさん
NGNG1. グローバル変数は使用するべきではない。設計を見直すこと
2. どうしてもそれがムリな場合、Singletonの採用を考えること。
3. それもむりならグローバル変数の宣言部にexternをつけること。
0344デフォルトの名無しさん
NGNG>>343の言っていることが普通だが、3.のテクニックとして。
--testglobal.h--
#if _AS_MAIN_
int abc;
#else
extern int abc;
#endif
--main.cpp--
#define _AS_MAIN_ ←その他のソースでははずす。
#include "testglobal.h"
main()
{
....
}
とすると間違い起こりにくいのだが。
なるべく使わないにこしたことはなし。
0345デフォルトの名無しさん
NGNG不正処理でダウンした後、
ワークスペースを新規作成したときに
プロジェクトの設定 >source files(等) > 一般 の
「 このファイルをビルドしない 」 の項目に
チェックが常に付くようになって、いちいちチェックはずすのめんどくさいんですけど
どこのオプションをいじれば、元のように戻るでしょうか?
0346猿
NGNGどうすれば宜しいでしょうか?ご指導願います(名前、サイズ とか表示されているところです)
0347デフォルトの名無しさん
NGNG急がば回れ。C言語の(以下略)
0348デフォルトの名無しさん
NGNGstatic WAVEHDR wh;
wh.lpData=lpBuf;//エラーの場所
error C2440: '=' : 'unsigned char *' から 'char *' に変換することはできません。(新しい動作 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
このエラーの解決法を教えてください。
0349デフォルトの名無しさん
NGNG明示的なキャストが必要。(char*)lpBuf
0350335
NGNG違いますよ。。。エラーの内容も違うし。
0352デフォルトの名無しさん
NGNGところで、自分で作成したアプリならMUTEXの文字列はわかりますが、
そうでないアプリのMUTEX文字列がわかりません。
これを調べるのにはどんな方法がありますでしょうか?
0353デフォルトの名無しさん
NGNGそれは俺も知りたいなぁ
まぁ名前をできるだけ長くしておけば大丈夫だと思う
アプリケーション名、作者名、開発環境、ジャンルなどで
例:test_exe__Nanashisan__Microsoft_VisualC__GameProgram
邪道なやり方だけど多重起動を防ぐ他の方法としては
実行ファイルから多重起動防止用のファイル(test.dat)を排他モードで開きっぱなしにする
実行ファイル終了時自動的にクローズされる(実際にやったことないけど
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGVCで自作のクラスを作り、hファイルとcppファイルに分けて
保存し、それを別プロジェクトで取り込んだのですが、コンパイル時
に「**.hファイルがありません。」と言われます。
そのプロジェクトでしかインクルードしないので、オプションの設定で
インクルードファイルのパスとして登録したくないのですが、
どうしたらいいのでしょうか?
0356デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています