■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part5
251 名前:デフォルトの名無しさん :03/04/09 09:13
分かりました。ありがとうございました。

252 名前:超初心者 :03/04/09 10:32
visualc++で、ボタンを押すと新しいフォルダを作成するようにさせるには
どうしたらいいですか??

253 名前:デフォルトの名無しさん :03/04/09 15:02
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
のどこから
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
を呼び出しているのですか?うまく質問できないのですが、教えてください。

254 名前:デフォルトの名無しさん :03/04/09 15:11
DispatchMessage(&msg);

255 名前:デフォルトの名無しさん :03/04/09 16:05
>>253
CALLBACKの付いた関数はソースからではなく、
ウインドウズ(OS)から呼び出されるんですよ。


256 名前:デフォルトの名無しさん :03/04/09 16:09
>>252
何か1冊初心者向けの本を読んだほうが良いと思われ。
フォルダの作成と、ボタンに反応する関数の作り方では
アドバイスが異なります。



257 名前:253 :03/04/09 16:55
>>254-255 分かりました。ありがとうございました。

258 名前:デフォルトの名無しさん :03/04/09 20:25
>>245
使ってないっす(´Д`;)
そのスレッドの中でWaitForSingleObjectでループしてるんですが
そのループ内で宣言してあげたら何故かメモリリークが取れました。
・・・なぜ・・・?

259 名前:デフォルトの名無しさん :03/04/09 21:04
// formatting (using wsprintf style formatting)
void 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);
}

260 名前:デフォルトの名無しさん :03/04/09 22:37
>>258
シングルスレッド用のライブラリになってない?

261 名前:デフォルトの名無しさん :03/04/10 07:23
ウインアプリで、何もイベント(キーが押された、マウスが動いた等)が起こって
いないのに、表示したりできますか?できるなら教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
for(;!kbhit();)printf("%8d",rand());
return 0;
}
コンソールで書くと、こんな感じです。

262 名前:デフォルトの名無しさん :03/04/10 07:38
乱数を使ってタイマーを設定すればよろしいかと。

263 名前:デフォルトの名無しさん :03/04/10 07:45
もまいらのおすすめの文献をおしえr・・・教えて下さい!
始めたばかりの初心者にぴったりな文献を、どうか、お願いしまつ。

Windowsプログラムより先に、MS-DOSのプログラムを先に
勉強した方がいいんでつか?

初心者的質問スマソ(´Д⊂

264 名前:デフォルトの名無しさん :03/04/10 08:29
推薦図書/必読書のためのスレッド PART 9
http://pc2.2ch.net/test/read.cgi/tech/1046937366/


265 名前:261 :03/04/10 13:44
>>262 できました。ありがとうございました。

266 名前:デフォルトの名無しさん :03/04/10 13:58
マイクロソフトのC++でソフトを作りたいのですが
販売しているパッケージがいろいろあってどれを使えば買えばいいのか
分かりません、以下の用途の場合どのパッケージを買ったらいいのでしょうか?

・C/C++はまったくの初心者で使いながら学習していきたい
・画像ビューアを作りたい、GV,Susie,IrfanViewのようなもの

267 名前:デフォルトの名無しさん :03/04/10 14:05
>>266
standard で十分と思ふ。
お金に余裕があるなら Professional を
購入してもいいと思うけど。

Win98なら、VC++6.0しか選択肢なし。
Win2000/XPなら、VC++.NETも使える。

.NETは良く分からんので、他の人に聞いとくれ。



268 名前:デフォルトの名無しさん :03/04/10 14:08
>>266
一番高いのを買っておけば間違いはないよ

269 名前:デフォルトの名無しさん :03/04/10 15:18
VC++を買うなら最低Pro。Standard買うぐらいならbccなりgcc(Migw/Dev-C++)で充分。
もっとも.netの場合VC++.netはstandard版しかないので自動的にVisual Studioになるが。

ちなみにアカデミック版VS.netはVS 2003への無償アップグレードの対象外らしいので注意。

270 名前:デフォルトの名無しさん :03/04/10 18:07

VC++ Pro と Std の違いは
Standard -> MFC のみ
Professional -> MFC + ATL
だと思ったのですが、ATLってのはそんなに便利なんですかね?

自分はVC++6.0 Pro持ってるんですが、ATLは使ったこと無いので、
MFC + Platform SDK で十分かなぁと思ったもので。



271 名前:デフォルトの名無しさん :03/04/10 18:10
わざわざ金払って最適化もできないコンパイラが欲しいなら止めないが。

272 名前:デフォルトの名無しさん :03/04/10 19:39
つーか舞糞よ
いいかげんVisualC++.net Pro出せ
Stdなんか買うがボケが


273 名前:学生 :03/04/10 20:22
>>272
はげどう。
でも漏れは2003赤出身苦を待つけどなー。

274 名前:デフォルトの名無しさん :03/04/10 22:13
>>270
>ATLってのはそんなに便利なんですかね?
人による。俺はATL+WTLの組み合わせが大好きだがね。
いずれにせよStdにもATLは付いているとは思うが。

275 名前:266 :03/04/10 22:57
おすすめは Pro のようですね
単品でのProはやっぱりないのですね、Standardしかないからおかしいと
思ってました・・・

ついでといってはなんですが、でた話で聞きたいことが
今購入すると2003への無償アップグレードが可能なのですか?
2003はいつごろ発売予定なのでしょうか?

ちょっとスレと離れてきてすいません

276 名前:デフォルトの名無しさん :03/04/10 23:16
すいません。
ソース打ち込んでるときに"cout"(もちろんこの他も)と打ち込みビルドすると、
Unicode識別子はサポートされていません となり、エラーが起こってしまいます。
どうしたらよいでしょうか?

277 名前:デフォルトの名無しさん :03/04/10 23:52
>>276
全角で打ち込んでないか?
スペースとか。

278 名前:159 :03/04/11 00:14
あれからこの板に来てなくて今見にきたらレスがあったので
返答を…古い書き込みに対してのレスですいません。

>>172
大当たりでした!!まさにそのとおりです。
おかげさまでワークスペースを開くをボタンイメージにして、
開くの横に設定できました。こんなチェックボックス今までいじったこと
ないのになぜだったんだろう…?
でも、治って(思い通り)嬉しいです、ありがとうございました。
そして私の書き込みに対して返答してくれた方もありがとうございました。

279 名前:デフォルトの名無しさん :03/04/11 00:57
質問です。
DLL内で自分で発行したWM_TIMERを受け取るには
ウィンドウ作るしかないんでしょうか。

280 名前:デフォルトの名無しさん :03/04/11 14:08
スタティックコントロールって MOUSEMOVE イベントは受信できないんですか?
追加する方法ってあるんですか?

281 名前:デフォルトの名無しさん :03/04/11 15:19
cout << "ゲームオーバー" << end;

↑を打ち込んでビルドしたら、
error C2297:'<<':無効な右オペレントです。 と言われますた。
どうすればいいんですか?

282 名前:デフォルトの名無しさん :03/04/11 15:28
>>281
endじゃなくてendl
エルがつくの。

283 名前:281 :03/04/11 15:34
>>282
そうなんですかw
ありがとうございます。

ぶっちゃけ、end1;と打ってました(w
すいませんでした。

284 名前:281 :03/04/11 15:39
cout << "ゲームオーバー" << endl;

上を打ち込んでビルドしても、
error C2297:'<<':無効な右オペレントです。 と言われますた。。。
どうしたらいいでしょう。。

285 名前:デフォルトの名無しさん :03/04/11 15:39
>>284
#include <iostream>
using namespace std;は?


286 名前:281 :03/04/11 15:43
こんな感じです。>>285
#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;



287 名前:281 :03/04/11 15:44
//プレイ中のループ
while(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;

288 名前:281 :03/04/11 15:44
cout << "リプレイしますか?(y/n)";
cin >> res;
if( res != 'y' && res !='y')
bContinue = false;
}

//ゲーム終了処理
cout << "ゲームオーバー" << endl;
}

289 名前:mainはintにしろよ :03/04/11 15:44
>>286
main()の上にでもusing namespace std;と書くか、coutやendlにstd::をつける。


290 名前:281 :03/04/11 15:52
>>289
using namespace std;と入れたところ、エラーが激減しました。
ありがとうございます。

あと、エラーふたつあるんですが、

//プレイ中のループ
while(1){
cout << "数値を入力してください" << endl;
cin >> myAns;
の三行目に対し、
error C2065:'myAns':定義されていない識別子です。
error C2593:'operator >>'があいまいです。

となってしまいました。

291 名前:デフォルトの名無しさん :03/04/11 15:54
>>290
C++では識別子は大文字と小文字を区別する。

292 名前:デフォルトの名無しさん :03/04/11 15:55
>cout << "***** 数当てゲーム *****" << end1
・・・

293 名前:281 :03/04/11 16:02
>>291
A→aにしたところ、識別子エラーがなくなりました。
>>292
全角スペースを半角にしました。

お二方ありがとうございます。

また、エラーが発生しました。
error: LNK2019:未解決外部シンボル_WinMain@16関数_WinMainCRTStartupで参照されました。
fatal error:LNK1120:外部参照1が未解決です。

と表示されますた。

294 名前:デフォルトの名無しさん :03/04/11 16:06
>>293
Win32 Console Applicationでプロジェクト作り直してみて。

295 名前:281 :03/04/11 16:19
>>294
出来ました!
ありがとうございます。

いろいろご教授してもらい、皆様、誠にありがとうございました。。

296 名前:デフォルトの名無しさん :03/04/11 17:45
>>280
スタティックコントロールの背景のウインドウ(親ウインドウ)
にMOUSEMOVEイベント送られて来てないですか?

ペゾルトによるとスタティックコントロール上でマウスの移動や
クリックがあると、コントロールが親ウインドウに WM_NCHITTEST
を送って、DefWindowsProc がこれをクライアント領域の
マウスメッセージに変換するそうです。
クライアント領域で自分でマウスの位置を計算するか、コントロールを
サブクラス化するしかないんじゃないでしょうか。




297 名前:デフォルトの名無しさん :03/04/11 17:46

ところで HTTRANSPARENT ってなんですっけ?
どこかで見た記憶があるんですが、関数なのか
パラメータ値なのか、メッセージなのか忘れてしまった。



298 名前:デフォルトの名無しさん :03/04/11 17:56
WM_NCHITTESTの返り値。
In 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)
だそうだ。

299 名前:デフォルトの名無しさん :03/04/11 17:57
>>297
検索の仕方も忘れたか

300 名前:デフォルトの名無しさん :03/04/11 18:29
VC++.NETで
http://members.tripod.co.jp/aiton21/a.jpg
こんな感じの、リストの上をクリックしてソートできる物を作りたいのですが
http://members.tripod.co.jp/aiton21/b.jpg
ここからどうやればよいのか分かりません。。。
とりあえずリストボックスを書いてみたんですが
ほかにそれらしき物は見当たらず・・・。

301 名前:デフォルトの名無しさん :03/04/11 18:40
>>298
あー 発見しました。
WM_NCHITTESTの返り値でしたか。

>>299
MSDNのキーワードで検索してますた。^^;


302 名前:デフォルトの名無しさん :03/04/11 18:43
>>300
リストビューのレポート形式

303 名前:デフォルトの名無しさん :03/04/11 21:50
音楽再生機能を持たせたいのだが参考になるものないかなぁ・?

304 名前:デフォルトの名無しさん :03/04/11 22:06
VC++でボタンなどにビジュアルスタイルを対応させるためのソースコード教えて下さい。

305 名前:デフォルトの名無しさん :03/04/11 22:45
インスタンスハンドルからウインドウハンドルを取得したいのですが、
何かいい方法はありますか?

306 名前:デフォルトの名無しさん :03/04/11 23:02
>>305
残念でしたまたどうぞ


307 名前:デフォルトの名無しさん :03/04/11 23:14
>>303
Google

308 名前:デフォルトの名無しさん :03/04/11 23:22
>>306
氏ね

309 名前:300 :03/04/11 23:54
>302
どもです!ちょっと試してみます。

310 名前:デフォルトの名無しさん :03/04/12 00:57
>306
どもです!ちょっと試してみます。


311 名前:300 :03/04/12 03:25
C++難しいっすね・・・。かなり疲れました。
無事リストを描けたんですがリストにアイテムを追加
するにはどうすればよいんですか?コントロールの変数しか
追加できないんですが・・・。

312 名前:デフォルトの名無しさん :03/04/12 05:08
コンソールアプリ+外字エディタの将棋をウインアプリに作り直したいと
思っているのですが、CONの思考中(再起呼び出し中)落ちたりしませんか?

313 名前:デフォルトの名無しさん :03/04/12 05:29
>>312
あんたがヘタレだから落ちます。絶対に。

314 名前:デフォルトの名無しさん :03/04/12 05:41
>>312
落ちるかどうかはどうプログラムを組むかによるだろ。
313に同意。

>>311
MSDN見ろ

315 名前:214 :03/04/12 06:15
いや見たんですけど分からなくて。。。
もっかい見てみます。

316 名前:300 :03/04/12 06:19
↑300の間違いです

317 名前:デフォルトの名無しさん :03/04/12 09:16
MSDNのDirectXのヘルプはわかりやすかったが、
VisualC++関係のヘルプの日本語が理解できないです。
助けてください。

318 名前:312 :03/04/12 09:21
>>313-314 強さは激指1三段の2枚落ちと互角です。そこそこだと思うのですが。
コンソールアプリだと永久ループでキー入力を待っています。CONの思考中の時は
再起呼び出し中から抜けるボタンを用意しています。ただウインアプリはイベント
トリブン方式(始めから永久ループが用意されている)なのでどうかなと。
思考中に小分けにWinMainの永久ループに戻すみたいなことをすればいいの
ですかね。

永久ループ→CONの手番→CONの思考
↑           ↓
←    ←    ← 抜けるボタン(中断など)を押した∨思考終了

319 名前:デフォルトの名無しさん :03/04/12 09:59
>>318
いやアンタのアルゴリズムが強いか弱いかじゃなくて……

スレッドつくってそっちに任せたほうがいいんじゃないか。

320 名前:デフォルトの名無しさん :03/04/12 10:03
>>307
みつからないんですぅ〜

321 名前:デフォルトの名無しさん :03/04/12 11:25
>>305
ウインドウハンドルからインスタンスハンドルはできますけど、
逆はできるんですかねぇ。俺も知りたいところですが。

322 名前:デフォルトの名無しさん :03/04/12 11:30
>>321
出来たとしても使ってるウインド全部引き連れてくるんじゃないの。

323 名前:デフォルトの名無しさん :03/04/12 13:08
当方の使ってるソフトがvisual C++.net で、
参考書(古い奴)通りにやると、古いとか何とかがでるんだけど(ビルド時じゃなくて)、
新しい参考書買ったほうがいいのかな?

324 名前:デフォルトの名無しさん :03/04/12 13:45
>>323
説明不足で回答不能。

325 名前:デフォルトの名無しさん :03/04/12 14:13
>323
CやC++の本の勉強をVCでやろうとしてる?

326 名前:デフォルトの名無しさん :03/04/12 14:28
>>323
どうせANSI以前の本でも借りてきたんだろ
大人しくVC++.NETの本を買っとけ
どうせANSI準拠の本買ってもコンパイラ通るか怪しいんだから

327 名前:323 :03/04/12 15:32
>>324
すいません。。
>>325
その通りです。
>>326
うぃ。

328 名前:デフォルトの名無しさん :03/04/12 20:28
>>327
ソースとエラーメッセージをうざく無い、程度に書きこんでみるのが吉。
誰か親切な方が、それなりに答えてくれますよ。

329 名前:デフォルトの名無しさん :03/04/12 22:01
>>322
そうですね。
やっぱりできないのかな。複数のウインドウハンドルが
返って来ても、どれが欲しいハンドルなのか判別できないような
気がする。


330 名前:デフォルトの名無しさん :03/04/12 22:17
>>329
結局何がやりたいのか相談したら?
別のもっといい方法があると思うが。。。

331 名前:デフォルトの名無しさん :03/04/13 03:24
>>329ですが。

>>330
漏れは質問者ぢゃないので。^^;



332 名前:デフォルトの名無しさん :03/04/13 05:42
クラスのメンバ関数を呼び出すのはオブジェクトを定義しないとむりですか?

333 名前:デフォルトの名無しさん :03/04/13 08:32
>>332
static関数にすれば呼べるが、クラス設計に注意汁。


334 名前:デフォルトの名無しさん :03/04/13 09:21
仮想関数だから無理だボケ!って言われました。。。
もうちっと勉強してきます

335 名前:335 :03/04/13 19:00
■ VisualC++(MFC限定)相談室 MFC7.dll■から誘導されてきました。
質問なんですが
あるcppファイルから他のヘッダを取り込んで
他のヘッダにあるクラスでオブジェクトを宣言しようとすると、
コンストラクタ関数を呼び出したことになってしまいます。
オブジェクトを新たに宣言できないんですがどうすればいいですか?

336 名前:デフォルトの名無しさん :03/04/14 00:00
>>335
イマイチ言ってる意味がわからんのだが。
あるクラスのインスタンスを宣言したらコンストラクタは必ず呼び出される。

プログラム開始時に呼びたくないのであればポインタで宣言して好きなときにnewしる

337 名前:デフォルトの名無しさん :03/04/14 00:17
>>335
クラスの構成がこんな感じになってたりするとか?

--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 };
------


338 名前:デフォルトの名無しさん :03/04/14 00:34
>>335
MFCスレをみてきたけど……
正直、もう少しC++について調べる必要があると思われ。
知識なさすぎ。

……人に聞くのは「調べる」って言わないからね。念のため。

339 名前:デフォルトの名無しさん :03/04/14 01:17
>>335
VisualC++の初心者向けの本とか買ったのか?
それ見ながらいろいろ試してやっていきなさい



340 名前:335 :03/04/14 06:38
>336
どもです。それは分かるんですが、インスタンスを宣言した
ということにならず、そのくらすのコンストラクタを呼び出したことに
なっちまうんです。
newに関してはよく知らんですが見てみます。
>337
そうではないです。
そういう構成は何か支障があるんですか?
>338
正直自分でも痛感です。全然進まないし。。。
>339
参考書買おうと思っても、.NETの参考書って
なかなかないんすよね。VC++6の参考書で大丈夫ですか?
ってかそもそもC++の知識がままならないっすね・・・。

341 名前:デフォルトの名無しさん :03/04/14 07:21
VC++.netでDirectX使う場合なんですが
DirectXのテンプレート使わないでライブラリの設定をするには
どうやるんでしょうか?

342 名前:デフォルトの名無しさん :03/04/14 14:18
グローバル変数を "testglobal.h" で定義して
それを CTest1 や CTest1Dlg で使いたいんですが
両方の cpp の先頭に include "testglobal.h" ってやると
Test1 error LNK2005: "int abc" (?abc@@3HA) は既に Test1.obj で定義されています。
って感じにリンクエラーになります。
CTest1 のヘッダだけに include を入れても同様のエラーになってしまいます。
どうすれば CTest1 でも CTest1Dlg でも使えるようになるんでしょうか?

343 名前:デフォルトの名無しさん :03/04/14 14:23
>>342
1. グローバル変数は使用するべきではない。設計を見直すこと
2. どうしてもそれがムリな場合、Singletonの採用を考えること。
3. それもむりならグローバル変数の宣言部にexternをつけること。

344 名前:デフォルトの名無しさん :03/04/14 14:40
>>342
>>343の言っていることが普通だが、3.のテクニックとして。


--testglobal.h--
#if _AS_MAIN_
int abc;
#else
extern int abc;
#endif

--main.cpp--
#define _AS_MAIN_ ←その他のソースでははずす。
#include "testglobal.h"
main()
{
....
}
とすると間違い起こりにくいのだが。
なるべく使わないにこしたことはなし。


345 名前:デフォルトの名無しさん :03/04/14 16:21
VC6.0 のことで質問なんですけどで 
不正処理でダウンした後、
ワークスペースを新規作成したときに 
プロジェクトの設定 >source files(等) > 一般 の
「 このファイルをビルドしない 」 の項目に
チェックが常に付くようになって、いちいちチェックはずすのめんどくさいんですけど

どこのオプションをいじれば、元のように戻るでしょうか?

346 名前::03/04/14 16:49
CFileDialogで詳細表示の項目にオリジナルの項目を追加したいのですが
どうすれば宜しいでしょうか?ご指導願います(名前、サイズ とか表示されているところです)


347 名前:デフォルトの名無しさん :03/04/14 17:27
>>335 = >>342だろ?
急がば回れ。C言語の(以下略)


348 名前:デフォルトの名無しさん :03/04/14 17:44
static LPBYTE lpBuf;
static WAVEHDR wh;
wh.lpData=lpBuf;//エラーの場所

error C2440: '=' : 'unsigned char *' から 'char *' に変換することはできません。(新しい動作 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

このエラーの解決法を教えてください。

349 名前:デフォルトの名無しさん :03/04/14 17:50
>>348
明示的なキャストが必要。(char*)lpBuf

350 名前:335 :03/04/14 18:23
>347
違いますよ。。。エラーの内容も違うし。

351 名前:348 :03/04/14 18:53
>>349 できました。ありがとうございました。

352 名前:デフォルトの名無しさん :03/04/14 19:12
CreateMutex で MUTEX を作成して、アプリの多重起動を防ぐ方法はわかりました。
ところで、自分で作成したアプリならMUTEXの文字列はわかりますが、
そうでないアプリのMUTEX文字列がわかりません。
これを調べるのにはどんな方法がありますでしょうか?


353 名前:デフォルトの名無しさん :03/04/14 19:36
>>352
それは俺も知りたいなぁ

まぁ名前をできるだけ長くしておけば大丈夫だと思う
アプリケーション名、作者名、開発環境、ジャンルなどで
例:test_exe__Nanashisan__Microsoft_VisualC__GameProgram

邪道なやり方だけど多重起動を防ぐ他の方法としては
実行ファイルから多重起動防止用のファイル(test.dat)を排他モードで開きっぱなしにする
実行ファイル終了時自動的にクローズされる(実際にやったことないけど


354 名前:デフォルトの名無しさん :03/04/14 19:43
名前はGUID使えばよし

355 名前:デフォルトの名無しさん :03/04/14 20:07
最近VBからVCに移ってきた者です。おながいします。m(__)m
VCで自作のクラスを作り、hファイルとcppファイルに分けて
保存し、それを別プロジェクトで取り込んだのですが、コンパイル時
に「**.hファイルがありません。」と言われます。
そのプロジェクトでしかインクルードしないので、オプションの設定で
インクルードファイルのパスとして登録したくないのですが、
どうしたらいいのでしょうか?

356 名前:デフォルトの名無しさん :03/04/14 20:11
絶対パスで指定する。相対パスで指定する。プロジェクトの設定でインクルードパスを追加する。

357 名前:デフォルトの名無しさん :03/04/14 20:25
ムハハハッハハハハッハハハッハ!!!!!!!!!!!!!!!!!!!!

358 名前:355 :03/04/14 20:28
>>356
早速ありがとうございます。m(__)m
プロジェクトの設定のリソースタブのインクルードファイルのパス
でそのファイルのパスを指定したのですがやはりダメでした。。。

359 名前:デフォルトの名無しさん :03/04/14 20:33
データムハハハッハッハハ!!

360 名前:デフォルトの名無しさん :03/04/14 21:27
>>358
まさか
#include <ファイル名>
と言う風に開いているのではあるまいな?

361 名前:355=358 :03/04/14 21:29
>>360
いえ、#include "ファイル名" です。
パス指定すればコンパイルできたのですが。。。

362 名前:デフォルトの名無しさん :03/04/14 21:36
(´-`).。oO(日本語ファイル名とか……

363 名前:355 :03/04/14 21:44
>>362
いえ、普通の英語名です。なんでだろう。。。
とりあえずパス指定でコンパイルできたので(356さんありがとう)
それで進みます。
みなさんお騒がせしてすみません。。。


364 名前:デフォルトの名無しさん :03/04/14 21:54
>>358
まさかとは思うがファイルそのもののパスを指定していないだろうな?
ファイルのパスではなく、インクルードファイルが格納されているフォルダを指定するんだぞ

365 名前:358 :03/04/14 22:18
>>364
すいません...(TT)
いえ、インクルードファイルのパスというエディットボックスに
ちゃんとフォルダのパスを入れてるんですよぉ(C:\省略\Control\Common)。


366 名前:デフォルトの名無しさん :03/04/14 22:24
マウス系のイベント欲しくて

stdafx.h に

#define _WIN32_WINNT 0x0400

付け加えたらデバッグでは動くのに
リリースでは落ちてしまいます。

何か原因考えられますか?

367 名前:756 :03/04/14 22:26
#define _WIN32_WINNT 0x0400
のせいじゃないと思う、なんとなく。適当でスマソ。

368 名前:デフォルトの名無しさん :03/04/14 22:26
>>365
つーかちゃんとプロジェクトのワークスペースのファイルビューでソースとヘッダを追加してるか?

369 名前:365 :03/04/14 22:34
>>368
してます、してます(TT)。
でも初心者的な質問なのですが、ファイルを追加した時点でVCはどのファイルが
インクルードされてるかわかっているのに、なんでインクルードファイルの
フォルダを指定しないといけないのか理解できないのですが。。。
これだとあるa.hというヘッダをインクルードしてもフォルダ参照にされてなくて
もし参照されているフォルダに同名のa.hが存在したらPGするとき混乱するような
気が。。。VC歴が数ヶ月なのでアホな質問だったらすみません。VBだとファイルを
追加したらそのパスがプロジェクトファイルに書かれているのですが、
確かにVCのプロジェクトファイルには取り込んでいるファイルのパスは書かれて
いない(ファイル名のみ)ですね。
あくまで参照するフォルダを指定する必要があるんですね。。。

370 名前:デフォルトの名無しさん :03/04/14 22:36
そのソースとヘッダはプロジェクトファイルと同じ場所にあるの?

371 名前:365 :03/04/14 22:41
>>370
いえ汎用なので別のフォルダに両方とも入っています。

372 名前:デフォルトの名無しさん :03/04/14 22:44
>>371
>>369をしっかり読んでなかったよスマソ。
つーかやっぱりこの場合はフォルダ指定しなきゃ駄目なんじゃないかね。

373 名前:365 :03/04/14 22:44
あ、適当なこと書いてしまいました。
VCのプロジェクトファイル(dsp)も別フォルダから取り込んだファイルの
パスを相対パスでちゃんと管理していますね。
だとしたら余計インクルードパスを指定する必要がわからない。。。(TT)

374 名前:365 :03/04/14 22:47
>>372
何度もすみません。
VCというよりC++コンパイラの仕様なんでしょうかね。
仕様ならしようがないので納得します。
こんなオチですみません。。。


375 名前:デフォルトの名無しさん :03/04/14 23:31
>>374
プロジェクトの設定⇒タブ:C/C++⇒カテゴリ:プリプロセッサ⇒インクルードファイルのパス(N)
なら相対or絶対パスでも大丈夫。

376 名前:デフォルトの名無しさん :03/04/14 23:43
>>375
10レス程度前のレスも読めんのか

377 名前:デフォルトの名無しさん :03/04/14 23:52
>>376
てめーこそ良く見やがれ。糞が。
>358 名前:355[] 投稿日:03/04/14 20:28
>>356
>早速ありがとうございます。m(__)m
>プロジェクトの設定のリソースタブのインクルードファイルのパス
>でそのファイルのパスを指定したのですがやはりダメでした。。。

リソースタブで指定してるからおかしいってんだ。
ボケ、氏ネ。



378 名前:365 :03/04/14 23:52
>>375
ありがとうございます!
で、できました!!!

>>376
いえ、僕の間違いでした。
リソースタブでインクルードファイル指定してました。
お騒がせしてほんとにすみません。
初心者なので許してください...m(__)m >レス下さったみなさん

逝ってきます。(TT)


379 名前:377 :03/04/14 23:59
>>378
>ボケ、氏ネ。
これは、>>376 に対するものだから気にしなくていいよ。
>>377は日本語が不自由なようだ。

380 名前:365 :03/04/15 00:00
>>377
いえ僕の文章もだらだらと読みづらかったのですんまそん。
またいろいろ教えてくださいね。ではでは。。。

381 名前:デフォルトの名無しさん :03/04/15 00:04
最後はマターリとしました!

382 名前:デフォルトの名無しさん :03/04/15 00:10
VisualC++勉強したいけど近所の本屋にはVisualC#.NETの本しかない・・・。(TAT)

383 名前:デフォルトの名無しさん :03/04/15 00:11
ちょっと大きい本屋行けばまだまだあるよ。
わかり易いかどうかは別だけど。

384 名前:デフォルトの名無しさん :03/04/15 00:18
>>382
図書館は?

385 名前:デフォルトの名無しさん :03/04/15 00:22
>>340
コンストラクタを呼び出されたら、クラスのインスタンスは必ずあるはずだが?
そもそもコンストラクタが呼び出されると何か問題があるの?

newも解らないようじゃ…
.NETとかVCではなくC++の参考書でも読んで勉強し直してきた方がいいですね。


386 名前:デフォルトの名無しさん :03/04/15 01:24
>>379
おまえも日本語が不自由みたいだなw

387 名前:デフォルトの名無しさん :03/04/15 01:25
>>384
逆にQuickCとか置いてそう

388 名前:デフォルトの名無しさん :03/04/15 01:44
ejanaika ejanaika

389 名前:352 :03/04/15 01:46
>>354
>名前はGUID使えばよし

ありがとうございます。GUIDってなんでしょうか?

390 名前:デフォルトの名無しさん :03/04/15 02:03
>>386
脳なしに言われたないわい。

391 名前:デフォルトの名無しさん :03/04/15 02:09
>>389
せめて検索くらいしろボケ
氏ね

392 名前:デフォルトの名無しさん :03/04/15 02:19
すいません。教えてください。

CFont m_Font;
LOGFONT lf;
m_Font.GetLogFont(&lf);

上記は正常に動くのですが、lf をポインタで宣言して、

CFont m_Font;
LOGFONT* lf;
m_Font.GetLogFont(lf);

と変えるとm_Font.GetLogFont(lf);の行でエラー
「値が割り当てられていないローカルな変数 'lf' に対して参照が行われました。」
が出るのはなぜなのでしょうか?

393 名前:デフォルトの名無しさん :03/04/15 02:51
>>392
ちょっと考えれば当たり前だと思うけど……

GetLogFontは、与えられたポインタが指し示すメモリにフォント情報を格納するのね。
上の場合はlfという変数の領域に格納するから問題なし。
下の場合はいったいどこにフォント情報を格納すればいいのでしょうか?

394 名前:デフォルトの名無しさん :03/04/15 02:58
>>392
エラーメッセージのそのまんまの意味。
lfが有効な値になっていない(実体を指していない)から。
つかこんなんC言語の基礎中の基礎だが大丈夫か?


395 名前:デフォルトの名無しさん :03/04/15 02:59
型さえ合っていればいい、っていう考え方なんだろうね。
その関数がどんな動きをするか考えようともしない。

396 名前:誠心君 :03/04/15 04:43
ちょ〜素人だけどフ゜ログラマーカメラ電波機械全般に詳しい人探したいけど、どうしたらいいのおちえて?

397 名前:デフォルトの名無しさん :03/04/15 04:50
外国の方が来られたようです。

398 名前:デフォルトの名無しさん :03/04/15 04:52
                     |\
┌──────────┘- \
│  外国の方が             \
│                     /
└──────────┐- /
      ヽ(´ー`).ノ       |/
        (  へ)
        く
                  - = ≡三                    |\
               - = ≡三  ┌──────────┘- \
               _ = ≡三    │                     \
                ̄ = ≡三    │     いらっしゃいます       /
               - = ≡三  └──────────┐- /
        (´ー`)        - = ≡三                     |/
      ( ヽ ヽ)
       /  >

399 名前:342 :03/04/15 08:22
>>343-344
すみません。調べたんですが難しすぎてよくわかんないです。
もっと簡単なもんかと思ってたんですが…
でも、グローバル変数は普通使っちゃいけないんですね。
ド素人なもんでそんな事もしりませんでした。

一番わかりやすそうな
CTestApp のメンバ変数にして 他のクラスからは
AfxGetApp で取る事にしようと思います。

ありがとうございました。

>>347
???

400 名前::03/04/15 09:48
>>346 です。CFileDialogを拡張して
hList = GetListViewInner();// リストビューのハンドル確保
hHead = ::GetWindow(hList, GW_CHILD);// そのヘッダーのハンドル確保
LV_COLUMNを利用して項目を追加するも詳細表示の表示項目その他を選択すると
落ちてしまいます。どなたかよきアドバイスをお願いします。
やはり1から作成するしかないのでしょうか?


401 名前:デフォルトの名無しさん :03/04/15 10:46
>>400
マルチうぜー

402 名前:デフォルトの名無しさん :03/04/15 12:47
#include <stdio.h>
#include <windows.h>
int main(void)
{
char c;
char a[3]={3,4,5};
char b[3]={3,4,5};
c=strcmp(a,b);
printf("c=%d\n",c);
c=lstrcmp(a,b);
printf("c=%d\n",c);
}

aとbを比較するとき、等しい場合は0が返ってくると思うのですが何故か
c=1
c=-1
になってしまいます。何故でしょうか?

403 名前:デフォルトの名無しさん :03/04/15 12:55
文字列を比較する関数を使っているからです

404 名前:デフォルトの名無しさん :03/04/15 12:59
>>402
文字列になっていない(終端文字がない)から

405 名前:デフォルトの名無しさん :03/04/15 12:59
>>403
レスありがとうございます。おっしゃる通りでした。

406 名前:デフォルトの名無しさん :03/04/15 18:09
すいません。教えてください。あるサンプルを見ていたのですが、

CString strHtmlPath = _T("C:\\tmp.html");

の _T はどういう処理をしているのでしょうか?
MSDNで調べると「データ型のマッピング」と書かれているのですが
データ型のマッピングという言葉の意味がわかりません。
_T というものはどう言うときに使うものなのでしょうか?

それから、その後に、

Navigate2(strHtmlPath, NULL, NULL);

となっているのですが、MSDNでNavigate2メンバ関数を調べると、3つにオーバーロード
されていて、どれも第一引数がポインタとなっています。
が、上記strHtmlPathは前述の通りCString型の実体として宣言されています。
これはどう言うことなのでしょうか?CString型ということが何かカギなのでしょうか?

407 名前:デフォルトの名無しさん :03/04/15 18:25
>>406
MSDNにも書かれていますが、
_Tは文字列がUnicodeで記述されている場合に、
L"文字列"に置き換えて、その他の場合には
単に削除されるようです。文字列がUnicodeの場合には
L"文字列"というように最初にL(longのL)を書かないと
ダメらしい。



408 名前:デフォルトの名無しさん :03/04/15 18:38
>>406
後者は
CString::operator LPCTSTR
が呼び出されているのでしょう。つまりキャストです。

しかし2番目と3番目、どっちが呼び出されているのですかね。
参照はNULLを取らないから、2番目だと思うのですが、
2番目だとすると第2、第3引数は不要ではないですかね?



409 名前:デフォルトの名無しさん :03/04/15 18:42
>>393-395

レスありがとうございました。
ポインタを宣言してもそのポインタが指し示すアドレスがわからないという
ことですね。

410 名前:デフォルトの名無しさん :03/04/15 19:00
>>407
レスありがとうございます。
C:\\ という記号の辺りがデータ型によっては特殊文字になってしまうのかな?
そこらへんが関係するのですね。調べてみます。

>>408
レスありがとうございます。
MSDNをみたら operator LPCTSTR が載っていました。
試しに
Navigate2((LPCSTR)strHtmlPath, NULL, NULL);
と記述しても動きました。

どうもありがとうございました。

411 名前:デフォルトの名無しさん :03/04/15 19:02
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

412 名前:デフォルトの名無しさん :03/04/15 19:04
>>408
あ、それからNavigate2は2番目の関数のようです。
いわれる通り、第一引数だけで残りを省略しても動作しました。

413 名前:デフォルトの名無しさん :03/04/15 23:07
>>410
Unicodeご存知ないですかね。


414 名前:デフォルトの名無しさん :03/04/16 03:09
メッセージループをメインループにすると時間系の関数などを使いやすくなります
が、デメリットはありますか?

415 名前:デフォルトの名無しさん :03/04/16 09:43
>414
デメリットはネタに見えることです。


416 名前:デフォルトの名無しさん :03/04/16 12:21
Windowsを再インストールすることになり、
いままで使ってきた Visual C++ の環境の設定を保存しておきたいのですが、
設定を保存しているファイルとかあるのでしょうか?
もしくは、レジストリでしょうか?
どなたか ご存知でしたら おしえていただくとありがたいです。

(黒字に白文字でないと、目がつかれたり、また その他ショートカット
なども専用に設定しているので、また、設定をする手間が省けるので、
今後のためにも 教えてください。)

417 名前:デフォルトの名無しさん :03/04/16 12:26
>416

俺は↓のレジストリから必要な部分だけを reg ファイルにして保存してる

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0]

418 名前:デフォルトの名無しさん :03/04/16 12:30
>>416
そういうのはすべてレジストリだと思われ。
インストールフォルダ以下をざっと探ってみたけどそれらしきものは見つからなかった。

白地に黒、って疲れるよね。
俺は画面のプロパティでウィンドウの背景色を白から薄緑にしてるよ。
他のところまで変わるのはご愛嬌……

419 名前:414 :03/04/16 12:48
答えが得られなかったので、他のスレで質問させていただきます。

420 名前:デフォルトの名無しさん :03/04/16 13:56
>>414
プッ。

421 名前:デフォルトの名無しさん :03/04/16 15:48
始めたばかりの超初心者なのですがどうしてもエラーの場所がわかりません
どなたか教えていただけないでしょうか?
#include<stdlib.h>
#include<GL/glut.h>
#include<GL/gl.h>
#include<math.h>
#define PAI 3.1415926536

void display(void)
{
int x=0.5*cos(2.0*PAI*(float)/(float)10);
int y=0.5*sin(2.0*PAI*(float)/(float)10);
int z=0.0;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_LOOP);
glVertex3f(x,y,z);
glEnd();
glFlush();
}

422 名前:デフォルトの名無しさん :03/04/16 16:09
>>421
あなたは何故エラーメッセージを書かないのですか?

423 名前:デフォルトの名無しさん :03/04/16 17:29
>>422
良くわかっていないもので・・・
エラー2 警告0とかいうのは出るんですが


424 名前:デフォルトの名無しさん :03/04/16 17:45
Visual C++ と関係ないのでは?

425 名前:デフォルトの名無しさん :03/04/16 18:08
VC++コンパイラの使い方がわかっていないようだが

>エラー2 警告0
の書かれている所の右側にスクロールバーが無いか?

426 名前:デフォルトの名無しさん :03/04/16 18:29
どこからコピペしたかしらんが、main()もないし#include<GL/glut.h> や #include<GL/gl.h> がちゃんとインクルードできるのかも謎。

427 名前:デフォルトの名無しさん :03/04/16 18:46
floatを掛けて割っているのが原因だと思うが
出力されるエラーメッセージを見ることすら出来ないのは問題外
言語以前にWindowsの基本操作からやり直した方がいい

428 名前:デフォルトの名無しさん :03/04/16 18:50
>>421
エラーの場所はたぶん1桁か2桁ぐらいの数値で表示されてると思います
そしてそれは行数です
あなたに何行目でエラーが発生しているか教えてくれるでしょう

さらにエラーメッセージをダブルクリックするとそのエラーが発生した行を
反転表示してくれると期待できます

429 名前:デフォルトの名無しさん :03/04/16 18:50
>>421
宿題は自分でやりましょう

430 名前:デフォルトの名無しさん :03/04/16 19:12
ゲーム等でマップを作る時なぜ、StretchDIBitsとSetPixselVではなぜスピードが
大きく違うのですか?グラフィックは点の集まりなのだから、同じでもいいと思う
のですが。

431 名前:デフォルトの名無しさん :03/04/16 20:24
>>429
禿しく同意!

432 名前:デフォルトの名無しさん :03/04/16 20:58
>430
問。 
たらい一杯ぶんの水を井戸から汲み上げようと思います。
1)コップをつかって何度も何度もくみなおす
2)たらい並の容積のいれものでいっぺんに汲む
無駄なく早いのはどっち。

433 名前:デフォルトの名無しさん :03/04/16 21:18
>>432
スレタイが読めない文盲の方ですか?( ´ー`)y-~~

434 名前:デフォルトの名無しさん :03/04/16 22:01
>>433
( ´,_ゝ`)

435 名前:デフォルトの名無しさん :03/04/16 22:04
なんつーか何かに例えたがるよな、プログラマって。

436 名前:デフォルトの名無しさん :03/04/16 23:35
>>435
物を教える時に例え話って使うだろ。
プログラミングに限らず。

てか、>>432の意味がマジでワカランかったの?
不条理な逆ギレイクナイ!

437 名前:デフォルトの名無しさん :03/04/17 00:12
>>430
関数のオーバーヘッドがある、最適化し難い(メモリ転送命令が使えない)等…
>>432はなかなか良い例えだと思うが…


438 名前:あぼーん :03/04/17 00:12
( ´∀`)/< 先生!!こんなのを見つけました。
http://japan.pinkserver.com/yamazaki/moe/hankaku09.html
http://japan.pinkserver.com/yamazaki/moe/hankaku10.html
http://japan.pinkserver.com/yamazaki/moe/hankaku07.html
http://japan.pinkserver.com/yamazaki/moe/hankaku08.html
http://japan.pinkserver.com/yamazaki/moe/hankaku05.html
http://japan.pinkserver.com/yamazaki/moe/hankaku06.html
http://japan.pinkserver.com/yamazaki/moe/hankaku03.html
http://japan.pinkserver.com/yamazaki/moe/hankaku04.html
http://japan.pinkserver.com/yamazaki/moe/hankaku01.html
http://japan.pinkserver.com/yamazaki/moe/hankaku02.html

439 名前:デフォルトの名無しさん :03/04/17 00:22
>>433
( ´_ゝ`)

440 名前:デフォルトの名無しさん :03/04/17 00:22
いや、問返しはカコワルイよ。

441 名前:430 :03/04/17 01:01
分かりました。ありがとうございました。後、StretchDIBitsでマップをスクロール
する場合、一度半マス移動分のを表示してから、1マス移動を表示したいのですが、
マイナスの座標から表示しても(16ピクセルのセルなら8ピクセルずらし、通常17×17
セルなら18×18セルをずらして表示)大丈夫なのですか?また、他の方法があるなら
教えてください。

442 名前:デフォルトの名無しさん :03/04/17 01:58
StretchDIBitsって使ったこと内や

CreateDIBSection→BitBlt, StretchBltでやってる


443 名前:デフォルトの名無しさん :03/04/17 02:04
LPVOID test;

(DWORD) test;
(UINT) test;
(WORD) test;
(BYTE) test;
--
(DWORD) test;
だけ型キャストの警告がでます。どうしてでしょうか?
VC7使ってます。
お願いします。

444 名前:エラー内容も書け :03/04/17 03:41
>>443
どんなキャストの警告が出る?
VC6では出なかった。
もしもこういうコードを書いているなら当然だが……

LPVOID test;
DWORD test2 = (DWORD) test;
UINT test3 = (UINT) test;
WORD test4=(WORD) test;
BYTE test5=(BYTE) test;

(testが初期化されていないから値が不定。)

445 名前:デフォルトの名無しさん :03/04/17 05:41
>>417,418
返事遅くなりましたが、どうもありがとうございました。
クリーンインストールするんで、レジストリでもなんでも 強気でいじれるので、
いろいろいじってみたいと思います。
どうも ありがとございました。


446 名前:443 :03/04/17 05:57
>>444
どうも
'型キャスト' : ポインタを 'LPVOID' から 'DWORD' へ切り詰めます。
ってエラーです。

sizeof で LPVOID と DWORD を調べても、両方4byteで問題ないはずなんですよね。
むしろ問題であるはずのBYTE と WORD のキャストには無警告なんですよ。

おそらくVC7だと64bitアドレスもサポートしてるんで、その性だとおもうんですが、
だとしたら、なんでBYTEとWORDへのキャストには無警告なんでしょうね・・・

447 名前::03/04/17 06:09
>>443
いいからソースを見せなさい。

448 名前:443 :03/04/17 07:02
やっぱり警告は64ビット対応が原因でした。
UINT型とDWORD型のみへの警告は恐らく、旧来の手法に対する警告ってことでしょうね。

#include <windows.h>
#include <stdio.h>
void main( )
{
DWORD d; UINTui; WORD w;BYTE b;LPVOID p;
p = &d; d = (DWORD) p; ui = (UINT) p; w = (WORD) p; b = (BYTE) p;

printf( "LPVOID = %d\n", sizeof( LPVOID ) );
printf( "DWORD = %d\n", sizeof( DWORD ) );
printf( "UINT = %d\n", sizeof( UINT ) );
printf( "WORD = %d\n", sizeof( WORD ) );
printf( "BYTE = %d\n", sizeof( BYTE ) );
}

結果:LPVOID = 4,DWORD = 4,UINT = 4,WORD = 2,BYTE 1

warning C4311: '型キャスト' : ポインタを 'LPVOID' から 'DWORD' へ切り詰めます。
d = (DWORD) p;
warning C4311: '型キャスト' : ポインタを 'LPVOID' から 'UINT' へ切り詰めます。
ui = (UINT) p;


449 名前:430 :03/04/17 07:16
>>442 ありがとうございます。やってみます。

450 名前:デフォルトの名無しさん :03/04/17 09:41
ツールバー上のボタンの文字列を
あらかじめ設定した文字列から
イベント取得時に変更したいのですが
どうやればいいんでしょうか?


451 名前:デフォルトの名無しさん :03/04/17 09:45
オーナードロー

452 名前::03/04/17 13:00
警告やな、エラーではないな。
了解。


453 名前:bloom :03/04/17 13:12
http://www2.leverage.jp/start/

454 名前:デフォルトの名無しさん :03/04/17 13:48
テンプレートのデフォルトパラメータにvoidを使用できないのですが
c++の決まりですか?VCの決まりですか?
template < typename T = void > class hoge 〜

template < typename T > class hoge 〜
にたいして
hoge < void > foo;は可能な様です。

455 名前:山崎渉 :03/04/17 15:09
(^^)

456 名前:デフォルトの名無しさん :03/04/17 16:14
次からテンプレでMFC使ってるかどうかを書くように促して欲しい

457 名前:454 :03/04/17 16:38
ちなみにVC6のコンパイラの話です
エラーメッセージ↓
error C2182: '__formal' : 'void' 型を使って宣言されました。

458 名前:デフォルトの名無しさん :03/04/17 17:13
俺できなかったな
仕方ないのでintにしてる

void *はできるかな? やってないけど


459 名前:454 :03/04/17 17:30
>>458
レスどうもです。
その他この他いろんな疑問(VCの不具合?)がでてきたので自分で調べる環境を整えます。
CGI作って遊んだっきりのcygwinが役に立ちそうです・・・
とりあえず立ち上げて・・・即exit。全く使い方覚えていない・・・

460 名前:デフォルトの名無しさん :03/04/17 18:19
VCの不具合って、。。。まず自分のなコードを疑った方がいいよ。

461 名前:デフォルトの名無しさん :03/04/17 18:37
ん〜 void* ならともかく void って実態ないでしょ。
そんなコード作る意義あるんですかね。



462 名前:454 :03/04/17 18:39
>>460
テンプレートについてはかなり不充分らしいです。(特にVC6)
実際ちょっとした実験コードを書いたらすぐに壁にぶち当たりました。
んで,なれないg++で実験してみました。

メンバ関数テンプレートで
class Foo {
 template <typename T> void bar(){...}
}
Foo foo;
foo.bar<hoge>();

において「<hoge>が不用です」なんて言われるのです。
g++だとOKでした。
引数でとる場合はOKなんですけどね。

class Foo {
 template <typename T> void bar( T& t ){...}
}
Foo foo;
foo.bar<hoge>();
int i;
foo.bar(i)

でも自分が間違っている気がします。

463 名前:454 :03/04/17 18:45
>>461
Modern C++ Design の第11章マルチメソッドに一つの例があります。
てゆうかこれを実験してみたかっただけなんですが。
LokiPortVC6版がホスィ。

464 名前:デフォルトの名無しさん :03/04/17 22:22
>>457
つべこべ言わずにVisualStudio .NET 2003を待て。もうすぐ発売だ。
ANSI準拠度がかなり上がっているぞ。

465 名前:デフォルトの名無しさん :03/04/17 22:31
準拠度98%だっけ?99%?

466 名前:デフォルトの名無しさん :03/04/18 10:35
BITMAPINFO BmInfo;
BmInfoHed.biPlanes=1;
BmInfoHed.biBitCount=24;
for(a=0;a<16*16;a++)
{
r=rand()%64;
lpBMP[a*3]=r/16*85;
lpBMP[a*3+1]=r/4%4*85;
lpBMP[a*3+2]=r%4*85;
}
色のバイトの所を8にするとうまく色が表示されないのですが(6で足りるはずなのに)、
どうすればよいのでしょう。

467 名前:デフォルトの名無しさん :03/04/18 11:48
>>466
色のバイトのところってなんじゃい。

ビットマップの構造として幅が8*nドットになるようにダミーデータが入るのと関係あるのだろうか

468 名前:466 :03/04/18 13:51
>>467
色のバイトの所とはBmInfoHed.biBitCount=24の所です。
再び調べてみた所、24(フルカラー)以外の場合は予め色を登録しておかなければ
ならないようです。初心者なので、質問もうまくできませんでしたが、
お答えありがとうございました。もう少し勉強してきます。

469 名前:フルタワーが机の下に入らん :03/04/18 14:37
BMP ファイルの幅は 4の倍数になるようになってます。
これは x86系の CPU が 4 の倍数を計算するときだけ微妙に速くなるからです。

470 名前:デフォルトの名無しさん :03/04/18 14:49
>これは x86系の CPU が 4 の倍数を計算するときだけ微妙に速くなるからです。
なんか大嘘をぶっこいている奴がいるんだがどうしよう
メモリのバス幅の問題とアーキテクチャの問題の近藤君がいるよ

471 名前:デフォルトの名無しさん :03/04/18 15:53
初心者だ、見逃してやれ

472 名前:デフォルトの名無しさん :03/04/18 16:00
>>468

たとえば 8 ビットカラーの場合、BITMAPINFO hoge; じゃあなくて、
LPBITMAPINFO bi = new BYTE[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*256];
てな感じで clut の分も確保して、bi->bmiColors[0...255] にそれぞれの色を入れて、
bi->bmiHeader.biClrUsed = 256; とかする。


473 名前::03/04/18 19:20
>>466
ヘルプを見る。
ちゃんと全部かいてある。
その 6ではいけない理由もな。

474 名前:デフォルトの名無しさん :03/04/18 20:00
466の突込みどころはそれだけじゃないような

lpBMP[a*3]=r/16*85;
lpBMP[a*3+1]=r/4%4*85;
lpBMP[a*3+2]=r%4*85;
の部分

p = lpBMP;
...
*p++ =r/16*85;
*p++ =r/4%4*85;
*p++ =r%4*85;
みたいにするほうがいいよ
こっちの方が速いはず


475 名前:デフォルトの名無しさん :03/04/18 20:02
たいした違いはない。

476 名前:デフォルトの名無しさん :03/04/18 20:17
シンボルってなんですか?
VisualStudio6.0をセットアップする時にもWindowsNT Symbol Setup が
どうのこうのというメッセージが出ますが、これをするとどうなるのですか、
しないとどうなるのですか?
OSはWindows2000です。私はVBしか使った事がなくて、これからVCをやってみようかと
思っているのですが・・・

477 名前:デフォルトの名無しさん :03/04/18 23:02
最強の開発言語
http://www.borland.co.jp/delphi/personal/


478 名前:デフォルトの名無しさん :03/04/19 00:23
>476
VisualC++でデバッグをするときにちょっと便利になる。
ディスク容量に余裕があるならセットアップしとけ。

…でも使ってるOSに対する正しいシンボル情報は
別途入手する必要があるかも。
まあ分からなかったら今はまだ気にしなくていい。

479 名前:デフォルトの名無しさん :03/04/19 00:32
ペゾルド読んでます。

Win98/NTではすべてのスレッドが、それぞれのメッセージキューを持つ
らしいのですが、作成したスレッドにメッセージを送るにはどうしたら
いいんですか?

DWORD WINAPI ThreadFunc (LPVOID Param);

↑この関数内部で GetMessage すると、このスレッドのメッセージキューから
メッセージをGetできるってことですよね?

int WINAPI WinMain ();

の場合は hInstance を使って CreateWindow() したウインドウに対して
メッセージを送ることで、WinMain のメッセージキューに送られるみたい
ですが。

またWinMainじゃない、作成したスレッドでCreateWindow する場合は
WinMain の hInstance を使えばいいのでしょうか?

480 名前::03/04/19 01:12
>>479
そんなあなたに WaitForSingleObject
いまなら CreateEvent が、もれなくついてきます。


481 名前:デフォルトの名無しさん :03/04/19 01:31
>>479
PostThreadMessage()で送ってGetMessage()かPeekMessage()で受け取る。
この時に気を付けなければならないのは送信先スレッドにメッセージキューが
無いとPostThreadMessage()は失敗する。
CreateMessageQueue()みたいな関数は存在しないので注意。
詳しくはヘルプ参照。
別スレッドでも基本的にWinMainのhInstanceを使用する。


482 名前:デフォルトの名無しさん :03/04/19 03:36
>>481
PostThreadMessage なんてのがあるんですね。
メッセージキューってすべてのスレッドで自動的に
作られるんじゃないんですか?

>>480
どうもです。こっちはペゾルドにも書いてありますた。

483 名前::03/04/19 06:23
>>482
それは失礼しますた。

ちょっと強引だが、
Windowsでは、プロセスに自動的にメッセージが「送られて」くるが
それを 「受け取る」&「中身を見る」のは、プログラマの仕事です。
あくまでイメージね。


484 名前:デフォルトの名無しさん :03/04/19 08:58
>>482
メッセージキューは自動的に作成されるが、
スレッドを生成したら自動的にメッセージキューが作成されるわけではないので注意。
ヘルプとか見ると受け取りスレッド側でAPI関数を呼べば自動的に作成されるようだが、
全てのAPI関数がそうなのかはよくわからん(藁)
一番確実なのは受け取りスレッド側でPeekMessage()を呼べはメッセージキューが作成される。


485 名前:デフォルトの名無しさん :03/04/19 16:28
個人的にはPostThreadMessageはお勧めしない。
見えないウィンドウを作ってそのウィンドウにPostMessage
する方が紛れがない。
思わぬAPIがスレッドのメインウィンドウの存在を前提に
してたりする、んじゃなかったかな。

486 名前:デフォルトの名無しさん :03/04/19 20:43
>>485
なるほど。つまりメッセージでコントロールするなら、
わざわざ新規スレッドで作る必要は無いってこと
なのかな。

それとも新スレ作ってもhInstanceで何かのウインドウを
作るべきってこと?

487 名前:デフォルトの名無しさん :03/04/19 20:44
>>485
あ、すんません。理解しました。
ウインドウ作ると SendMessageが使えるってことですね。

488 名前:デフォルトの名無しさん :03/04/19 22:52
最近プログラミング覚えようとおもったものです。
Visual Studio 6.0はあるんですが、Visual Studio NETって買う必要ありますか?


489 名前:デフォルトの名無しさん :03/04/19 22:54
無いです。もうすぐVisualStudio.NET2003が出ます。

490 名前:488 :03/04/19 22:59
>>489
VisualStudio.NET2003は買ったほうがいいということでしょうか。

491 名前:デフォルトの名無しさん :03/04/19 23:09
>>490
現状と予算と目的次第。


492 名前:デフォルトの名無しさん :03/04/19 23:31
プログラミング覚えるならVS6.0で充分

493 名前:デフォルトの名無しさん :03/04/20 00:43
というか覚えようと思ってる段階なのにVS6.0をすでに持ってるってのが怪しい

494 名前:485 :03/04/20 01:23
>>486-487
新規スレッドの先頭でCreateWindowするってこと。
まあ面倒だし、PostThreadMessageってのは
そういう面倒なことをなくすためのAPIじゃないのかって
話もあるだろうけどね。

待てよ。そこまで気にするならイベントオブジェクトを
使って自前でキューを実装した方がいいかも。
うん、そうだ。その方がいい。

495 名前:デフォルトの名無しさん :03/04/20 01:54
他のプログラムの起動とともに処理を開始して、終了したら処理をとめるような
プログラムを組みたいのですが、この場合グローバルフック使ってメッセージを
監視するのでいいのでしょうか?
他にもっと簡単な方法はありますか? 諸先輩方、アドバイスお願いします。

496 名前:山崎渉 :03/04/20 02:55
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

497 名前:山崎渉 :03/04/20 03:35
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

498 名前:デフォルトの名無しさん :03/04/20 15:22
厨な質問ですが、
m=objFolder.SubFolders.Count
としたとき、mにはフォルダの個数がはいるのですが、
m=objFolder.SubFolders
ならmにはなにがはいるんでしょう?

499 名前:ネタにマジレス :03/04/20 17:20
>>498
ほんとに厨だな。
objFolderの型情報さえも書いてない。
MSDN調べろよ。

500 名前:デフォルトの名無しさん :03/04/20 22:06
>>498
ちゃんとした参考書を1冊こなせば、
そういう質問はでてこないはず。



■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.