5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :よろ♪:03/02/02 23:33
タイトルのとおり、初心者専用です。

前スレ
★初心者にVisual C++を教えるスレ★ Part3
http://pc2.2ch.net/test/read.cgi/tech/1038160750/l50

★初心者にVisual C++を教えるスレ★
http://pc3.2ch.net/test/read.cgi/tech/1023530449/l50

関連スレ
■ VisualC++(MFC限定)相談室 5■
http://pc3.2ch.net/test/read.cgi/tech/1028553308/l50

Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/l50


2 :デフォルトの名無しさん:03/02/02 23:34
990 名前:デフォルトの名無しさん 投稿日:03/02/02 23:17
めちゃ初歩的な質問です。

ダイアログベースで作成しているのですが、
OKボタン、CANCELボタンを無効にして新しいボタンを2つ作成し、
そのボタンにOK、CANCELボタンの役割を持たせるように
プログラムしました。
その後、エディットボックスを追加したのですが、
IDCが追加されず、2つのボタンだけのIDCだけが表示されます。
どうやったらエディットボックスのIDCを追加することができますか?



3 :前スレ990:03/02/02 23:35
>>994
無理ってことですか?
どうやってメンバ変数を作成できますか?


4 :よろ♪:03/02/02 23:35
>>1
おつ

5 :デフォルトの名無しさん:03/02/02 23:36
>>2
リソースエディタでエディットボックスを追加したら、
クラスウイザードでもIDC_EDIT1が選択できるように
なりましたが、そちらではなりませんか?



6 :デフォルトの名無しさん:03/02/02 23:38
>>5
なりません。

7 :前スレ990:03/02/02 23:40
>>5
すみません、リソースエディタとはどこのことを指しておりますか?
よくわからなくて申し訳ないです。
ソースに直接書いているのですか?

8 :デフォルトの名無しさん:03/02/02 23:41
>>6
ありえないとは思いますが、
クラスウイザードではC***Dlg というダイアログクラスの
派生クラスを選択してますよね?


9 :デフォルトの名無しさん:03/02/02 23:43
>>7
左側のリソースビュー
--> Dialog
--> IDD_TEST_DIALOG
をダブルクリックすると表示されるエディタです。

これ使ってないんですか?



10 :前スレ990:03/02/02 23:44
>>8
その通りです。
デフォルトで作成されたものです。
クラスは一切追加しておりません。


11 :前スレ990:03/02/02 23:47
>>9
ダブルクリックをしても何も動作しないのですが、
なにか設定がいりますか?


12 :デフォルトの名無しさん:03/02/02 23:48
いいかげんあきらめれ。

13 :デフォルトの名無しさん:03/02/02 23:49
>>11
どうやってボタン追加したんですか?
CButtonクラスでも使って手作業で追加したの?



14 :547:03/02/02 23:50
yakyu.c
d:\tomoki\c言語\新しいフォルダ (3)\yakyu.c(96) : warning C4700: 値が割り当てられていないローカルな変数 'anserA1' に対して参照が行われました。
d:\tomoki\c言語\新しいフォルダ (3)\yakyu.c(102) : warning C4700: 値が割り当てられていないローカルな変数 'anserA2' に対して参照が行われました。
リンク中...
LIBCD.lib(crt0dat.obj) : error LNK2005: _exit はすでに yakyu.obj で定義されています
Debug/yakyu.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました
link.exe の実行エラー

15 :デフォルトの名無しさん:03/02/02 23:51
>>11
プロジェクトは MFC AppWizard (exe) ですよね?


16 :前スレ990:03/02/02 23:52
>>13
コントロールから追加しました。
手順としては、新規作成から、ダイアログベースを選択して作成。
OK、キャンセルボタンを一旦削除して、ボタンを2つコントロールから追加。
その後、エディットボックスを追加です。
エディットボックスのプロパティでは、IDC_EDIT1は表示されますが、
クラスウィザードでは、表示されないのです。


17 :前スレ990:03/02/02 23:52
>>15
その通りです。


18 :デフォルトの名無しさん:03/02/02 23:56
>>7
http://ebiuma.parfait.ne.jp/upuroda/img-box/img20030202235439.jpg
のことだと・・・

19 :デフォルトの名無しさん:03/02/02 23:56
>>16
IDC_BUTTON1 はクラスウイザードで
選択できたの?


20 :前スレ990:03/02/03 00:00
>>19
できました。
>>18
すみません。
OSは2000でVC++6.0ですが、同じですか?


21 :547:03/02/03 00:02
こちらからきました。こたえてね。よろしく。
http://pc2.2ch.net/test/read.cgi/tech/1042640474/547-

22 :デフォルトの名無しさん:03/02/03 00:02
>>16
それとおなじことやリマシタが、表示されました。
つわけで、やりなおせ。

23 :デフォルトの名無しさん:03/02/03 00:02
>>20
一旦削除して再度追加しても変わらない?

24 :前スレ990:03/02/03 00:04
>>22
>>23
一から作成し直しましたら
無事できました。

原因不明ですが、とりあえず解決しましたのでこのまま続けていきます。

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


25 :デフォルトの名無しさん:03/02/03 00:07
>>20
vc++.netなんで・・・
netだと、ダイヤログベースでプロジェクトで立ち上げると
まず、リソースエディタの画面になるので、VC6は知りません。
VC6でも、リソースヴューのとこでdailogフォルダに対して
dialogの挿入すればリソースエディタ画面になるのじゃないんですか?

26 :デフォルトの名無しさん:03/02/03 00:08
>>21
前スレミロ

27 :デフォルトの名無しさん:03/02/03 00:12
なんだよ
解決かよ・・・
なら、質問
XPでVC++.NETでコーディングしてると
たまに、落ちやがる
ビルドとかの最中じゃなくて、単にコードを手打ちしてるときに・・・
回避策教えてくれ・・・

28 :デフォルトの名無しさん:03/02/03 00:14
>>27
OSクリーンインストール+VC++.NET再インストール

29 :デフォルトの名無しさん:03/02/03 00:16
>>28
やだ!!
XP再インスト→MSに電話
VC再インスト→地獄のように時間かかる
できるかそんなこと

30 :デフォルトの名無しさん:03/02/03 00:27

 VC++はもう卒業しようよ。 十分苦しんだだろ?
 .NetがいやならDelphiでいいじゃないか。

31 :デフォルトの名無しさん:03/02/03 00:27
>>29
>MSに電話
確かにそれやだな。
やっぱ2000にした方がいいんでないか?

32 :デフォルトの名無しさん:03/02/03 00:28
>>25
VC++6.0でも同じでっせ。
ダイアログベースプロジェクトなら最初に
リソースエディタがでますよ。



33 :デフォルトの名無しさん:03/02/03 01:38
すいません質問です。複数枚のビットマップファイルを連続して読みこむ方法ってありませんでしょうか?

CBitmap newBitmap;
newBitmap.LoadBitmap(IDB_IMG);

をこんな感じにしたいのです。

for(count=0; count<10; count++)
{
 char filename[256];
 CBitmap newBitmap[10];
 ssprintf(filename,"%s%d.%s","temp",count,"bmp"); // "temp0~10.bmp"にしたい
 newBitmap.LoadBitmap(filename);
}

何かいい方法はないでしょうか?

34 :33:03/02/03 01:56
すいません もう一つビットマップ関連の質問で…
質問内容はビットマップの情報を2次元配列にうまく格納できないことです。

やったのは、320×240のビットマップを読みこみ、GetPixcelで1ピクセルごとにRGBを取得。
それらをint型の配列gazou[320][240]に
for(i=0; i<240; i++){
for(j=0; j<320; j++){
if(r==255 && g==0 && b==0){ gazou[i][j]=1; continue; }
else if(r==0 && g==255 && b==0){ gazou[i][j]=2; continue; }
else if(r==0 && g==0 && b==255){ gazou[i][j]=3; continue; }
}
}

として格納したのですが、これらの配列にちゃんと値が入っているかを確認するために、テストプログラムを組んだのですが
x=y=0;
for(i=0; i<240; i++){
for(j=0; j<320; j++){
if(gazou[i][j]==1){ pDC->SetPixcel(x+j,y+i,RGB(255,0,0)); continue; }
else if(gazou[i][j]==2){ pDC->SetPixcel(x+j,y+i,RGB(0,255,0)); continue; }
else if(gazou[i][j]==3){ pDC->SetPixcel(x+j,y+i,RGB(0,0,255)); continue; }
}
}
としたのに、表示された画像は元の画像と同じように表示されないのです。何故か画像の右半分が表示されず、その部分には左半分のが繰り返し表示されてます…
すいませんが、この問題についても解決策をお願いします…


35 :33:03/02/03 01:58
すいません!!
gazou[320][240]でなくgazou[240][320]でした…

36 :名無し@沢村:03/02/03 02:24
>>33
LoadImage()だ。

37 : :03/02/03 02:39
めっちゃくちゃ初心者な質問なんですが・・・

DirectX SDKを導入して、一応組めるようにはなったんですけど
DirectXの関数若しくは、構造体等を書いた時に表示される
入力補助機能(というのでしょうか?)を出すようにするには
どうすれば良いのでしょうか?

38 :33:03/02/03 04:25
>>36
 サンクスです!

ところで2次元配列でgazou[1000][1000]って書くのってメモリ的にやばい気がするんだけど、みなさんはどう思われますか
また大量の配列を確保するとき、どうすればいいのか教えてもらえませんか?


39 :デフォルトの名無しさん:03/02/03 19:01
学校の授業で配列とか関数とか基本みたいなのはある程度学んだんですよ。
でもっといろんな事勉強したいのですが何をしたらいいのか解かりません。

助けてください。
あとオススメの参考書かなんかあったら教えてください。

40 :デフォルトの名無しさん:03/02/03 19:05
>>39
クラスとかやったの?

41 :デフォルトの名無しさん:03/02/03 19:36
>>39
基本をやってればプログラム組めるだろ!

42 :デフォルトの名無しさん:03/02/03 19:43
>>41
でも、初めてMFCとかやると面食らう
SDKでも面食らう
WINアプリ設計の面倒さを割り切れるようにならないと
何していいかわかんないというのはわかる気がする

43 :39:03/02/03 20:41
クラスはやってません。
これからやるのがよかですか?

>>41
いや、どんなプログラムを組んだらいいのかさっぱりなんです。

44 :デフォルトの名無しさん:03/02/03 20:41
switch文の中で、宣言して代入ってできないんでしょうか?

// エラー
UINT j = DT_TABSTOP | 0x00002F00;
DrawText(hdc, str, -1, &rect, j);

d:\temp\winapitest001\winapitest001.cpp(92) : error C2360: 'j' の初期化が 'case' ラベルによって行われませんでした。
d:\temp\winapitest001\winapitest001.cpp(85) : 'j' の宣言を確認してください。

//これだとOK
UINT j;
j = DT_TABSTOP | 0x00002F00;
DrawText(hdc, str, -1, &rect, j);

どうして前者だとエラーになるのでしょう?
文法的には問題なさそうなんですが。



45 :デフォルトの名無しさん:03/02/03 20:50
>>43
VCはMSが用意したクラスにつぎたして
コードを書いてく、代物なんで、クラスはVCの基本すぎる基本だと

VCにしろ、なんにしろ、まずはHelloWorldを表示するのから
はじめては・・・
VCではウィンドウにHelloWorld表示するのもえらく難儀やけど・・・
なんとかハンドラがどうのこうのと
わけわかりません・・・

46 :デフォルトの名無しさん:03/02/03 20:50
>>42
MFCではそんなに面食らわないだろ。
簡単なアプリなんとなく出来ちゃうじゃん。

47 :デフォルトの名無しさん:03/02/03 20:54
>>46
MFCどこにコードを入れていけばいいのか
初心者にはサパーーーーーリ
です・・・・

48 :デフォルトの名無しさん:03/02/03 21:00
でるふぁいとか言う奴のほうが敷居は低いのかねえ・・・よう知らんけど。

49 :デフォルトの名無しさん:03/02/03 21:00
Cとかでプログラムの経験があると
逆にMFCは面食らうと思う
何も考えないでウイザードで
適当にプログラム作って遊ぶとよいよ

50 :デフォルトの名無しさん:03/02/03 21:26
わしCでは7〜8万行くらいDOSプログラミングしますた。
MFCで面食らってまつ。
なんかおすすめの書籍とかないでつか?スレ違い?

51 :デフォルトの名無しさん:03/02/03 21:29
>>50
推薦図書/必読書のためのスレッド PART 8
http://pc2.2ch.net/test/read.cgi/tech/1041595397/


52 :デフォルトの名無しさん:03/02/03 21:29
>>50
C++の知識は一通りあるんですか?


53 :デフォルトの名無しさん:03/02/03 21:32
>>50
「Windowsプログラミングの基礎知識」 柏原正三 アスキー

本当に基礎の基礎なんだけど、MSDNで自習できる
程度にはなります。



54 :デフォルトの名無しさん:03/02/03 21:34
習うより慣れよということで
いろんなところでHello World
http://www-kobayashi.ctrl.titech.ac.jp/~mtanaka/vc/

55 :50:03/02/03 21:48
ネタと思われるかとオモタが、みなさんありがとう。
ちなみにC++の知識は、ほとんど無いに等しいです。
>>53
明日買います。
>>54
今から見てきます。

56 :50:03/02/03 21:49
>>51
こっちも見てきます。

57 :デフォルトの名無しさん:03/02/03 21:52
>>55
ネタとわかっていてマジレスしてやったんだよ。

58 :デフォルトの名無しさん:03/02/03 22:01
(1) C++の学習に。

A. 独習C++ 第3版
Herbert Schildt 著
神林靖 監修
翔泳社
http://www.shoeisha.com/book/Detail.asp?bid=1460

B. 標準C++の基礎知識
柏原正三 著
アスキー
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3121-2.html

C. 標準C++の基礎知識 実践編
柏原正三 著
アスキー
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3563-3.html

(2) Windows API (非MFC)の学習に。

D. Windowsプログラミング標準講座(Windows95/98/NT/2000対応)
Herbert Schildt 著
山本信雄 監修
山本信雄 訳
翔泳社
http://www.shoeisha.com/book/Detail.asp?bid=41


59 :デフォルトの名無しさん:03/02/03 22:01

E. プログラミングWindows 第5版(上)(下)
Charls Petzold 著
株式会社ロングテール 長尾高弘 訳
アスキー
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3600-1.html
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3601-X.html

(3) MFCプログラミングの学習に。

F. Windowsプログラミングの基礎知識
柏原正三 著
アスキー
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3252-9.html



60 :デフォルトの名無しさん:03/02/03 22:06
>>58-59
この辺が自分が学習に使った本で、この板でも
わりと評価の高い本です。

あ、

「憂鬱なプログラマのためのオブジェクト指向開発講座」
著者: Tucker!
出版社: 翔泳社
ISBN: 4-88135-619-4

C++をやるなら、これも1冊読んでおいたほうがいいと思います。

61 :デフォルトの名無しさん:03/02/03 22:14

順番としては
A -> 「憂鬱」 -> B -> C -> D -> F -> E
が良いんじゃないかと個人的には思います。

これでも例外処理とかSTLプログラミングが弱いので、
漏れ自身はその辺をカバーしている本を読まなくちゃと
思っているのですが。(Exceptional C++を注文中)



62 :50:03/02/03 22:30
マジかい!ってくらいお金かかりそうでつね。
わしは、TURBO-Cデビューなんだが、昔は付属の立派なマニュアル
ユーザーズガイド671ページ
リファレンスガイド823ページ
と入門書3冊程度で、入門段階はクリア出来たような記憶があるよ。
脳みそ柔らかくするのがたいへんそうでつ。冬の夜。30歳。

63 :デフォルトの名無しさん:03/02/03 22:56
おまえら書籍スレに誘導されてるだろうに・・・

64 :デフォルトの名無しさん:03/02/03 22:59
>>62
Cの時代から考えると、Windows自体のファンクションコールの数も
然ることながら、オブジェクト指向、Genericプログラミングなどの
新しい概念が次々と出てきましたからねぇ。C++のライブラリやMFC
などは、これらの概念を元に作成されているんで、なかなか敷居が
高いですね。


65 :デフォルトの名無しさん:03/02/03 23:26

なんでMSDNはちょっと突っ込んだ記事を調べようとすると
英語ドキュメントしかないんだろう・・・。(-_-)



66 :デフォルトの名無しさん:03/02/03 23:32
MSDNは使ってる内にサブタイがおかしくなるのはなぜだろう・・・。

67 :デフォルトの名無しさん:03/02/03 23:42
俺はせめてリンク切れを無くして欲しい

68 :デフォルトの名無しさん:03/02/04 00:25
リンク切れもイヤだけど、エンコードがおかしくなるページがあるんだけど、
どうやって直したらいいんでしょ?



69 :デフォルトの名無しさん:03/02/04 00:34
エンコードはメニューにあるっしょ。つーかこれVCじゃなくてIEの使い方だな。

70 :デフォルトの名無しさん:03/02/04 02:31
ダイアログでタブボタン押した時,移動する順番は変えられますか?

71 :デフォルトの名無しさん:03/02/04 02:46
タブオーダーで変えられる。

72 :デフォルトの名無しさん:03/02/04 02:52
ありがとうござい増した

73 :super(novice):03/02/04 15:11
ダイアログボックスの背景色を変更するにはどうすればいいのですか?

74 :デフォルトの名無しさん:03/02/04 15:57
>>73
それくら検索しような。
ttp://www.google.com/search?q=%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9+%E8%83%8C%E6%99%AF%E8%89%B2+%E5%A4%89%E6%9B%B4

75 :デフォルトの名無しさん:03/02/04 17:42
>>69
エンコードの切り替えがMSDNのメニューにないんですが。


76 :デフォルトの名無しさん:03/02/04 20:43
>>75
すいません許してください

77 :デフォルトの名無しさん:03/02/05 00:05
すみません。
前スレで質問させてもらったのですが、
流されてしまったのでもう一度書かせてください。

最近VisualStudio.Netを買って
VisualC++の勉強をはじめました。
シリアルポートを使った通信プログラムを作るのが目的です。
GUIの作り方とかファイルの入出力とかは参考書などによく載っているので、
それを読みながらなんとか進めているのですが、
シリアル通信については言及している本も見つからないし
ヘルプを見ても良く分からないしで困っております。
シリアル通信はどのように実現すればよいのでしょうか。
関数というかコマンドのようなものが用意されているのでしょうか。


78 :デフォルトの名無しさん:03/02/05 00:22
>>77
MSDNの、

Platform SDK
-> Windows Base Service
-> Files and I/O
-> Communication

はどうですか?

hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);

サンプルにこんなのが載ってる。

日本語ドキュメント欲しいですねぇ。誰かPlatform SDKの全訳
プロジェクトやらんですか?



79 :デフォルトの名無しさん:03/02/05 00:23
>>77
CreateFile()とかで"COM1"を開けば?
あとは SetCommState() WriteFile() ReadFile() あたりか。

80 :デフォルトの名無しさん:03/02/05 00:24
被った(´Д`;

81 :デフォルトの名無しさん:03/02/05 00:26
>>75
ページを右クリックして 「プロパティ」 出して、表示されたアドレスを
コピペで IE に貼り付けろ。
後は煮るなり焼くなり。

82 :デフォルトの名無しさん:03/02/05 00:29
>>81
なるほど。今度遭遇したら、それでやってみまふ。



83 :デフォルトの名無しさん:03/02/05 00:34
>>77
http://www.codeproject.com/system/#Hardware%20programming

84 :デフォルトの名無しさん:03/02/05 08:04
>>77
> シリアル通信については言及している本も見つからないし

ピアソンの「Win32システムサービスプログラミング」

85 :デフォルトの名無しさん:03/02/05 08:38
シリアル通信を介して Hello World
http://www-kobayashi.ctrl.titech.ac.jp/~mtanaka/vc/A/3-i.html

86 :77:03/02/05 10:13
みなさんありがとうございます。
本屋に行ったりネットで調べたりしても全然分からなかったのに
(ただ単に調べ方が悪いのですが)
あっという間にこんなに回答をいただけて
ちょっと驚いているというか感動しています。

>>78
>>79
ありがとうございます。
ヘルプの検索において「hcom」で検索したらそのサンプルを見られたのですが、
目次からだと「Platform SDK」がどこにあるのか分かりませんでした。
「MSDNライブラリ」の下にあるんですよね?
今後の参考のために教えてください。

>>83
早速メンバー登録してみました。
いくつかファイルも落としました。
参考にさせていただきます。
ありがとうございます。

87 :77:03/02/05 10:14
>>84
なるほど。
私は「シリアル通信」という言葉がタイトルに入った本を探してしまっていました。
考えてみればハードウェア的なことを抜きにしたら
シリアル通信だけで一冊の本にはならないですよね。
馬鹿でした。勉強させてもらいます。

>>85
ああ、唯一の日本語だ。
やはり、CreateFileやReadFileなんかを使って行うわけですね。
道筋が見えてきた気がします。

ちょっと何か調べようとすると
すぐ英語にぶち当たってしまうんですよね。
私は英語が苦手なんでそのたびにくじけそうになってしまいます。
でもそんなことも言っていられないですね。

88 :デフォルトの名無しさん:03/02/05 20:33
質問です。コンパイルするとエラーが出ないのにプログラム実行すると
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/gagaga.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
というエラーが出てしまいます。誰かアドバイスを。。。

89 :デフォルトの名無しさん:03/02/05 20:34
すいません。sage進行みたいですね。ageてしまいました。

90 :デフォルトの名無しさん:03/02/05 20:45
>>88
mainがない。

91 :デフォルトの名無しさん:03/02/05 20:54
Windowsでも動くの?

92 :デフォルトの名無しさん:03/02/05 20:59
(゚Д゚) ハァ?

93 :デフォルトの名無しさん:03/02/05 21:48
>>91
そりゃ動くだろ!VC++だからな。

94 :デフォルトの名無しさん:03/02/05 22:05
質問します。mfcのダイアログベースで、
2つのエディットボックスに数字を入力してボタンを押すと、
それらを計算(加減乗除)して出力するプログラムを作成していますが、
ボタンを押しても2つの数字が読み込めません。
今のところ以下のように書いています。
void CGUItestDlg::OnButton1()
{
double answer;
 answer=keisan.calc(m_num1,m_num2,0);
}
m_num1、m_num2はClassWizardのメンバ変数の追加で、
カテゴリは「値」、変数のタイプは「double」としました。
どのようにすればよいのか教えてください。


95 :デフォルトの名無しさん:03/02/05 22:14
>>94
UpdateData(TRUE)


96 :デフォルトの名無しさん:03/02/05 22:18
>>93
動くんですね! これで安心して買えます!
ありがとうございました!!

97 :デフォルトの名無しさん:03/02/05 22:24
Win3.1だったりして……

98 :デフォルトの名無しさん:03/02/05 22:26
>>94みたいな質問定期的に出てくるな。
どっかの宿題なのだろうか。


99 :94:03/02/05 22:29
>>95
できました。ありがとう。

100 :デフォルトの名無しさん:03/02/05 22:47
ダイアログボックスベースでプログラムを組んでいます。
Staticコントロールを二つ付けていますが、どちらか一方だけの
色を白にしたいんですが、上手くいきません。
以下に示したものでは二つとも白になってしまいます。
何方かご教授お願いいたします。

HBRUSH CTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// スタティック用のブラシを作成
CBrush myStatic;
myStatic.CreateSolidBrush(0xFFFFFF);
//文字の背景色を設定
pDC->SetBkColor(0xFFFFFF);

if(nCtlColor==CTLCOLOR_STATIC){ // スタティックコントロールの場合
return myStatic; // myStaticはあらかじめ作成されたCBrushオブジェクト
}

return hbr;
}

101 :デフォルトの名無しさん:03/02/05 22:48
すいません、教えてくださいな。

ダイアログ上のEdit領域で文字入力中にTABキーを押すと、フォーカスが次のボタン等に移ってしまうのですが、フォーカスを移動させずにTABをEdit領域に入力することって出来るのでしょうか?

102 :デフォルトの名無しさん:03/02/05 22:57
>>100
スタティックコントロールに別々のIDをつけて、
OnCtlColor内でIDを区別する

103 :100:03/02/05 23:12
>>102
有難うございます。。。

あかん。。。俺が自分で色々考えながらVC++でプログラムを組むのは
ちょっと早すぎたのか・・・・・全然解らん・・・。
基礎からやり直そうっと・・・・(泣く

104 :デフォルトの名無しさん:03/02/05 23:40
>>103
急がば回れだ

105 :デフォルトの名無しさん:03/02/06 00:09
アスキーファイルを読みたいので、次のようにしたのですが読めません・・
Serialize(CArchive& ar)ですどこか間違ってますかね・・?
CFile* fp = ar.GetFile();
int i;
double *tmp;
tmp = CCC;
for ( i=0; i<IMAGEDATA_SIZE; i++, tmp++)
{
ar.ReadString( tmp, sizeof( double ) );
     }

CCCはdouble型でデータを格納する場所です
IMAGEDATA_SIZEは256*256です

データの中身は9.352675144624524e+001、こんな感じのが256*256あります
doubleでは無理ですよね・・



106 :デフォルトの名無しさん:03/02/06 00:12
マルチする前にMSDNでReadStringの宣言確認すれ。

107 :105:03/02/06 00:22
初心者なので答え、教えてください
doubleつかえないのはわかってます

108 :105:03/02/06 02:36
解決しました。ありがとうございました。

109 :デフォルトの名無しさん:03/02/06 03:41
何もしていないが・・・

110 :110:03/02/06 03:50
解決しました。ありがとうございました。

111 :デフォルトの名無しさん:03/02/06 05:54
>>101
WM_GETDLGCODE DLGC_WANTTAB

112 :デフォルトの名無しさん:03/02/06 06:17

>>101
色々考えてみたんですが、エディットコントロールのウインドウプロシージャ
をフックするしかないみたいです。

(1) 新しいウインドウプロシージャを定義するので、ダイアログクラス
のC++ファイルのはじめに

#include <windows.h>

LRESULT CALLBACK NewEditProc (HWND, UINT, WPARAM, LPARAM);

とやります。MFCウイザードのデフォルトだと、後述する
CallWindowProc()が使えないみたいなので、windows.hも
インクルードします。

(2) エディットコントロールのコントロール自体を操作する
必要があるので、クラスウイザードでコントロールのオブジェ
クトも作成しておきます。

(3) CTestDialog::OnInitialDialog()の直前で、グローバル領域に

WNDPROC OldEdit;

という形でウインドウプロシージャへのポインタを宣言します。


113 :デフォルトの名無しさん:03/02/06 06:18

(4) OnInitialDialog()内部で、

OldEdit1 = (WNDPROC) SetWindowLong(m_edit1ctl.GetSafeHwnd(), GWL_WNDPROC, (LONG) NewEditProc);

とやって、エディットボックスに関連付けられていた
エディットコントロールのウインドウプロシージャを新しい
ウインドウプロシージャに変更します。古いプロシージャへの
ポインタも使用するので保存しておきます。

(5) 以上でエディットボックスのウインドウプロシージャを呼び出す際に、
ユーザーが定義したウインドウプロシージャを呼び出す準備ができました。


114 :デフォルトの名無しさん:03/02/06 06:18

(6) 新しいウインドウプロシージャを次のように定義します。
C++ファイルの一番下にでも定義してください。

LRESULT CALLBACK NewEditProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_KEYDOWN:
if (wParam == VK_TAB) {
SendMessage(hwnd, EM_REPLACESEL, TRUE, (long) "\t");
return 0;
}
}
return CallWindowProc (OldEdit1, hwnd, message, wParam, lParam);
}



115 :デフォルトの名無しさん:03/02/06 06:19

OSから受け取ったメッセージが、キーボード入力で、かつ、それが
TABキーだった場合には、現在のカレットの位置に '\t' を挿入します。
SendMessageは、メッセージの送り先が処理を終了するまで、戻らない
点に留意してください。
このメッセージの処理はこれでOKなので、そのまま return 0 で、
呼び出し側に処理を戻します。

その他のメッセージは特に変更する必要がないので、
CallWindowProc(OldEdit1, hwnd, message, wParam, lParam);
で、メッセージを古いウインドウプロシージャに引き渡して
処理してもらいます。

エラー処理など、いろいろ改善点はあると思いますが、大まかなところは
こんな感じで大丈夫みたいです。


>>111
OnGetDlgCode()で設定の変更もできるんですか?
もっと簡単な方法あります?



116 :デフォルトの名無しさん:03/02/06 06:38
>>115
試しに作ったのを再度実行したら、なんかエディットボックスに
ゴミみたいなのが出るなぁ。なんでだろう。
あと、あんまり大きなデータは扱えないみたい。
デフォルトかどうかわからんけど・・。


117 :デフォルトの名無しさん:03/02/06 07:45
>>116
解決。

ゴミはりソースエディタで、間違ってアニメートコントロールを
貼りつけていたせいでした。
データサイズは縦スクロールバーを設定すると、大丈夫みたいですね。

118 :111:03/02/06 15:55
>>115
>OnGetDlgCode()で設定の変更もできるんですか?
WANTTABにしておかないとTABのWM_KEYDOWN等が飛んでこないんじゃないかなと思ったけど
飛んでくるのですね。
そのサンプルはダイアログに貼りつけてテストしましたか?

>もっと簡単な方法あります?
サブクラス化を前提にかきました。

119 :111:03/02/06 16:33
なんか気になるので実験してみた。
MFCAppウィザードのダイアログアプリにEditBoxを一つ配置。
やはり WM_KEYDOWN の VK_TAB は飛んでこない。

OnGetDlgCode()で
return DLGC_HASSETSEL | DLGC_WANTARROWS | DLGC_WANTCHARS | DLGC_WANTTABTTAB
としてみると飛んできた。
しかし'\t'がちゃんと表示されない。
エディットボックスの設定を改行可にすると自動的にTABとして表示してくれた。(メモ帳といっしょやね)

結論:GETDLGCODEでWANT_TABし、改行可にするとok


120 :デフォルトの名無しさん:03/02/06 17:38
>>118
>そのサンプルはダイアログに貼りつけてテストしましたか?

はい。サンプルを作ってみました。
EM_REPLACECELが挿入に使えるかどうかとか、
試してみないと分からない部分もありましたので。

OnGetDlgCode() は使っていないのですが、
正常に動作しているみたいです。




121 :デフォルトの名無しさん:03/02/06 18:28
>>120
了解。119の結論は話半分ってこことでよろ。

122 :デフォルトの名無しさん:03/02/06 23:23
昨晩、101でEdit領域へのTAB入力の質問をしたものです。
お蔭様で問題は解決しました。サンクス!

結局、CEditをサブクラスしたCEdit2を作り、
ダイアログのヘッダーの以下のCEditの部分を
CEdit2に置き換えました。

//{{AFX_DATA(CRwDlg)
enum { IDD = IDD_xx_DIALOG };
CEditm_edit;
//}}AFX_DATA

あとは119さんが教えてくれた通りに、CEdit2のOnGetDlgCode()で
return DLGC_HASSETSEL | DLGC_WANTARROWS | DLGC_WANTCHARS | DLGC_WANTTABTTAB
としました。

有難うございました!

123 :デフォルトの名無しさん:03/02/06 23:53
過去ログ検索してみましたが、それっぽい質問がないようなので質問させてください。

Cでプログラミングを勉強し、最近VC++に入ったものです。
そもそもクラスやメソッド、オブジェクト指向プログラミングってどういう意味なのですか?
語句に対して調べては見ましたが専門用語の羅列でわけが判りません・・・

どなたか親切な方、判りやすく例え話等を使ってお教えいただけないでしょうか?
よろしくお願いします。

124 :デフォルトの名無しさん:03/02/07 00:00
>>123
オブジェクト指向ってのはオブジェクトを中心に考えるってこと。
メソッドってのは、そのオブジェクトに対して操作する関数とか。

吉野家で考えれば、メインオブジェクトは牛丼だ。
で、それに対する属性としてつゆだくだとか、ねぎだくだとかがある。
メソッドとしてはUの字テーブルをはさんだやつといつ喧嘩がはじまってもおかしくないとか
よーしパパ特盛り頼んじゃうぞーとか、店員のマークとかがある。

125 :デフォルトの名無しさん:03/02/07 00:17
>>124
それは何か違うと思う。

126 :デフォルトの名無しさん:03/02/07 00:21
>>123
「憂鬱なプログラマのためのオブジェクト指向開発講座」
http://www.shoeisha.com/book/Detail.asp?bid=740

これを読めば解決。

あと独習C++とかで、一通りきちんと勉強した方が
早いと思うよ。



127 :デフォルトの名無しさん:03/02/07 00:23
吉野家ならメインオブジェクトは店舗だろ

128 :デフォルトの名無しさん:03/02/07 13:41
>>123
デザパタもやるならGoF本買っとけ。

129 :デフォルトの名無しさん:03/02/07 14:07
すっ、すみませぬ、超基本だと思うのですが変数xの整数部分だけを取り出そうと
y=(int)x;
としたらyに0か異常値が入ってしまうのですがどうすれば宜しいのでしょうか?
教えてくださいませ(つД`)

130 :129:03/02/07 14:07
sage忘れゴメンなさい∧||∧

131 :C++厨:03/02/07 14:22
double modf( double x, double *intptr );

が整数と小数をわけてくれるよ。

132 :129:03/02/07 15:12
>>131
ありがとうございます。
早速試してみます。

133 :123:03/02/07 15:29
>>124さま
親切にありがとうございます。
>>126,128さま。
この問題にぴったりそうな本を教えていただきありがとうございました。
早速勉強しなおしたいと思います。

134 :デフォルトの名無しさん:03/02/07 21:12
WinMXとかWinnyにある、共有ソフトのダウンロードリストは
どんなコントロールをつかっているのですか?
エクセルみたいなコントロールみたいですが

135 :デフォルトの名無しさん:03/02/07 21:15
普通はListViewコントロールがはじめに思いつくと思うけど・・・

136 :デフォルトの名無しさん:03/02/07 21:19
なるほどー

137 :デフォルトの名無しさん:03/02/07 21:33
>>134
そういう時はspy++を使って調べてみよう。

138 :デフォルトの名無しさん:03/02/07 21:39
なる!メッセージからコントロールをわりだすのですか〜


139 :デフォルトの名無しさん:03/02/08 00:36
VC++6.0でINETコントロールを使っているのですが、
どうしても、FTPが上手くいきません。
executeメソッド等の使い方が悪いんですかね・・・。

どなたか、正常動作するサンプルソースとか
記述して頂けませんか?(´д⊂)

140 :デフォルトの名無しさん:03/02/08 00:46
>>139
どううまくいかないのか書け。
「うまくいきません」だけで判るはずないだろボケ

141 :139:03/02/08 01:17
スマソ(;´Д`)

Executeメソッドを実行しても、
ファイルが転送されないまま、終了してしまうんです・・・(´д⊂)
(一応、転送先のURLにアクセスはしてます)

おそらく、パラメータ指定が間違っているんだと思うのですが、
Executeメソッドに必要な4つの引数には、
それぞれ、何を与えればいいんですか?

142 :デフォルトの名無しさん:03/02/08 02:53
>>141
お前は何を与えてるんですか?

143 :139:03/02/08 04:25
MSDNにVBでのリファレンスがあったんで、
それを参考にして与えてます。

第1引数:"ftp://hoge:hoge@hoge.com/"
第2引数:"PUT C:\\hoge.txt hoge.txt"
第3引数&第4引数:""

というような感じなんですが、
やっぱり、VC++だと与え方は違うんでしょうか?

144 :デフォルトの名無しさん:03/02/08 07:23
VCでInetコントロール?
CFtpXXXXってクラス使わないの?

145 :デフォルトの名無しさん:03/02/08 11:29
>>139
http://www.microsoft.com/japan/developer/library/vccore/_core_prerequisites_for_internet_client_classes.htm

146 :デフォルトの名無しさん:03/02/09 01:44
Wininetなら漏れはここみて便給したけど。
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/


147 :デフォルトの名無しさん:03/02/10 03:56
今日からC始めた初心者ですが
普通にメイクしたexeファイル実行終了したら
自動的にウインド閉じちゃうんですけど、
どこで手動に切り替えられますか?

148 :デフォルトの名無しさん:03/02/10 08:27
>>147
ショートカットのプロパティじゃなかったっけ?

149 :デフォルトの名無しさん:03/02/10 14:08
VC7のダイアログエディタでダイアログボックスにリストビューを貼り、

そのリストビューの表示スタイルを"レポート"表示に設定したいのですが、

リストビューのプロパティを開いても

ttp://kerochan.no-ip.com/vcsdk/letsprog/graph4/chap31listprop.gif

のようなメニューが出てきません。

VC7のダイアログエディタでリストビューのスタイルを設定するにはどうすればいいですか?


150 :149:03/02/10 14:23
すまぬ。一番下にViewって項目があったわ。。。

151 :デフォルトの名無しさん:03/02/10 14:28
>>149
プロパティウィンドウの"View"

152 :147:03/02/10 17:54
それらしき項目見当たらなかった…

153 :デフォルトの名無しさん:03/02/10 18:17
>>152
IDE環境から実行してるんなら最後にgetch()でもしとけ。

154 :デフォルトの名無しさん:03/02/11 06:48
コンソールアプリなら
コマンドプロンプトから実行すればいいんじゃね

155 :147:03/02/11 08:21
サンキューです。

156 :デフォルトの名無しさん:03/02/11 13:16
今までコンソールアプリを学習してきてマスターしてきたので、
WindowsのGUIアプリの作り方を学習したいのですが、
ttp://www.amazon.co.jp/exec/obidos/ASIN/4881358219/ref=pd_rhf_p_1/249-8667808-1583552
この本は、Visual C++.netでも使えますか?

157 :ひよこ名無しさん:03/02/11 13:25
グローバル変数!グローバル変数!グローバル変数!
グローバル変数!グローバル変数!グローバル変数!グローバル変数!
グローバル変数!グローバル変数!グローバル変数!
グローバル変数!グローバル変数!グローバル変数!
グローバル!グローバル!グローバル!グローバル!ああああああああああああああああああああああああああああああああああああああああ

158 :ひよこ名無しさん:03/02/11 13:36
参考書の例題で
OnLButtonDown()関数で得たマウスの座標をOnPaintに受け渡すために
int xpos = -100;
int ypos = -100;
とグローバル変数を宣言してるのですが
なぜ、int xpos; じゃだめなのでしょうか?

159 :ひよこ名無しさん:03/02/11 14:05
お願いします。

160 :デフォルトの名無しさん:03/02/11 14:09
>>158
正直、何やりたいのか判らん。
グローバル変数を何に使ってんだ?

161 :デフォルトの名無しさん:03/02/11 14:10
なんでxposの初期化が必要なのか聞いてるんだろうが、それだけ見せられても
答えようがない。

162 :デフォルトの名無しさん:03/02/11 14:12
ダメなことはないだろう。
何かエラー起こってんのか?

悪い質問のお手本だな

163 :C++厨:03/02/11 14:21
グローバル変数は 糞!

164 :158:03/02/11 14:22
int xpos = -100;
int ypos = -100;

void CS17Wnd::OnPaint()
{
CPaintDC dc(this);

dc.Ellipse(xpos - 20, ypos - 20, xpos - 20, ypos - 20)
}
void CS17Wnd::OnLButtonDown(UINT nFlags, CPoint point)
{
xpos = point.x;
ypos = point.y;

invalidate();

}
このint xpos = -100;の-100はどういうことなんでしょうか?
なぜ-100なのかが分かりません。
宜しくお願いします。



165 :デフォルトの名無しさん:03/02/11 14:23
今からVCやろうと思っているんだけど、やるなら6.0じゃなくてやっぱ.NETかな?

166 :デフォルトの名無しさん:03/02/11 14:25
>>164
適当。

>>165
何をやりたいかもわからないのに答えようがないと思う。


167 :デフォルトの名無しさん:03/02/11 14:34
>>164
はっきり言おう。
お前の脳みそが理解できん。
自分でコーディングしておいて「分かりません」?

病院いって来い・。

168 :デフォルトの名無しさん:03/02/11 14:34
>>164
OnLButtonDownが呼ばれる前にOnPaintが呼ばれたらどうなるか小一時間考えるといい。

169 :デフォルトの名無しさん:03/02/11 14:35
>>167
参考書の例題と書いてるだろう。
このスレは質問の仕方も悪けりゃ答える奴も無能かよ

170 :デフォルトの名無しさん:03/02/11 14:36
全然初心者向けの回答じゃないな

171 :デフォルトの名無しさん:03/02/11 14:37
-100の意味を聞いてるんだからテキトー。これ。

はい次↓

172 :158:03/02/11 14:41
>>168
int xpos;で試したら-100の意味が分かりました。
ありがとう。

173 :158:03/02/11 14:42
>>171
適当なわけじゃなかったよ

174 :デフォルトの名無しさん:03/02/11 14:42
我思う。試してから質問しろと。

175 :158:03/02/11 14:43
>>174
そうでした。すいません

176 :デフォルトの名無しさん:03/02/11 14:48
この板自体来るの初めてなのだろうか。
元質問以外はなるべくsageてね。

177 :158:03/02/11 15:08
失礼しました。今後質問時は気をつけます

178 :デフォルトの名無しさん:03/02/11 23:05
実行しているファイルと同じディレクトリにある設定ファイルを読みたいので
すが、ファイル名だけでオープンしようとすると上手くいきません。
そこで、実行ファイルのあるディレクトリを取得したいのですが可能でしょうか?

179 :デフォルトの名無しさん:03/02/11 23:07
検索したらすぐ出てきたよ

180 :デフォルトの名無しさん:03/02/11 23:08
>>178
質問する前に検索しろよ
http://www.google.com/search?q=Windows+%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA+%E5%8F%96%E5%BE%97

181 :デフォルトの名無しさん:03/02/11 23:09
>>180
ありがとうございます。
10分くらいは検索してみたのですが・・・。多謝です。

182 :デフォルトの名無しさん:03/02/11 23:11
いったいどんなキーワードで検索したやら(藁

183 :デフォルトの名無しさん:03/02/11 23:22

Windowsディレクトリって c:\windows でしょ?
>>178の答えになってるの?



184 :デフォルトの名無しさん:03/02/11 23:27
でも、結局よく情報抜き出せませんでした(涙)
GetCurrentDirectoryで出てくるのは、何か実行ファイルがおいてあるのとは
別のディレクトリが取れているようでして・・・。
どの命令を使えばいいのでしょうか?(ダメ

185 :デフォルトの名無しさん:03/02/11 23:31
すみません、デバックで動かしていたのが原因だっただけみたいです。
逝ってきます。

186 :デフォルトの名無しさん:03/02/11 23:48
>>185
GetCommandLine
現在のプロセスのコマンドライン文字列へのポインタを取得します。

LPTSTR GetCommandLine(VOID)

これでフルパスが取れるみたいです。
試してみたら、

"D:\TEMP\TEST\Debug\TEST.exe"

こんな感じになりました。





187 :デフォルトの名無しさん:03/02/11 23:56
VC++6.0でプログラムを作成しています。
ダイアログベースのアプリで、最小化のタイミングでタスクトレイに
表示したくOnSyscommand関数で最小化のイベントを取り、メインダイアログを隠したい
のですが、OnSyscommand関数がデフォルトで出来ていません。
ユーザーが作成するものなのでしょうか?
生成方法を教えて下さい。
宜しくお願いします。

188 :デフォルトの名無しさん:03/02/12 00:07
>>183
Windows ディレクトリ 取得
Windows入れないと別のOSも含まれるんじゃないの?
カレントディレクトリにしたほうがいいんだろうけど

189 :デフォルトの名無しさん:03/02/12 00:11
>>187
オーバーライドの方法はヘルプ読め

190 :178:03/02/12 00:14
>>186
おお、そんな命令が。ありがとうございました。

191 :デフォルトの名無しさん:03/02/12 00:15
>>187
ダイアログの右上の最小化ボタンの動作をフックして
独自の動きをさせたいってことなの?
メインダイアログを隠すってことの意味がよくわからないんだけど・・。
隠す=最小化/アイコン化?



192 :187:03/02/12 00:18
>>189
すみません、オーバーライドをすればよいということでしょうか?

193 :デフォルトの名無しさん:03/02/12 00:23
>>192
VCならクラスウイザード使えばいいだろ。

194 :デフォルトの名無しさん:03/02/12 00:25
つーか回答者もネタ?
GetModuleFileNameだろ。<アプリと同じフォルダ

195 :187:03/02/12 00:25
>>191
そうです。
最小化して、タスクトレイにアイコン化することが目的です。
showwindow(SW_HIDE)
でダイアログを隠そうとしております。


196 :187:03/02/12 00:26
>>193
OnSysCommandが見つからないのです。
OnCommandならあるのですが…。


197 :デフォルトの名無しさん:03/02/12 00:29
>>195
MFC App Wizard (exe) プロジェクト
で作成すると、ダイアログクラスに
CTestDlg::OnSysCommand()
というオーバーライドされた、メンバ関数が自動的に
作成されるみたいだけど、これを改造するのじゃ
いかんの?

この関数では、基底クラスのCDialog::OnSysCommand()に
メッセージをそのまま渡しているみたいですが。



198 :187:03/02/12 00:30
>>197
それが自動的に作成されなかったようです。
追加で作成することは不可能なのでしょうか?


199 :デフォルトの名無しさん:03/02/12 00:31
ちなみに検索の仕方はこんな感じで
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=%83A%83v%83%8A%83P%81%5B%83V%83%87%83%93%81@%83t%83H%83%8B%83_%81@%8E%E6%93%BE%81@C%2B%2B&lr=

200 :デフォルトの名無しさん:03/02/12 00:33
>>198
ClassWizardでWM_SYSCOMMANDのハンドラ作れ

201 :デフォルトの名無しさん:03/02/12 00:34
>>198
左上のメニューのバージョン情報は
どうなってますか?
IDD_ABOUTBOXダイアログを
オーバーライドされたOnSysCommand()で
起動しているようですが。



202 :187:03/02/12 00:42
>>201
すみません、メニューのバージョン情報とはどこのことでしょうか?
VS_VERSION_INFOならあります。

>>200
クラスウィザードからハンドラの追加の方法がわかりませんでした。
イベントから追加しようとして、
SYSCOMMANDが左の蘭になく、誤ってWM_CANCELMODEを追加してしまって
消せなくなってしまいました(鬱


203 :デフォルトの名無しさん:03/02/12 00:44
>>194
これも良いみたいですね。
char str[1024];
GetModuleFileName(NULL, str, 1024);
cout << str << endl;

で結果が

D:\TEMP\TEST2\DEBUG\TEST2.EXE

こうなりました。こっちの方が汎用性が高いかな。



204 :デフォルトの名無しさん:03/02/12 00:45
つーかClassWizardの使い方をWEBなりMSDNなりで調べてこい。
それですべて解決だ。

205 :デフォルトの名無しさん:03/02/12 00:46
>>202
ダイアログ左上のアイコンを左クリックすると、
メニューが出ませんか? その中でバージョン
情報の表示を選択できますが。




206 :デフォルトの名無しさん:03/02/12 00:48
>>203
つーかそのやり方が定番だから。

207 :デフォルトの名無しさん:03/02/12 00:49
>>202
class view のクラス名の上で右クリック
→メッセージハンドラの追加
でできますよ。

208 :187:03/02/12 00:50
>>205 >>204
イベントからOnSysCommandを追加することができました。
フィルタのところでwindowを選択することで出てきました。
どうもありがとうございました。


209 :デフォルトの名無しさん:03/02/12 00:52
>>207
これで、フィルタを「ウィンドウ」にすると、
WM_SYSCOMMAND のハンドリングが
できる雰囲気。



210 :名無しさん:03/02/12 02:02
COMポートからデータを読み出すプログラムが組みたいのですが、どうもうまくいきません。
具体的にいうと「フフフフフフフフフフフフフフフ・・・」てな感じです。どうしたらいいのでしょう?
明日の朝までに組まなきゃいけなくて、四苦八苦してます。

211 :名無しさん:03/02/12 02:03
ちなみに、API使ってます。

212 :デフォルトの名無しさん:03/02/12 02:09
初期化されてないとフフフフになるよ

213 :名無しさん:03/02/12 02:14
初期化ですか?いまいちやりかたが・・・(汗

214 :デフォルトの名無しさん:03/02/12 02:18
> フフフフフフフフフフフフフフフ・・・

ストーカーからの電波を受信しています。

つーか、NT とかだと、確保してから 1 度も使われてないメモリ領域は 0xCC で
塗りつぶされている。
それを読んでしまっているのだから、データをきちんと COM ポートからメモリに
読み込めていないんじゃないか?

215 :デフォルトの名無しさん:03/02/12 02:22
塗りつぶされるのはNTとかじゃなくてデバッグ時だった気が。

216 :デフォルトの名無しさん:03/02/12 02:26
俺もデバッグ用にVCが埋め込んでるんだと思ってた

217 :デフォルトの名無しさん:03/02/12 02:26
>>210
できもしない仕事を請け負ったんだから自業自得ですな

218 :名無しさん:03/02/12 03:18
成り行き上そうなってしまって・・・(泣
一応フの羅列は回避できました。
でも、途中で読みに行かなくなっちゃって・・・

219 :デフォルトの名無しさん:03/02/12 04:36
>>218
( ´_ゝ`) フーン

220 :デフォルトの名無しさん:03/02/12 05:11
質問なんですが・・

CPoint t1,t2,t3;
t1=(10,10); t2=(9,10); t3=(10,9);

とあったとき、この変数3つが、近い場所にあると判断させるにはどういうプログラミングをすればいいのでしょうか…
どうかご教授お願いします。

221 :デフォルトの名無しさん:03/02/12 05:24
>>220
単純に距離を求めたらいかんの?

222 :デフォルトの名無しさん:03/02/12 05:43
>>215-216
ごめん、そうみたい。
NT のメモリ領域の初期化は 4 バイトくらいの周期だった。

223 :デフォルトの名無しさん:03/02/12 05:44
言語や開発環境のスレで、ロジックまで教えるべきなのかどうかいつも
迷うのだけれども

224 :デフォルトの名無しさん:03/02/12 05:52
>>220
「近い」の定義がよく分からんぞ。
とりあえず適当に決めた一定値以内の距離だったら近いとすれば?

225 :デフォルトの名無しさん:03/02/12 06:47
>>221、224
 近い、という定義はだいたいxとyの座標がそれぞれ0〜1ずれていても同じとみなしたいのです…
 3つの座標は、ぞれぞれ3つの辺の始点と終点を示しています。
 2つの辺の始点か終点が重なれば一つの頂点としてみなしたいのです。
 慌てていたので、ちょっと上の質問例が違っていました。訂正します
 自作のプログラムでは線分を切り出した時にこのような座標の取り方をしたので、
 これをうまく使って「この3辺は三角形だ」と認識させたいと考えています。

#define siten 0
#define syuten 1

CPoint t1[2],t2[2],t3[2]; //一辺の始点と終点の座標を持つ
t1[siten]=(0,0); t1[syuten]=(10,0); // "1"の辺の始点と終点
t2[siten]=(10,1); t2[syuten]=(4,8); // "2"の辺の始点と終点
t3[siten]=(0,1); t3[syuten]=(4,7); // "3"の辺の始点と終点

 1111111111
3 2
3 2
3 2
3 2
3 2
3 2
32
2

よろしくお願いします。

226 :デフォルトの名無しさん:03/02/12 06:49
>>225
各点間の距離をそれぞれ求めてそれが0〜1なら重なってるフラグ立てりゃいいじゃん

227 :デフォルトの名無しさん:03/02/12 06:50
あ、三角形が潰れてしまった…鬱氏
実際に紙に書いてもらえればわかりやすいと思います…
ほんとすいません つД;)



228 :デフォルトの名無しさん:03/02/12 07:29
>>226
で良いんじゃないの? ダメ?



229 :デフォルトの名無しさん:03/02/12 08:31
>>178
>実行しているファイルと同じディレクトリにある設定ファイルを読みたいので
>すが、ファイル名だけでオープンしようとすると上手くいきません。

こんな感じに配置してVCから実行してるのなら
C:\VC\test\Debug\test.exe
C:\VC\test\Debug\test.ini

次のようにやってみて
C:\VC\test\Debug\test.exe
C:\VC\test\test.ini

VCから実行すると実行ディレクトリは実行ファイルがあるところじゃなく
プロジェクトファイルがあるところになっちゃうかね

絶対パスだと読み込めたところをみるとたぶんこれが原因じゃないかな?




余談だけどWritePrivateProfileStringなんかの設定ファイルを書き込むやつは
ファイル指定が "test.ini" と ".\\test.ini" じゃ動作が異なるから気をつけて
前者だとウィンドウズディレクトリに設定ファイル作っちゃうから

230 :デフォルトの名無しさん:03/02/12 10:35
>>227
しつこい

>>229
プロジェクト→設定のデバッグタブで作業ディレクトリ変えりゃ済む話でないの?

231 :デフォルトの名無しさん:03/02/12 15:02
パスの質問はもう答え出てるから。

232 :デフォルトの名無しさん:03/02/12 17:01
マイクロソフトの"マイコンピュータ"や"ローカルディスク"等の

標準的なアイコンを自分のソフトに組み込んで使用したいのですが、

著作権はどのようになっているのでしょうか?(自分のソフトに組み込んで使えますか?)

また、二次使用できる場合、どこで配布されているでしょうか?


233 :デフォルトの名無しさん:03/02/12 17:24
毎回読みこめば?

234 :デフォルトの名無しさん:03/02/13 20:44
あほな質問ですまにゅ。
VC++6.0で独自のインターネットブラウザって作成可能なの?

235 :デフォルトの名無しさん:03/02/13 20:48
論理的には可能ですか。

236 :デフォルトの名無しさん:03/02/13 21:11
作れるけどライセンスの問題があるから
IEコンポーネントを使う

237 :デフォルトの名無しさん:03/02/13 23:55

ライセンスってJPEGの?
独自ブラウザは不可能なんですかね?



238 :デフォルトの名無しさん:03/02/13 23:59
テキストベースにする裏技

239 :デフォルトの名無しさん:03/02/14 02:07

MFCのCEdit なんですが、コントロールから
改行する方法ってどうしたら良いんでしょうか?

リソースエディタで複数行と、改行を許可は選んであります。

それで、ReplaceSel で文字を書いたのですが、
どうも改行されない。\n では改行できないんでしょうか?
CString からDDXを使う方法もありますが、後学のためにも
コントロール自体で操作したいと考えています。



240 :デフォルトの名無しさん:03/02/14 02:10
>>239
CRLF (\r\n) じゃなかったっけ

241 :デフォルトの名無しさん:03/02/14 02:10
改行は \r\n

242 :デフォルトの名無しさん:03/02/14 02:17

ども。ありがとうございます。
\r\n
で解決しました。



243 :デフォルトの名無しさん:03/02/14 02:34
コードを見やすくしたいんですけど、

class CDInput8{...};
void* pvRef;

として、

((CDInput8*)pvRef)->DInput->CreateDevice(...);


これ、綺麗になりませんか?

244 :名無し@沢村:03/02/14 04:30
>>243
static_cast<CDInput8*>(pvRef)->DInput->CreateDevice(...);

245 :デフォルトの名無しさん:03/02/14 19:28
見やすくしたいとはこれ如何に

246 :デフォルトの名無しさん:03/02/14 20:50
CDInput8* pDInput8 = static_cast<CDInput8*>(pvRef) ;
CDInput* pDInput = pDInput8->DInput ;
pDInput->CreateDevice(...);

駄目か。かえって見づらい?
->を何段も重ねるの好きじゃないんだが。

247 :デフォルトの名無しさん:03/02/14 21:59
まったくの初心者がVisual C++ .NETを購入して学習していくのは無謀ですか?
(いちお、古いJava本で配列・演算・インクルの概要は把握しました・・・)

そのうち、新しい2chブラウザー(低機能)を作ったり
ネットワークゲーム(ターン制)を作ってみたいです

VB.Netの方が初心者向きですか?

248 :デフォルトの名無しさん:03/02/14 21:59
CDInput8のインラインメンバ関数に


249 :デフォルトの名無しさん:03/02/14 22:08
>>247
初心者と言ってもどのレベルか分からん。
C++が分からんのなら無謀!

250 :由美(ネカマ1号機):03/02/15 00:18
変な質問ですいませんが…
Visual C++って何ができるんですか?

251 :デフォルトの名無しさん:03/02/15 00:21
>>247
VB6にしなさい。VB.netは別物。

252 :デフォルトの名無しさん:03/02/15 00:26

これから学習するんなら、C++が良いんじゃないの?
Javaやってんなら、C++にも慣れやすいのでは?



253 :デフォルトの名無しさん:03/02/15 00:28
>>250
プログラムが組めます

254 :デフォルトの名無しさん:03/02/15 00:44
>>243
#define DINPUT(p) ((CDInput8*)(p))->DInput
((CDInput8*)pvRef)->DInput->CreateDevice(...);

DINPUT(pvRef)->CreateDevice(...);

やりすぎると別言語チックになる上にデバッグしづらい罠

255 :デフォルトの名無しさん:03/02/15 00:52
漏れは>>243で充分綺麗(分かり易い)だと思うのだが。

256 :デフォルトの名無しさん:03/02/15 01:39
プログラムでIEを起動したいのですが、どうしたら出来ますか?


257 :デフォルトの名無しさん:03/02/15 01:43
>>253
ワラタ

>>256
最近、この手の質問がかなり多い気がするのは気のせいか?
とりあえず、ShellExecuteでも使え。

258 :デフォルトの名無しさん:03/02/15 01:53
>257
ShellExecuteって何ですか?
ちなみに私はMFC使わないでAPI使っています

259 :デフォルトの名無しさん:03/02/15 01:55
>>258
ドキュメントにないの?

260 :デフォルトの名無しさん:03/02/15 01:56
>259
ドキュメント???

ヘルプのことですか?

261 :デフォルトの名無しさん:03/02/15 01:57
>>258
質問する事が悪いとは言わんが、
喪前は自分で調べるという努力をしないのか?

明示的にキーワードを与えられたんだし、
それを元に検索すれば、自ずと答えは見つかるはず。

262 :デフォルトの名無しさん:03/02/15 01:58
MFCスレでも同じような質問を見たよ。

263 :デフォルトの名無しさん:03/02/15 02:07
>261
そうですね。
少し自分で調べてみます。
すいませんでした。

>262
ありがとうございます。
MFCの方も覗いてみます。

>259、257
色々ありがとうございました。
少し自分で勉強してみます。


264 :デフォルトの名無しさん:03/02/15 02:23
256より
出来ました。 ありがとうございます。
261さんのおっしゃる通りでした。
いくら初心者用だからと言って、すべて聞いていただけではダメですね。
少しは努力しないと・・・
皆様色々ありがとうございました。
また、質問した際はよろしくお願いします。

265 :261:03/02/15 02:25
>>264
ガン(・∀・)ガレ!!

266 :デフォルトの名無しさん:03/02/15 02:27

なんか自作アプリを起動すると、だんだん
リソースが減っていくような・・・・。(汗
new は使ってないし、メモリをallocateする
ようなAPIも使っていないんだがなぁ。

こんな経験ないですかね?
MFCベースのWinアプリなんですが。
8時間くらいで作った簡単なやつです。

メモリリークの有無を調べる方法って
ありますか?



267 :デフォルトの名無しさん:03/02/15 02:32
>>266
メモリリークの検出方法
http://kkkon.hp.infoseek.co.jp/tips/MFC/MemoryLeak.shtml


268 :デフォルトの名無しさん:03/02/15 02:42
>>267
どうもありがとうございます。
ソースをみたら、デフォルトで挿入されているみたいなので、
そのままデバッグ実行してみましたが、メモリリークは
検出されませんでした。
そうすると気のせいってことみたいです。

269 :デフォルトの名無しさん:03/02/15 02:48
リソースとは何の事を指しているの?
リソース減少の原因がメモリリークとは限らないわけだが



270 :デフォルトの名無しさん:03/02/15 03:02
>>269
リソースメータのアイコンで表示される部分なので、
たぶんシステムリソースではないかと。



271 :名無し@沢村:03/02/15 03:11
>>266
ヌヒよ、GDIオブジェクトの破棄を忘れてはいないか?

272 :デフォルトの名無しさん:03/02/15 05:01
初心者なんでしょぼい質問かもしれませんが、教えてください。

タブコントロールを使っているんですが、
複数のラジオボタンやスタティックテキストやグループボックスなどは
どのようにすればタブの選択に応じてSW_HIDEとかSW_SHOWできるんですか?

本当に困っているので教えてください。よろしくお願いします。

273 :272:03/02/15 05:38
たびたびすいません。
適当にやってみたらできました。
無駄に書き込んでしまって申し訳ないです。

274 :デフォルトの名無しさん:03/02/15 06:02
ScrollBarやButtonなどを配置するときにマウスではなく数値で大きさや位置を指定することはできますか?

275 :デフォルトの名無しさん:03/02/15 07:44
>>274
OnSizeなどでMoveWindowするとか。

276 :デフォルトの名無しさん:03/02/15 13:12
>>274
rcをメモ帳で開いて書き換えとか

277 :デフォルトの名無しさん:03/02/15 21:27
引用です。

 955 名前:デフォルトの名無しさん 投稿日:03/02/15 19:30
 VC++ .NETでデバッグをするとセキュリティ設定が原因で
 プロセスを作成できないと出てくるのですが、
 どうすれば作成できるようになりますか?

VC++6.0では普通にコンパイルできるものも
.NETでは上記のエラーが出て出来ません。
OSはwin2kです。



278 :デフォルトの名無しさん:03/02/15 23:42
引用と言う名のマルチかよ。
おめでてーな。

279 :デフォルトの名無しさん:03/02/16 01:43
>>275
>>276
レスありがとうございます
デザイン時にキッチリ揃えたりできればと思ったのですが
無理なのでしょうか
残念です

280 :デフォルトの名無しさん:03/02/16 02:05
>>279
rcファイルをテキストエディタで編集


281 :277:03/02/17 00:49
>>277
解決しました。レジストリを足すようです。
同じ事で困ってる人がいるようならやり方も書きます

282 :デフォルトの名無しさん:03/02/17 03:29

size_t の _t って何の略ですか?
nothrow_t なんかもあるようですが。

283 :C++厨:03/02/17 14:10
maybe type

284 :デフォルトの名無しさん:03/02/18 16:47

JPEGを表示させるフリーウェアは、
もう作れないんですか?



285 :デフォルトの名無しさん:03/02/18 16:52
>>284 IEコンポーネント使用ブラウザとかあるじゃん

286 :デフォルトの名無しさん:03/02/18 16:59
>>284
JPEGもだめだったっけ?
GIFじゃなくて?

287 :デフォルトの名無しさん:03/02/18 18:09
>>285
IEコンポーネントってどこまで自由度あげられるのかな。
例えば、スムーズな拡大縮小や、レタッチソフトでも
使える?

JPEG特許問題
http://pc2.2ch.net/test/read.cgi/tech/1027428839/

こんなスレあがってた。

288 :457:03/02/18 19:32
vb歴2年、そろそろ知識のバージョンUP。

ところで、同じプログラムを、vbとC++で組むと、C++のほうが
コードが多いと聞いたんですがどうなんでしょうか?



289 :デフォルトの名無しさん:03/02/18 19:37
>>288
その通り。
何も貼ってないフォームを表示させるだけで数百行。
VBなら0行ですむところ。


290 :457:03/02/18 19:59
>>289
俺は、趣味でプログラミングしている。
だっらVBに徹したほうが良いのかな?

でも、プログラミングはC++ですよって言ったほうが聞こえが
良いと思ってバージョンUPを考えたのだが、
C++を使っているヤシは、PGなのか?

291 :デフォルトの名無しさん:03/02/18 20:25
C++だからPGってわけじゃない。
学生でも趣味でプログラミングしてる人はいるわけだし。

趣味の程度にもよるけど、簡単なプログラムだったらVBでも作れるでしょ。
2ch用ブラウザくらいなら出来ないことはない。
ただ、細かい部分までこだわるならVBよりVCのほうが有利だと思う。

ま、趣味なら「やりたい」とおもったらやれば?

292 :デフォルトの名無しさん:03/02/18 20:45
フォームなんて言ってるから自演がばればれ

293 :デフォルトの名無しさん:03/02/18 20:53
つーかここはやる気の問題じゃなくて技術的な問題を扱うスレだから。

294 :デフォルトの名無しさん:03/02/18 21:07
>>290
Borland C++ Builderなら、VBみたいにパーツを切り貼り出来る。
いいとこ取り。

でも、Windowsに対して細かい操作をしたかったら、
VC++のほうが情報量が多い。

DOS時代、Cの経験があったけど、カルチャーショックは大きかった。
見慣れるまで1年以上かかった。趣味だから、ってせいもあるけど。

>>292
自演じゃない。最初はWindowsと打ってたけど、
VB使いにわかりやすいように書き換えた。


295 :デフォルトの名無しさん:03/02/18 21:14
窓を表示させるだけならウィザードを使えば0行で済む罠。

296 :デフォルトの名無しさん:03/02/18 21:29
>>295
VBじゃあんまりウィザード使わないし。

初めて見た時は、「ここにコードを挿入」以外のコードが膨大で、
圧倒されて、やる気なくした(笑)。


297 :デフォルトの名無しさん:03/02/18 23:17
「ここにコードを挿入」以外のコードは大体スケルトンだろ

298 :296:03/02/18 23:34
>>297
Yes
でも、気になる(笑)。
別ファイルにでも追い出してくれる方が初心者にはとっつきやすい。


299 :デフォルトの名無しさん:03/02/18 23:55
>>294
> 最初はWindowsと打ってたけど
いや意味判らんし…

300 :294:03/02/19 00:09
>>299
ウィンドウのさらに打ち間違い。


301 :デフォルトの名無しさん:03/02/19 08:30
>>294 
290です。そうですか、Borland C++ Builderだったらいいとこ取りね。 

VC++を買うつもりですが、今は、VC++netですよね。
netはXP対応でMEは使えないの?




302 :デフォルトの名無しさん:03/02/19 09:21
>>301
そう。NT系でしか動かないし、1GHz以上でないと重い。



303 :デフォルトの名無しさん:03/02/21 03:37
流れが止まってるな・・・(;´Д`)

304 :デフォルトの名無しさん:03/02/21 10:34
VC++6.0で手術中によくある生命のグラフ(?死ぬとピーっていうやつね)の

つくりかたをおしえてくれさい。

305 :デフォルトの名無しさん:03/02/21 10:56
>>304
作り方のどの部分がわからないの??


306 :デフォルトの名無しさん:03/02/21 11:08
>>305
ぶっちゃけてしまうと全部なのですが、
今わかってることは、メモリのバッファ(?)に
直接書いてそれを画面に転送するらしいということと、
OnPaintを使わないって事ですね。

まずは、どうやってメモリに書いたらいいのかなどが
わからないです。

307 :306:03/02/21 11:14
追加です。
リソース関係のことですが、
ピクチャーに表示する予定です。
タイプは四角形です。

おねがいします。



308 :デフォルトの名無しさん:03/02/21 11:20
ここは「教える」スレだ。「仕事請け負う」スレじゃない。出直してこい。

309 :306:03/02/21 11:25
知らないなら知らないって言ってよぉ〜  (´・ω・`)ショボーン

310 :デフォルトの名無しさん:03/02/21 11:37
>>309
知らん。出直してこい。

311 :デフォルトの名無しさん:03/02/21 23:40
ていうかヘルプくらい読め

312 :デフォルトの名無しさん:03/02/22 08:11
>>309
貴様に教える気が無いっつってんだ!

313 :デフォルトの名無しさん:03/02/22 08:51
いくら「初心者に教える」っても限度があるってことかな。
あまりにも知らなすぎたり、理解力がなさすぎたり
状況説明が拙すぎたりすると教える方も
さじを投げちゃいます。

まー、中には物好きがいるかもしれんから待てば?

314 :デフォルトの名無しさん:03/02/22 09:29
要するにグラフ書きたいんだろ
Hello World の次ぐらいにやりそうだな
それもできないんじゃ教えるだけ無駄

315 :デフォルトの名無しさん:03/02/23 06:36
リソースでボタンとか作ろうとしたんだが、誤ってボタンとか作るコントロールボックス(?)のウィンドウを消してしまいました!

どうやったらもう一度このウィンドウを出せるのでしょうか…


316 :デフォルトの名無しさん:03/02/23 06:41
↓↓↓↓↓★ココだ★↓↓↓↓↓
http://www.pink-angel.jp/betu/index.html


317 :デフォルトの名無しさん:03/02/23 06:42
メニューで ツール>カスタマイズ>ツールバー>コントロールにチェック

318 :デフォルトの名無しさん:03/02/23 09:06
ツールバーが動いたり切り離せたりして、かなりうざいです。
ツールバーを固定する方法ってあります?

319 :317:03/02/23 09:56
なんだ教えて君か
教えるんじゃなかった

320 :デフォルトの名無しさん:03/02/23 16:18
>>306
普通 memDC というのを作って対処するので、それについて広く調べてください。

321 :デフォルトの名無しさん:03/02/23 19:55
MFCのダイアログベースでつくてます。
ダイアログエディタのEdit ControlだとWM_CHARがイベントハンドラのなかにないので
CEditを継承してCMyEditを作ってOnCharのなかにやりたいことを書きますた。

で、質問なんですが。
このMyEditはどうやって表示して使ったりするんでしょうか?(..;)
ダイアログエディタみたいに貼り付けたりはできないのでつかね。

322 :デフォルトの名無しさん:03/02/23 19:59
>>321
マジで?

323 :デフォルトの名無しさん:03/02/23 20:09
>>321
一般的なやり方としては、クラスウイザードのメンバ変数タブで
IDC_EDIT1 のコントロール変数(オブジェクト)を生成して、
そうするとCTestDlg に、このオブジェクトが追加されるから、
このCTestDlgのWM_CHARハンドリング部分でIDC_EDIT1
をコントロールするんじゃないですかね?



324 :名無し@沢村:03/02/23 20:18
>>321
ヌヒよ、「サブクラス化」だ。

325 :デフォルトの名無しさん:03/02/23 20:19
>>321
この方向でいくと、CEditの派生クラスを作ったのはいいけど、
CMyEdit はまだ実体化されていないですよね。結局のところ、
CTestDlgクラスのメンバ変数としてCMyEditを所有して、
コントロールすることになるんじゃないかな。

326 :デフォルトの名無しさん:03/02/23 20:22

ビットマップの表示に関する質問です。
ビットマップを絶対パスから開く方法がわからないので困っています。
リソースに登録し、そのIDをLoadBitmapで呼び出す方法しかわからないもので…
すでにファイルの絶対パスが格納されてあるchar型の変数filenameを使って、ビットマップを
読めるようにしたいと考えています。

(例)こんな感じでやりたいのです
filename="c:\windows\デスクトップ\test.bmp"
LoadBitmap(filename...) ←おかしい

何か手立てはないものでしょうか?


327 :名無し@沢村:03/02/23 20:24
>>326
ヌヒよ、LoadImage()だ。

328 :デフォルトの名無しさん:03/02/24 03:22
SDIでViewをCScrollViewから派生させて、
できたスケルトンのOnDrawで、
CPoint pt = GetScrollPosition();
pDC->TextOut(pt.x, pt.y, "aho");
ってやったら表示されてるようだけどきれいにならないでくずれるんだけど。
なんで?

329 :デフォルトの名無しさん:03/02/24 03:55
>>328
崩れるって具体的にどのように?

>>326
LoadBitmap、CreateBitmapIndirectなど

330 :デフォルトの名無しさん:03/02/24 04:01
>>328
ん〜 
試してみましたが再現しません。
どういう操作したときにどういう風に
崩れるの?



331 :デフォルトの名無しさん:03/02/24 08:19
すんません。

VisualC++ 6.0からVisualC++.NETへ移行する場合でソースの互換性はありますか?
旧バージョンで作った奴をコンパイルしたら遅くなるというような
ことはありませんか?

332 :ねかま:03/02/24 08:22
>>329は嘘つきだわ

333 :デフォルトの名無しさん:03/02/24 08:47
>>332
どこがどう嘘つきなのか指摘してくれ

334 :デフォルトの名無しさん:03/02/24 08:49
>>333
LoadBitmapってAPIの存在を知らないんだと思われ

335 :デフォルトの名無しさん:03/02/24 08:57
パスの区切りは"\"ぢゃなくて"\\"

336 :ねかま:03/02/24 11:10
>>333
>>326さんはファイルの絶対パスを指定してビットマップを開きたいと言っているのよ。
LoadBitmap()でどうやって開くって言うのよ。バカじゃないの。
CreateBitmapIndirect()じゃ手間がかかるだけだし。
だから沢村さんの言うとおりLoadImage()が正解よ。

337 :とりあえず突っ込んどくか:03/02/24 12:14
や、それ以前に質問文にLoadBitmap()ってあるんだからLoadBitmap()と答えること自体おかしい。
ピンボケな回答にツッコミいれるオマエもな。

338 :デフォルトの名無しさん:03/02/24 13:15
#include <iostream>
#include <string>
using namespace std;

class KNeko
{
string name;
public:
void SetName (string n){
name = n;
}
void Naku() const{
cout << "なんか文句あっか、(゚Д゚)ゴルァ!!俺は" << name << "だ。よろしくな" endl;
}
};

int main()
{
KNeko x;
x.Naku();

x.SetName("ギコ");
x.Naku();
}

これをビルドしようとすると26行目にエラーがでます。始めたばかりで
あまりよくわからないですが皆さんご教授ください

339 :デフォルトの名無しさん:03/02/24 13:33
26行目というと

> これをビルドしようとすると26行目にエラーがでます。始めたばかりで

この行ですね。コメントアウトするか、あるいは行を削除しましょう。


340 :デフォルトの名無しさん:03/02/24 13:38
それだと27行目でもエラーが出るぞ


341 :338:03/02/24 13:48
ごめんなさい。というかアカデミック買って使い始めた
ばかりで使い方自体よくわかんないんです…

342 :338:03/02/24 13:51
ビルドには成功したもののexeファイルができないです…


343 :デフォルトの名無しさん:03/02/24 14:38
>>342
プロジェクトのDebugフォルダの中を見てみ!


344 :デフォルトの名無しさん:03/02/24 14:51
>>338
mainルーチンにreturn文がない

345 :デフォルトの名無しさん:03/02/24 16:47
KNeko x;
だけでは、コンストラクタを呼び出していないから、

KNeko x = new KNeko();

とか書くんじゃないの?

346 :338:03/02/24 16:52
#include <iostream>
#include <string>
using namespace std;

class KNeko
{
string name;
public:
void SetName (string n){
name = n;
}
void Naku() const{
cout << "なんか文句あっか、(゚Д゚)ゴルァ!!俺は" << name << "だ。よろしくな" << endl;
}
};

int main()
{
KNeko x;
x.Naku();

x.SetName("ギコ");
x.Naku();
return 0;
}


347 :338(YBB user):03/02/24 16:55
これでなんとかできました。endl前の<<が抜けてたのが原因みたいです。
それでもシンボルが読み込まれてないとかエラーが出ますが
いちお実行できました。

ありがとうございましたm_ _m

串が見つからなくてなかなかカキコできなくてすみませんでした

348 :デフォルトの名無しさん:03/02/24 16:57
>>347
おい、ここはYBB規制されてねーぞおい。

349 :デフォルトの名無しさん:03/02/24 16:57
おいがかぶった

350 :デフォルトの名無しさん:03/02/24 17:00
おい、おいがかぶってるぞおい。

351 :338(YBB user):03/02/24 17:01
test

352 :338(YBB user):03/02/24 17:02
本当だ…あの努力は一体…

353 :デフォルトの名無しさん:03/02/24 17:20
VBもVCも言葉が似てるから兄弟なんだな。

354 :デフォルトの名無しさん:03/02/24 20:34
>>353
そうですね。

355 :353 ◆ExGQrDul2E :03/02/24 20:46
>>354
VBがアニキだよ。

356 :デフォルトの名無しさん:03/02/24 20:49
>>345
ネタですか?

357 :VB:03/02/24 21:53
不肖のアニキでごめんなさい

358 :デフォルトの名無しさん:03/02/24 22:26
>>357
いやおまえはよくやってるよ。
ただ使い手に問題があっただけだ。
おつかれさん。

359 :デフォルトの名無しさん:03/02/25 00:45
うん、VBは人間に近い言葉なのにちゃんとコンピュで動くからすごい

360 :デフォルトの名無しさん:03/02/25 01:11
ちゃんと? 

361 :デフォルトの名無しさん:03/02/25 02:13
ちゃんと鍋

362 :デフォルトの名無しさん:03/02/25 02:47
なんかstdafx.hとかいうファイルが勝手にできてるんですけどこれって何ですか?
ヘッダファイルだというのはわかりますけど
どう使うのが賢いのか教えてえらい人!!

363 :デフォルトの名無しさん:03/02/25 03:02
>>362 プリコンパイル済みヘッダーファイルでぐぐれ。

364 :デフォルトの名無しさん:03/02/25 03:09
>>363
コンパイル時間を短くすることができるんですね
ありがとう!えらい人!! 

365 :デフォルトの名無しさん:03/02/26 11:02
教えて君ですいません。VC6の開発環境なんですが、
VBのイミディエイトペインやBCBの評価/変更ウィンドウ
みたいな、非デバッグ中に簡単な式を評価できるような
機能は無いのでしょうか?

366 :219-105-109-105.adachi.ne.jp:03/02/26 11:30
VC++.netなのですが、DOSのプログラムは打てますか?

367 :タダで!?:03/02/26 11:34
YAHOO!BBのユーザーへの特報!!!

今YAHOO!BBでADSLを利用されてる方。

月額料金を無料にできる方法をお教えします。確実な方法です
し方法も一つではなく何通りお教えしますので、ヤフーbbのユ
ーザーである限り料金発生なくずっと使えます。

興味のある方は以下のメールアドレスに連絡ください。
料金をとめる方法は少しの謝礼でお教えします。
ryoukinn5000@yahoo.co.jp ryoukinn2003@yahoo.co.jp
 よろしくお願いします。

368 :デフォルトの名無しさん:03/02/26 15:07
>>365
「ウォッチ ウィンドウ」で。
他にも「表示」→「デバッグ ウィンドウ」から辿ると使えるウィンドウがいろいろ

369 :デフォルトの名無しさん:03/02/26 17:00
>>368
早速レスサンクス
「ウォッチウィンドウ」ってデバッグ時じゃきゃ
開けないのでは?
作成途中で、まだまだデバッグ開始出来ない
時にでも、簡単な式のテストをしたいと思いまして


370 :デフォルトの名無しさん:03/02/26 17:03
>>369
MessageBoxはどう?


371 :デフォルトの名無しさん:03/02/26 18:59
入力formをVBで作る事できるんですか?


372 :デフォルトの名無しさん:03/02/26 19:07
>>371
煽りたいだけでも無知なだけでもいいから氏ね。

373 :デフォルトの名無しさん:03/02/26 19:19
挿入>リソース>インポート>ファイルの種類でVBフォーム

374 :デフォルトの名無しさん:03/02/26 19:45
cv っていうほどでもないかもしれませんが
COLORREF の赤の要素を取り出したいのですがどうすればよいでしょう?

375 :デフォルトの名無しさん:03/02/26 19:50
>>374
GetRValue

376 :デフォルトの名無しさん:03/02/26 19:55
>>366
MS-DOSで実行可能なプログラムという意味なら無理。
"Win32 console application"という、コマンドプロンプト上で
実行可能な32bit Windows用のプログラムなら作れる。


377 :デフォルトの名無しさん:03/02/26 19:56
ありがとうございます

378 :366:03/02/26 19:58
>>376
サンクス!

379 :デフォルトの名無しさん:03/02/26 20:00
いちいちお礼でageんな

380 :デフォルトの名無しさん:03/02/26 21:19
最適化オプションを"無効"から"実行速度"に変えるとプログラムが動作しなくなりました。
同じような現象が起きた方いますか?対処法のヒントなどいただけるとありがたいのですが。
環境:Windows 2000 Pro. / Visual C++ 6.0

381 :デフォルトの名無しさん:03/02/26 21:22
>>380
プログラム中のバグをなくす。

382 :380:03/02/26 22:11
値が±1違っていました。
int a, b, c;
c=(int)(a / (b / 1000.0F));をc=(int)(a / (b / 1000.0));
に変えたら、なんでかよくわからないですが、動きました。
激しくスレ違いでした。すみません。

383 :デフォルトの名無しさん:03/02/26 22:12
初心者です。
CとC++はどこがちがうの?
なんか、ソースみると同じに見えてしまう。

384 :デフォルトの名無しさん:03/02/26 22:19
↑以後放置で。

↓はい次

385 :デフォルトの名無しさん:03/02/26 22:19
C++とJavaはどう違うんでしょうか・・・・

386 :デフォルトの名無しさん:03/02/26 23:23
↑以後放置で。

↓はい次

387 :デフォルトの名無しさん:03/02/26 23:31
Win2000Pro SP3/VC++6.0 SP5です。

コンソールアプリ作っているんですが、ある処理を実行中に
その経過を表すものを作りたいのです。よくUNIXとかで

******** / [77%]

ってありますよね。あれがやりたいのですが。改行しない
で同じ行に書き直す?ことができれば可能と思うんですが。

なにか検索の手がかりになるキーワードだけでも教えて
ください。

388 :デフォルトの名無しさん:03/02/26 23:42
>>387
CR(\r)を書き込めばいいよ。


389 :387:03/02/26 23:58
そういうことか。。。\n使わなきゃいいんですよね。。。
ありがとうございました。



390 :デフォルトの名無しさん:03/02/27 22:17
使っている参考本に
fseek(fp,0L,SEEK_SET); /* fpはFILEポインタ */
という一行があるのですが、
この"0L"とはなんなのでしょうか?
前後で何も定義して無いようですし、
普通に"0"でやっても通ってしまいます。


391 :デフォルトの名無しさん:03/02/27 22:18
>>390
longを表すサフィックス
0・・・int型の0
0L・・・long int型の0

392 :デフォルトの名無しさん:03/02/28 00:12
>>390
ANSI Cにおいてfseek()のプロトタイプ宣言を取り込んでいる場合
(要はstdio.hを#includeしている場合)は、コンパイラが
宣言に合わせて適宜型変換を行ってくれるので、long型であることを
明示する必要が無い。
K&R Cの場合、またはANSI Cでもプロトタイプ宣言を取り込んでいない
場合はコンパイラが自動的に面倒を見ることができないので、
仮引数がlong型である場合には、0Lのように型を明示して
実引数を渡さないと問題が生じる。


393 :デフォルトの名無しさん:03/02/28 03:36
Win98SE VC++6.0 SP5
ツールバーの背景色が変なんですが、何が原因でしょうか?

394 :デフォルトの名無しさん:03/02/28 04:56
>>393
どう変なのか書けよボケ

395 : :03/02/28 19:45
VisualC++ 6.0 Professional Edition を使っているのですが、
メモリリークの検出方法がわかりません。
教えてください。

396 :デフォルトの名無しさん:03/02/28 22:54
ttp://www.google.co.jp/search?q=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%81%AE%E6%A4%9C%E5%87%BA%E6%96%B9%E6%B3%95&ie=UTF-8&oe=UTF-8&hl=ja&lr=

397 :ありがとう:03/03/01 19:54


398 :デフォルトの名無しさん:03/03/01 22:20
このプログラムを終了できません。デバッグ中〜
というエラーがでました
IDEの操作もできず、終了させられません
このプログラムを終了させるにはどうすればいいのでしょうか?
終了のショートカットなどあれば教えてください

399 :フォル:03/03/01 22:27
alt ctl del

400 :デフォルトの名無しさん:03/03/01 22:55
>>399
それでも
>このプログラムを終了できません。デバッグ中〜
がでてきました

結局IDEごと落とすことにしました、まだ脳内にソースが残っているうちに……
お騒がせしました

401 :aaa:03/03/01 22:58
質問
Windows xp にVc++6.0 Standerd Editionってインストールできますか?
インストールの途中でC:\WINDOWS:\system32:\Msjint35.dllが開けないって言われたんですけど
どうすればいいんですか?教えてください。

402 :デフォルトの名無しさん:03/03/01 23:07
http://www.google.co.jp/search?q=cache:s_SPAlqf2S0C:dynabook.com/assistpc/download/modify/sfepg/+Msjint35.dll&hl=ja&lr=lang_ja&ie=UTF-8

403 :デフォルトの名無しさん:03/03/02 00:58
ボタンの色(背景)を変えたい時はどうすればいいですか?

404 :デフォルトの名無しさん:03/03/02 02:21
>>403
CBitmapButtonやオーナードローなど。

405 :デフォルトの名無しさん:03/03/02 02:57
BSTR型のデータをchar文字列を取り出すにはどうしたらいいですか?
ストリングの型が多すぎてついて行けません。
解りやすく解説したサイトなどないでしょうか。

406 :デフォルトの名無しさん:03/03/02 03:12
>>405
strcpyとか。

407 :デフォルトの名無しさん:03/03/02 05:06
マシンIDを取得したいのですが、下のようにやっても
szTextにはゴミのような値が入っています。
どうしたらいいのでしょうか?

void GetDataString(char *szName, char *szValue)
{
HKEY hKey;
DWORD dwType = REG_SZ;
DWORD dwByte = 32;

RegOpenKeyEx(HKEY_CURRENT_USER, "Identities", 0, KEY_QUERY_VALUE, &hKey);
RegQueryValueEx(hKey,szName,NULL,&dwType,(BYTE *)szValue,&dwByte);
RegCloseKey(hKey);
return;
}

char szText[80];
GetDataString("User ID", szText);

408 :名無し@沢村:03/03/02 12:45
>>405
#include <comdef.h>
BSTR bstr;
として
char* p = _bstr_t(bstr, true);

>>406
不正解

409 :デフォルトの名無しさん:03/03/02 13:49
Visual C++.netでソースのインデントとかがぐちゃぐちゃに崩れたときに、
自動整列させるにはどうすればいいですか?

410 ::03/03/02 15:42
>409
Ctrl+Aで全選択

Ctrl押しながら K
そのままCtrl押しつづけて F

411 :デフォルトの名無しさん:03/03/02 17:06
>>410
ありがとうございます。これを待ってました。

・・・これをGUIのボタン一発でできないでしょうか?

412 :デフォルトの名無しさん:03/03/03 14:43
>>411 マクロを書いて、そのコマンドをボタンに割り当てる

413 :デフォルトの名無しさん:03/03/03 23:32
CAsyncSocketを用いたサーバー側TCPIPのプログラムを書いてます。
SOCKET の生成→リスニング開始→OnAcceptイベント

までは来るのですが、
そのあと、
ハンドラ内でAcceptして抜けた後、
クライアント側でデータ送信しても
OnRecieveイベントが発生しません。
Acceptの戻り値は正常終了しています。


LANアナライザで見ると
PUSHにたいしてACKは返っているのですが、
送信するたびにWINDOWサイズが小さくなっているので
サーバー側は受け取っているのだけどイベントが
発生しないので取り出されずに
バッファを消費していっている感じです。

なにか考えられるミスはありますか?

ちなみにクライアントがMFCでないのでアーカイブはつかえません。

414 :デフォルトの名無しさん:03/03/04 00:54
>>413
CAsyncSocketなぞ使う貴様が悪い。
Winsockを直接叩け!

415 :デフォルトの名無しさん:03/03/04 01:09
>>414

( ´,_ゝ`)プッ  まともに答えられる知識がないなら、最初からレスするなよ。

416 :デフォルトの名無しさん:03/03/04 01:13
そうかな

417 :デフォルトの名無しさん:03/03/04 11:19
VC++ 6.0を使って、コンソールアプリを作成しています。
アプリは完成しました。ですが、スピードがいまいちなので、
プロファイルを実行して最適化をする必要がでました。

プロジェクトの設定で、リンク->プロファイルを行う に
チェックボックスをつけても、一度目のクリックでは有効にならず、
二度目のクリックで有効になります。しかし、ほかのタブを表示
させて、もう一度開いてみるとチェックボックスが外れています。

Professional Editionを使っているので、プロファイルは使える
はずなのですが・・・。なにが悪いのでしょうか?

418 :デフォルトの名無しさん:03/03/04 11:28
>>417
http://www.hidecnet.ne.jp/~sinzan/tips/vc/vc_tip08.htm

419 :デフォルトの名無しさん:03/03/04 15:58
現在VC++でSDKをやり始めようとしている者です。
すごく初歩的な質問だとは思いますが、システムメニューの改造で、
DeleteMenu()関数でシステムメニューのいらない項目を削除してから、
AppendMenu()関数で新しく項目を追加して、
その項目を選ぶとメッセージボックスが出るようにしようとしてるんですが、
AppendMenu()関数の第3引数に新しく追加する項目のIDを入れるというのはわかるのですが、
そのIDってのはそこで自分で考えたIDで良いんですか?
適当に(例えばIDM_TESTとか)入れてコンパイルしても、
'IDM_TEST' : 定義されていない識別子です。
と言われ、コンパイル出来ません。ヘッダで#defineで適当な数字を入れても
コンパイルは出来るのですが、新しく追加した項目をクリックしても何も起きません。
(一応クリックしてからのイベントは記述してます)
長文になってしまいましたがどなたかAppendMenu()の使い方を教えてください。

420 :デフォルトの名無しさん:03/03/04 16:10
>>419
システムメニューに追加する場合はIDの範囲が決まっていたような。

421 :デフォルトの名無しさん:03/03/04 16:10
…と、SDKか。失礼。

422 :419:03/03/04 18:16
自己解決しました・・・。ほんまにごめんなさい。
AppendMenu()の使い方とIDの定義をしなくてはいけないってのは合ってたんですが、
システムメニューからのメッセージの捕らえ方を間違ってました・・・。
システムメニューからのメッセージはWM_SYSCOMMANDなのにWM_COMMANDでやってました・・・。
そりゃ動かねーわ。ほんまにアフォみたいなミスやってすんませんでした。

423 :デフォルトの名無しさん:03/03/04 20:41
VC6,SDK,Win2000で作っています。
あるウインドウでのフォーカスの状態を調べようと思い(別アプリ)、
AttachThreadInput(nTargetID, nForegroundID, TRUE );
hFocus = GetFocus();
AttachThreadInput(nTargetID, nForegroundID, FALSE );
という感じでスレッドをアタッチしてから取得しているのですが、
このアプリケーションの前に立ち上げたアプリだとうまくいくのですが、
あとに立ち上げたアプリだと若干動作がおかしくなります。
(自アプリを2回クリックしないと自アプリがアクティブにならない)
別アプリのフォーカスを取得する良い方法があればアドバイスお願いします。

424 :デフォルトの名無しさん:03/03/05 01:07
VC++で書かれた多変量解析のサンプルプログラムを紹介してる
HPか書籍ないですかね?

425 :デフォルトの名無しさん:03/03/05 08:21
プロジェクトの設定→リンカオプションで
[オブジェクト/ライブラリ モジュール]は、VC++.netではなんという項目に
なるんでしょうか?

426 :デフォルトの名無しさん:03/03/05 08:23
>>424
http://www.google.com/search?q=%E5%A4%9A%E5%A4%89%E9%87%8F%E8%A7%A3%E6%9E%90+%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0

427 :デフォルトの名無しさん:03/03/05 12:05
CFileException::sharingViolation SHARE.EXE 未ロードまたは共有領域ロック済み

CFile::openで↑のようなエラーが帰ってくるんですが
どうしたらいいですか?



428 :デフォルトの名無しさん:03/03/05 12:22
close()してないだけでした・・・

429 :デフォルトの名無しさん:03/03/05 15:07
シェルでMS-DOSを開いて命令を与えられますか。
例:自分のプログラムからIPを取得してDOS窓を起動してそこから、取得したIPにpingする。

430 :デフォルトの名無しさん:03/03/05 15:44
MS-DOSってエミュレーターでも走らせるの?
それともWindows3.1以前の話?

431 :429:03/03/05 16:47
コマンドプロンプトです^^;

432 :デフォルトの名無しさん:03/03/05 16:54
PINGならicmp.dllを使うべき、わざわざ外部コマンドを使う意味はない
生ソケットからのICMPは特権ユーザでないと出来ないのでお勧めしない

433 :hsm-ip1273.enjoy.ne.jp:03/03/05 17:01
ネット初心者です。いじめないでね(/ε\*)

434 :デフォルトの名無しさん:03/03/05 17:03
ふしあなさんやっちまったヽ( ・∀・)ノいじめないでね(/ε\*)

435 :デフォルトの名無しさん:03/03/05 17:55
練習用プログラムを卒業し、実用的なプログラム組んだりするのは、どんな風に勉強すればいいんでしょう

436 :デフォルトの名無しさん:03/03/05 18:46
>>435
何か目標を決めるといいかも。
例えば2chブラウザつくってやるぜー!とか。

437 :デフォルトの名無しさん:03/03/05 19:28
>>433
デオデオのプロバイか?

438 :デフォルトの名無しさん:03/03/05 21:02
>>435
ゲーム製作技術板が実質的な初級プログラム板ですので
そこで垂れ流してみるのがいいかと

439 :デフォルトの名無しさん:03/03/05 21:26
あそこは嵐ばかりでまともなスレが存在しない隔離板

440 :414:03/03/05 23:16
おい、俺はいつになったら叩かれるんだ?
ネットでも独りぼっちなんて寂しいよ。。。
おまけに>>415みたいなアフォに煽られるしさ

441 :デフォルトの名無しさん:03/03/06 00:18
414 は放置

442 :デフォルトの名無しさん:03/03/06 18:30
すべてのブレークポイントを解除とかないですか?
VC6です

443 :デフォルトの名無しさん:03/03/06 18:49
設定->ブレークポイント(Alt+F9)->全て削除->OK

444 :デフォルトの名無しさん:03/03/06 18:51
スマン間違い
×設定
○編集

445 :デフォルトの名無しさん:03/03/06 18:59
Windows98 にインストールしている VisualC++、MSDN を
Windows2000からでも使用できるようにする方法を
どなたか、ご存知ではありませんか?
OSは、98 と 2000 インストールした状況での話です。


446 :デフォルトの名無しさん:03/03/06 19:05
VC++6.0を使っているのですが、
プログラムを作っている最中に、いきなりtabやEnter,Spaceのキーが効かなくなりました。

スペースを押すと、今まで書いたコードが1字ずつ消えていったり
リターンを押すと、改行がされないまま、次の行にカーソルが移動してしまいます

この場合、どうすれば元の状態になるのでしょうか

447 :デフォルトの名無しさん:03/03/06 19:07
>446
再起動
いや、正しい直しかたは知らないのごめん


448 :446:03/03/06 19:11
>>447

あっ、本当に直りました
ありがとうございました

>>445
すんません
僕には分からないです

449 :デフォルトの名無しさん:03/03/06 19:15
http://www.agemasukudasai.com/bloom/

450 :デフォルトの名無しさん:03/03/06 20:06
>>445
ムリ
98と2000で使ってるレジストリも違うし。
デュアルブートしてるんなら、それぞれ別のPCと考えたほうがいいよ。

451 :デフォルトの名無しさん:03/03/06 20:11
>>445
同じ場所にもう一度インストールするだけで両方から使える

452 :デフォルトの名無しさん:03/03/06 20:18
>>443さんきう

453 :445:03/03/06 20:34
>450
分かりました。あきらめます。


454 :デフォルトの名無しさん:03/03/06 22:45
>>446
insertキー押して上書きモードになってたんじゃないの?

455 ::03/03/07 00:19
>454
どうなんでしょうか。
それはさておき、
私の環境のVC.NETでも
似て非なる現象に出会ってます。
発生するタイミングは適当としかいえない
タイミング。
起動したとたんもあるし、そうじゃないときもある。
再現させろと言われてもできないが、一日やってたらそのうち発生するレベル。
状況は>446と似ているが、微妙に(?)違う。
Enterキーを押すと、次の行にいかず、行と行の間にいくw
タイプするともちろん上書き。
でも見かけ上は明らかに描画がおかしく、
重なった文字がつぶしあっているようにも見える。
VCの再起動でなおる。
ファイルが壊れるとかそういうのはないので
さっさと保存ー>再起動  って感じ。
まぁ最近VC使ってないんで得に困ってない。
似たような話しあったんで書いてみました。
みなさんいかが?私だけ?
ちなみにインスト直後から発生してます。
WinXP VC.NET

456 :デフォルトの名無しさん:03/03/07 10:31
>>455
書き方がネタくせェ……

457 :はじめまして:03/03/07 15:56
今エクスプローラみたいのを作成していて
ファイルの拡張子に対応したアイコンをリストビューに割り当てる
というのに挑戦しています。
HIMAGELIST himlSmall;
SHFILEINFO shfi;
himlSmall=(HIMAGELIST)SHGetFileInfo((LPCSTR)filename,FILE_ATTRIBUTE_NORMAL,&sfi_s,sizeof(SHFILEINFO),SHGFI_SMALLICON |SHGFI_SYSICONINDEX);

ListView_SetImageList(hlist, himlSmall, LVSIL_SMALL);

としてはじめにイメージリストをリストビューに割り当て
その後は行を追加するごとに
SHFILEINFO sfi;
SHGetFileInfo((LPCSTR)fimename,FILE_ATTRIBUTE_NORMAL,&sfi,sizeof(SHFILEINFO),SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON);

のようにして取得したイメージリストのインデックスを
リストビューに追加する際に利用して

LV_ITEM item;
item.mask = LVIF_TEXT;
...
...
item.iImage = shfi.iIcon;
ListView_InsertItem(hlist, &item);

このような感じにしているのですが、
なぜか、かならず、ドライブを共有している時に出てくる手のアイコン、
が表示されてしまい、思ったとおりのアイコンがまるで出てきません。

何か原因がわかる方いらっしゃいますでしょうか?


458 :デフォルトの名無しさん:03/03/07 16:01
2回目のSHGetFileInfoに
SHGFI_SYSICONINDEX
がない

459 :はじめまして:03/03/07 16:09
>>458
やってみましたが、やっぱり共有のアイコンが何故か表示されます。しかも全行。

460 :デフォルトの名無しさん:03/03/07 16:16
    _, ._
  ( ゜ Д゜)

461 :デフォルトの名無しさん:03/03/07 16:18
item.mask = LVIF_TEXTに
LVIF_IMAGE
がない

462 :はじめまして:03/03/07 16:35
>>461

う、うまくいきました!ありがとうございまう!
もう随分長く考え込んでいて諦めかけてたところでした。。。。

463 :デフォルトの名無しさん:03/03/07 21:46
ダイアログにラジオボタンを4つ作って
それぞれ2つづつグループボックスで囲んで
グループにチェックを入れているんですが
片一方のグループのボタンを押すともう片一方のグループの
チェックまで外れてしまいます.
どうすればいいですか

464 :463:03/03/07 21:47
あげ

465 :デフォルトの名無しさん:03/03/07 22:22
各グループの先頭ラジオボタンのプロパティを開いてグループにチェック

466 :デフォルトの名無しさん:03/03/07 22:22
片一方のグループ先頭のラジオのプロパティに
グループのチェック
がない

467 :463:03/03/07 22:33
何とか解決しました・・・
ありがとうございました

468 :デフォルトの名無しさん:03/03/08 00:12
LVM_SETTEXTCOLOR

で、リストビューのテキスト色が変えられるらしいですが、
行ごとに違う色を指定って可能なんでしょうか?

469 :デフォルトの名無しさん:03/03/08 00:15
オーナードローなら出来るンじゃないかな。

470 :デフォルトの名無しさん:03/03/08 01:32
かすたむどろー

471 :デフォルトの名無しさん:03/03/08 04:33
最近はVB使う人の方があまり教えなくつめたい人種になってきたな。

472 :フォルトの名無しさん:03/03/08 11:42
VC++.netを使ってスケルトン使わず最初から自分で作りたい時は
新規作成から何を選べばいいのでしょうか?

473 :デフォルトの名無しさん:03/03/08 13:27
makefileで
project.obj : project.cpp project.h;
cl project.cpp
としたとき
fatal erro project.h:プログラムが見つかりません
とエラーが出ます。ちゃんとファイルあるし、なぜだかよく分かりません。
お願いします。

474 :デフォルトの名無しさん:03/03/08 13:52
シフトJISをJISに変換するAPIを教えてください

475 :デフォルトの名無しさん:03/03/08 14:46
エクセルとかワードを起動する時に一瞬出てくる画面は
どうやって描画するのでしょうか?

リソースに含まれているビットマップを
画面の中央に決めた時間だけ表示できればいいです。
お願いします。

476 :デフォルトの名無しさん:03/03/08 14:59
>>475
スプラッシュ スクリーン
で検索しる

477 :名無し@沢村:03/03/08 16:30
>>472
ヌヒよ、「Win32アプリケーション」を選択して、ウィザードで「空のプロジェクト」をオンにするといいぞ。

478 :472:03/03/08 21:55
沢村さんから教わるのは2度目です。
有難う御座いました。

479 :デフォルトの名無しさん:03/03/08 21:56
いい!
http://hkwr.com/

480 :デフォルトの名無しさん :03/03/08 22:00
恋の予感

481 :デフォルトの名無しさん:03/03/08 22:36
int bch = '\0";
の\0ってどういう意味でしょうか?

482 :デフォルトの名無しさん:03/03/08 22:38
'\0';の間違い

483 :デフォルトの名無しさん:03/03/08 22:43
>>481
ぬるぽ

484 :デフォルトの名無しさん:03/03/08 22:44
>>481
初心者向けのC言語入門書を見ることをオススメする


  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>483

485 :デフォルトの名無しさん:03/03/08 23:10
ラーメンくいてえ!

486 :デフォルトの名無しさん:03/03/08 23:35
VC++.netで#include<iostream.h>
としたらエラーになるんですが、何が間違ってるんでしょうか?

487 :デフォルトの名無しさん:03/03/08 23:52
ぬるぽって言うとなんでなぐられるねん?

488 :デフォルトの名無しさん:03/03/08 23:53
VC6の環境にPlatformSDK(のCoreSDK)を導入しようとしています。
例えば 2001-November というバージョンだと、インストールメニューに
includeとかlibとかのPATHをVCにセットアップする項目があるのですが、
この 2001-November より後のバージョンでは消えています。
しかたがないのでPATHを手動で[ツール]-[オプション]-[ディレクトリ]にて
更新していますが、これは間違っているのですか?


489 :デフォルトの名無しさん:03/03/09 00:02
>>487
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%A4%CC%A4%EB%A4%DD+%B2%A5%A4%EB&sw=2

490 :デフォルトの名無しさん:03/03/09 00:03
iostream.h は古い C++ 規格のもので原稿では iostream かと

491 :デフォルトの名無しさん:03/03/09 00:05
2001 年 10 月リリースのは VC6 には対応してたと思うが
それ以降のは見捨てられていて VC6 では使えないとか

492 :デフォルトの名無しさん:03/03/09 00:06
>>489
ワラタ

493 :デフォルトの名無しさん:03/03/09 00:37
  モンドウムヨウ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>487

494 :デフォルトの名無しさん:03/03/09 01:00
>>486
どうしてあなた方厨房はエラーの内容を書かないんですか

495 :デフォルトの名無しさん:03/03/09 01:17
>>494
わざわざエラーを書かなくても一目瞭然で答えられる内容だからです。

496 :デフォルトの名無しさん:03/03/09 01:23
>>491
VC6でもOct.2002は使えるが?
スタートメニューにVisual Studio Registrationという項目があるはず


497 :デフォルトの名無しさん:03/03/09 01:36
>>490-491
有難うございました。

498 :デフォルトの名無しさん:03/03/09 12:00
すいません どこで聞いたらいいかわからなかったんで、質問させてください
前々から使いにくいと思ってたんですが、VC++で「行番号」って表示できないでしょうか?

499 :デフォルトの名無しさん:03/03/09 12:41
CStringやらCFileのようにCから始まるオブジェクトや関数はMFC
のものだって認識しても間違いないでしょか?そんな覚え方やめた
ほうがいいです?

500 :499:03/03/09 12:42
>オブジェクトや関数
いや関数なんてないか、Cからはじまるオブジェクトに訂正

501 :デフォルトの名無しさん:03/03/09 12:45
>>498
デフォルトで右下に表示されてまつが。



502 :498:03/03/09 12:54
>>501 そうそう 右下に小さくなら表示されてますよね?
あれを普通のエディタみたいにコード書いてる横に表示させたいんですよね

503 :デフォルトの名無しさん:03/03/09 13:00
VC++6とVC++.netを比較するとどちらが扱いやすいのん?
また、双方の短所と長所を教えてくだされ。

504 :デフォルトの名無しさん:03/03/09 13:12
扱いやすさなんて感性的なもの人それぞれ

505 :デフォルトの名無しさん:03/03/09 13:14
VC++.netで、以下を記述するとエラーが沢山出るのですが、なぜでしょうか
#include <iostream>
int main()
{
int year;
cout << "西暦?";
cin >> year;
cout << "次の行に表示する数が0ならオリンピックは開催されます"
<< end1 << year % 4 << end1;
return 0;
}

506 :デフォルトの名無しさん:03/03/09 13:19
ライブラリの仕様を理解していないから

507 :デフォルトの名無しさん:03/03/09 13:28
デバッグのやり方を全く知らないので、ビルドしたらすぐ実行して、おかし
かったらソースを眺める、ということをしています。
もしとんでもないコードを書いていたら、(開発環境の)OSごと落ちる
、ということはあるんでしょうか?
もしあるなら、なんでもすぐ実行するのは危険なんでしょうか?

508 :デフォルトの名無しさん:03/03/09 13:28
>>499
他人が作ったライブラリでもCから始まるクラスはよく見るよ。
MFCだけのものではない。

>>505
>>494

509 :デフォルトの名無しさん:03/03/09 13:29
>>507
君には「設計」という言葉をあげよう

510 :デフォルトの名無しさん:03/03/09 14:16
>>507
>落ちる、ということはあるんでしょうか?
よくある。書いてるソースの内容にもよるが。
>危険なんでしょうか?
頭に超がつくほど危険だ。
君は終了条件が存在しないループを書いたことはあるかい?

511 :499:03/03/09 14:21
>他人が作ったライブラリでもCから始まるクラスはよく見るよ。
>MFCだけのものではない。

あるのですか・・Cってなんだろう。まさかC++のCじゃあるまいしなぁ

512 :デフォルトの名無しさん:03/03/09 14:31
>>499
>Cから始まるオブジェクトや関数
>>508
>Cから始まるクラス

513 :デフォルトの名無しさん:03/03/09 15:20
>>511
classのC

514 :デフォルトの名無しさん:03/03/09 17:07
>>505
#include <iostream>の下に「using namespace std;」と書け。

515 :sage:03/03/09 17:48
質問があります。
MFC AppWizardを使ってダイアログベースのプロジェクトを作り、リソースエディターでエディットボックスのオブジェクトを作ります。

ここからが質問ですが。
ビルド&実行し、作成したエディットボックスにフォーカスを当てて、リターンキーを押すとプログラムが終了しまう動作が理解できません。
幸いエディットボックスの複数行(M)にチェックをいれると終了しなくなりますが、その理由がわからず夜も眠れません。
よろしくおねがいします。

516 :デフォルトの名無しさん:03/03/09 17:51
>>515
昼寝しる。

517 :デフォルトの名無しさん:03/03/09 18:02
>>515
キーワード

デフォルト OnOK

518 :デフォルトの名無しさん:03/03/09 18:51
.NET Studioを使ってます。
ダイアログエディタでコンボボックスを配置したんですが
ドロップダウンの高さを指定する方法がわかりません。
VC++6.0だと枠のサイズを変えようとすると
コントロールそのもののサイズではなく
ドロップダウンのサイズが変更されるようになっていたように
思うんですが・・・
なんで起動させて▼ボタンを押してもドロップダウンしません・・・



519 :デフォルトの名無しさん:03/03/09 19:01
>>518
デザイン画面で▼ボタンをクリックした後、枠に表示されるハンドル(■)を
ドラッグしてみなされ。

520 :518:03/03/09 19:14
速レスありがとん!できました、できました。
実は2ちゃんブラウザ開発中だったりする。
このコンボボックスは書き込みの名前入力用。
ゾヌみたいに一度入力した物はドロップダウンで出てくるようにと。

521 :デフォルトの名無しさん:03/03/09 19:23
SDKで作っています。
ポップアップウインドウを作成したのですが、
タスクバーに16×16のアイコンが表示されません。
どなたか表示させる方法知っている方がいたら教えてください。

522 :デフォルトの名無しさん:03/03/09 19:59
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | <  >>505 end1って何
   \|   \_/ /  \_________________
     \____/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′

523 :デフォルトの名無しさん:03/03/09 20:00
>>505

end1をendlに変えてみなさい

524 :デフォルトの名無しさん:03/03/09 20:15
end>>1;

525 :デフォルトの名無しさん:03/03/09 20:46
前、スプラッシュウィンドウの出し方を聞いたヤシですが、
その後検索して調べた結果、ヤパシは分かりませんですた。

詳しく教えていただけないでしょうか?

526 :デフォルトの名無しさん:03/03/09 20:55
MFCをお使いであれば、以下の操作で簡単に導入することができます。
[プロジェクト]メニュー
[プロジェクトへ追加] - [コンポーネントおよびコントロール]コマンド
[Visual C++ Components]フォルダの[スプラッシュスクリーン]を
選んで挿入ボタンを押す。


っていうのが検索でひっかかったよ
メーリングリストとかにも色々書かれてるからそっちもマメに見るべし

527 :515:03/03/09 23:37
>>517
>デフォルトのプッシュボタン = OnOK
ありがとうございました。

528 :デフォルトの名無しさん:03/03/09 23:38
>>526
親切にありがとです。
自分は、MFC使ってないのでどうにもなりませんでした。
しかも.netなのでこれがあるか分かりません。
6.0の友達に試してもらったら、ちゃんと動いたとのことです。

単純なAPIでビットマップを表示することはできないんですかね?(画面のセンター)

529 :デフォルトの名無しさん:03/03/09 23:54
何か最近VSが飛びやすい。しかもただ飛ぶだけじゃなくてOSごと逝ってしまう。Win2000なのにな。
何でだろ?

530 :デフォルトの名無しさん:03/03/09 23:55
俺も前にスプラッシュスクリーン朝鮮してみたけど挫折した・・・。
という事で>>528には自前でダイアログ作ってそこにビットマップを張りつける方法を提案する。

531 :デフォルトの名無しさん:03/03/10 00:25
>>526
.netでそれなくなったんだよね。
それともおいらが見つけられないだけ?

>>530
初心者は良く手抜きしてモーダルにすると泣きそうになってるが、
モードレスダイアログ使えばめちゃめちゃ簡単だな。

532 :デフォルトの名無しさん:03/03/10 00:27
モードレスダイアログでタイマー指定して一定時間たったら消す……と。

533 :デフォルトの名無しさん:03/03/10 01:02
>>498
行番号表示は、
VisualC++.NETでは可能。オプションとカスタマイズのあたりを探してくれ。
VC6は覚えてない。できたような気もするが…

>>531
コンポーネントギャラリー無いねえ。困ったもんだ。

534 :デフォルトの名無しさん:03/03/10 02:38
ファイルをD&Dしてファイル情報がリストに表示できる物を作ろうとしています。

CformViewを基本クラスにしてリストビューを貼り付けました。
ウィンドウのサイズを変更したら貼り付けたのがいっしょに大きくならないです。

これはどうすればよいのでしょうか?
基本クラスの選択を間違えたのでしょうか?
ウインドウサイズ変更の際に何か関数を呼ばなくてはいけないのでしょうか?

よろしくお願いします。

535 :534:03/03/10 02:51
age

536 :デフォルトの名無しさん:03/03/10 03:32
> ウインドウサイズ変更の際に何か関数を呼ばなくてはいけないのでしょうか?
そうです。以上

537 :デフォルトの名無しさん:03/03/10 04:29
つーかCFormViewじゃなくてCListView使えって話だろうな

> 基本クラスの選択を間違えたのでしょうか?
そうです。以上

538 :デフォルトの名無しさん:03/03/10 04:38
VC++6.0、WINXP、MFCの環境です。リストボックスから選んだ項目を削除する
にはどういったコーディングをすればよいのでしょうか?御教授お願いします。

539 :デフォルトの名無しさん:03/03/10 04:40
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/wara/

540 :デフォルトの名無しさん:03/03/10 08:22
>>538
http://www.google.com/search?hl=ja&ie=Shift_JIS&q=MFC+CListBox+%8D%ED%8F%9C&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

541 :デフォルトの名無しさん:03/03/10 11:34
Visual c++ 6.0はなんとかビルト、コンパイル、実行ができたのですが、
Visual Stdio Netになったら、プログラムを書いたはいいけど、
どうやって実行させたらいいか、もう皆目分かりません。
ヘルプ読んでも日本語が分からなくって。。。
どなたか教えて下さい!!!

542 :デフォルトの名無しさん:03/03/10 11:39
> ヘルプ読んでも日本語が分からなくって。。。
Hmmmmmmm. Well, can you understand English?


543 :デフォルトの名無しさん:03/03/10 11:41
日本語が分からないということは外国人の方ですか?
英語のヘルプを読むか日本語学校へ通うことをおすすめします。

544 :デフォルトの名無しさん:03/03/10 11:41
>>542
ケコーン

545 :デフォルトの名無しさん:03/03/10 12:20
日本語訳がおかしいとか考えつかないんだろうなぁ。
外国人著者 日本語訳の技術書なんて読まないんだろうなぁ。

546 :デフォルトの名無しさん:03/03/10 12:35
低学歴は英語のヘルプを読もうなんて考えつかないんだろうなぁ。

547 :デフォルトの名無しさん:03/03/10 13:06

つか、日本語版なのに英語ドキュメントやめれ。



548 :デフォルトの名無しさん:03/03/10 13:10
訳がおかしかろうと概要さえつかめれば問題はないと思うが
どのみち使ってみないことには説明通りに動作するか信用できないし

549 :sage:03/03/10 14:12
C++でWindowsを組む時に
プロジェクト→設定→リンク
で、libを追加したよね?
何だっけ?ド忘れしてしまった。

550 :デフォルトの名無しさん:03/03/10 14:19
>>549
winmm.libのことか?

551 :549:03/03/10 14:23
>>550
そう!それだ!ありがとう!
あと、何かあったけ?

552 :デフォルトの名無しさん:03/03/10 14:37
ソース配るとき面倒だから、#pragma comment(lib, "winmm.lib" ) 埋めとけ

553 :549:03/03/10 14:41
>>522
わかった、ありがとう!

もう1度最初からやり直すか…。

554 :デフォルトの名無しさん:03/03/10 15:57
VC6でビルド完了した時に鳴る音が鳴らなくなってしまったんだけど
何でだろう?
設定変えた覚えも無いし・・・

555 :デフォルトの名無しさん:03/03/10 15:58
>>531
ガッ

556 :デフォルトの名無しさん:03/03/10 15:59
>>554 コンパネのサウンドの設定見てみた?

557 :554:03/03/10 16:14
>>554
他のソフトの音は問題なく出るんだけど
VCだけがなぜか出ないんですよ
2年くらいそんなこと無かったのに・・・

558 :デフォルトの名無しさん:03/03/10 16:33
だから、サウンドの設定はどうなってるのよ。
オーディオの設定じゃないよ。

559 :554:03/03/10 17:15
>>558
おっしゃる通りコンパネで設定したらOKでした。多謝!

560 :デフォルトの名無しさん:03/03/10 17:40
ビルド完了すると、どんなあえぎ声が聞こえてくるように設定したのですか?

561 :デフォルトの名無しさん:03/03/10 17:42
「ウエー・ハッハッハッハッハー」

562 :デフォルトの名無しさん:03/03/10 17:49
>>560
「キタ━━━━━━\(゚∀゚)/━━━━━━ !!!!!」

563 :デフォルトの名無しさん:03/03/10 18:02
>>560
高田由美のあえぎ声

564 :デフォルトの名無しさん:03/03/10 18:37
満場一致で 561 が支持されますた

565 :デフォルトの名無しさん:03/03/10 19:07
「ぬるぽ」

566 :デフォルトの名無しさん:03/03/10 19:18
  ___   ガスッ
 |___ミ      ギビシッ
   .||  ヾ ミ 、      グシャッ
   ∩_∧/ヾヽ
   | ,| ゚∀゚). .|  |;,      ゲシッ
  / ⌒二⊃=|  |∵.
 .O   ノ %`ー‐'⊂⌒ヽ  ゴショッ
   ) ) ) )~ ̄ ̄()__   )
  ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_( >>565

567 :デフォルトの名無しさん:03/03/10 19:30
ビルド完了のたびに殴らにゃいかんのか・・・

568 :デフォルトの名無しさん:03/03/10 19:47
>>563
激しく萎える。

569 :デフォルトの名無しさん:03/03/10 20:03
565 が一番萌えるということでよろしいか?

570 :デフォルトの名無しさん:03/03/10 22:02
Visual C++ 6のstd::vectorに
メモリリークがあるとの噂を聞いたのですが(デマかもしれませんが)、
真偽を確かめられる方はいませんか?
私には現在VC++環境がなく確かめられません。

噂の出どころ:
http://ex.2ch.net/test/read.cgi/net/1046884734/739n-


571 :デフォルトの名無しさん:03/03/10 22:14
>>570
バグの総合商社のVC++6付属STLをSTLPortに差し替えずにそのまま
使ってる香具師の気が知れません。

572 :570:03/03/10 22:38
続伸です。メモリリークを疑った根拠は
「BoundsChecker使ってて検出され」たというものだそうです。

一方、「codeguard」では検出されても問題なかったという話もあるようです。
(下記の「2003/02/11 23:55.06」の項)
ttp://www.zeroscape.org/cgi-bin/mb/mblog.cgi?channel=Programming&page=1636-1936

>>571
危ないのですか?
上に書いた通りの話だったのでシロかもと思っていたのですが…。

簡単に検索してみたところ、確かにきなくさい話もあるみたいですね。
ttp://n76cd-01p05.ppp11.odn.ad.jp/old/06750.html

何のバグかは不明ですが、STLにバグがあるのは間違いないようですね。
(具体的な記述のあるらしい英文の方はまだ確認できていません。
ベクトルを大きくするときに失敗する、と書いてあるようでかなり怪しそうですが…)
ttp://www.mtl.t.u-tokyo.ac.jp/~nminoru/pc/mfc.html

573 :デフォルトの名無しさん:03/03/10 23:15
.NETでは直っているのだろうが
ttp://www.dinkumware.com/vc_fixes.html


574 :あいぼん:03/03/11 01:53
VC++で作成したファイルの逆コンパイルの仕方が知りたいです。

575 :初心者:03/03/11 07:10
#define DECLARE_HANDLE(x) typedef WORD x って定義されてますよね。
ハンドル型はDECLARE_HANDLEマクロを使ってWORDの別名定義にされてる。
なのにどうしてsizeof(HANDLE)の結果は4バイトになるか、解かる方いませんでしょうか..

576 :デフォルトの名無しさん:03/03/11 08:28
winnt.h:

#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif


577 :デフォルトの名無しさん:03/03/11 08:51
マウスの座標を教えてください

578 :デフォルトの名無しさん:03/03/11 10:20
マウスは常に動かしているので何とも言えません

579 :デフォルトの名無しさん:03/03/11 10:32
>>574
ナニしたいか知らんが、クラック目的なら割れサイト回ってソフトICE使え。

580 :デフォルトの名無しさん:03/03/11 11:06
マウスの座標を取得する方法を教えてください

581 :GetCursorPos:03/03/11 11:16
>>580
578に尋ねろ



582 :デフォルトの名無しさん:03/03/11 11:25
>>581
ありがとうございます
こんなに人に優しくされたのははじめてです・゚・(ノД`)・゚・

583 :デフォルトの名無しさん:03/03/11 15:24
コンソールアプリてなんでしょ?
MFCとかテンプレの基本的な差別ができません。
解説されてる所ないでしょうか。

584 :デフォルトの名無しさん:03/03/11 15:56
差別はいけません

585 :デフォルトの名無しさん:03/03/11 16:04
無差別格闘流

586 :デフォルトの名無しさん:03/03/11 18:56
>>580
何をしたときのマウスの座標を聞いたほうが。
いごかしたとき、とかおさえつけたときとか。

587 :デフォルトの名無しさん:03/03/11 19:13
マウスの囲碁化?

588 :デフォルトの名無しさん:03/03/11 20:29
>>586
おちつけ
そして日本語で書いてくれ

589 :デフォルトの名無しさん:03/03/11 20:32
外国の方からアドバイスが寄せられたようです

590 :デフォルトの名無しさん:03/03/11 20:56
>>586
>おさえつけたとき
ワラタ

591 :デフォルトの名無しさん:03/03/11 21:37
>>586
ワラタ

592 :デフォルトの名無しさん:03/03/11 22:57
double型をMessageBox(?)で表示する場合のコーディングを教えて
下さい。

593 :デフォルトの名無しさん:03/03/11 23:01
char szText[100];
double lfValue = 3.141592;
sprintf(szText, "%lf", fValue);
MessageBox(szText);
(未確認)

594 :デフォルトの名無しさん:03/03/11 23:36
MFCなら CString::Format() だね

595 :デフォルトの名無しさん:03/03/11 23:38
デスクトップを親ウィンドウにして作ったモードレスダイアログを
タスクバーから消す方法ある?

596 :デフォルトの名無しさん:03/03/11 23:55
>>595
&= ~WS_EX_APPWINDOW

597 :デフォルトの名無しさん:03/03/12 00:09
WS_EX_〜は拡張ウィンドウスタイルですか・・・
明日試してみます。サンクス。

598 :あいぼん:03/03/12 00:42
>>579
勉強目的でソースが知りたいんです。

599 :デフォルトの名無しさん:03/03/12 00:43
http://kotubunet.hp.infoseek.co.jp/king.htm

600 :デフォルトの名無しさん:03/03/12 00:53
C++ .NET用の入門書として
何かいいものあれば教えてくれませんか?

http://www.amazon.co.jp/exec/obidos/ASIN/479731768X/qid=1047397176/sr=1-1/ref=sr_1_2_1/249-5797932-5526724
を本屋でパラパラ見た限りでは、あまり使えなさそうでした。
用途は新入社員用の入門テキストです。
VC6用の本なら山ほどあるんですけどね。

601 :デフォルトの名無しさん:03/03/12 01:27
マルチうぜ
推薦図書スレ逝け
こんな奴に教えられる新入社員かわいそ

602 :デフォルトの名無しさん:03/03/12 01:32
>>600
http://www.microsoft.com/japan/info/press/JPN_ViewMsPress.asp?Book_id=879&list_id=1

603 :デフォルトの名無しさん:03/03/12 07:30
M$の例の24冊なんてどう?

604 :デフォルトの名無しさん:03/03/12 17:14
char a[10];
strcpy(a, "abcdefghi\0");
としますよね。
それで、
a == "defghi\0"
という風にaの最初を3つ分ずらすにはどうするのでしょうか?

605 :デフォルトの名無しさん:03/03/12 17:44
>>604
std::copy(a+3, a+strlen(a)+1, a);

606 :デフォルトの名無しさん:03/03/12 17:51
>>604
文字列の最後のnulは自動で付くから自分で付ける必要はない

607 :デフォルトの名無しさん:03/03/12 18:05
&a[3]

608 :デフォルトの名無しさん:03/03/12 18:50
for(int i=0;i<7;i++) a[i]=a[i+3];


609 :デフォルトの名無しさん:03/03/12 19:10
ありがとうございます。

610 :デフォルトの名無しさん:03/03/12 21:21
stdクラスって何だ。
どういう思想または理由で存在しているのだ。
簡潔に教えれ。

611 :デフォルトの名無しさん:03/03/12 21:28
そんなクラスはない

612 :デフォルトの名無しさん:03/03/12 22:15
VCで常駐プログラムを作ったんだけど、
時々exe自体が壊れてしまい、起動しなくなることがあります。
理由の見当がつくかたおしえてください。
2000台に1台の割合くらいで発生しているようだ。
OSはたぶん95系だと思う。

613 :デフォルトの名無しさん:03/03/12 22:25
本当にくだらなさすぎる&的外れっぽい質問なんですが・・・・・

MSのVC++とBorlandのC++builder

この両者に違いはありますか?
前者にはヴィジュアルのVがついてますがどっちも同じように見えます。
ぶっちゃけ、ボタン置いたりしてプログラム書く辺り同じような気がするのですが。
大学で後者を使ってますが、家でもやりたいのでどちらを買うか迷ってます。

恥ずかしい質問ですがネタではありませんので・・・よろしければお答えください。

614 :デフォルトの名無しさん:03/03/12 22:27
ずれてるし∧||∧

できれば使い慣れた(そこまで使いこなせないけど)後者を使いたいのですが
VC++とC++って違うものなのかそこのところさっぱり分からず困ってしまいました。


615 :デフォルトの名無しさん:03/03/12 22:47
>>614
恐らくスレ違いでしょうが、評判を聞くとBCCの方が上なようです。
(ANSI C++への準拠がBCCの方が上らしい。)

当方VC++しか触ったことがありませんが
VC++でも特に不自由ないです。

全然、参考になりませんな。スマソ。

616 :デフォルトの名無しさん:03/03/12 22:50
stdクラスはないんか。
んでは噂に聞いたテンプレートか。
テンプレートって便利ー?

617 :デフォルトの名無しさん:03/03/12 22:51
>>613
VC++はVBほど簡単じゃない(全然Visualじゃない)ですが、
C++BuilderはVB並に簡単です。

618 :デフォルトの名無しさん:03/03/12 22:52
>>616
stdは名前空間です

619 :デフォルトの名無しさん:03/03/12 22:58
Builderの方が、いろんなコンポーネントなど簡単に実装できます。Delphiライクです。
欠点はexeのサイズが異常にでかくなる(当然スタチィックリンクでの配布の話)ことと、
シェアが圧倒的に少ないのでソース再配布時にネックになるかも知れないこと。
VCはいろいろ面倒です。でも一般企業ではほぼVC使ってると思います。


620 :デフォルトの名無しさん:03/03/12 22:59
スタチィックはねーだろ、とセルフ突っ込み。

621 :デフォルトの名無しさん:03/03/12 23:17
「性的結合」と100人中72.8人は思っただろうな…
でも、書いちゃうやつはおれひとり〜

622 :614:03/03/12 23:21
レスくれた方々、こんなくだらない質問に答えてくださって本当にありがとうございます。・゚・(ノД`)・゚・。
将来はSE志望なので、慣れるまで大変そうだけど頑張ってVC++で勉強したいと思います。

623 :デフォルトの名無しさん:03/03/13 12:02
オフスクリーンがうまくいかないんで、誰か教えてください。
まず、CStatic の派生クラスを作ってそのクラスの中で
裏画面を作成 → 表画面に転送ってな感じにしようと思ってるんだけど、
うまくいかないよー。 プログラムは以下!
// DrawGraph.h
class CDrawGraph : public CStatic
{
private:
HDC hMemDC,h;
HBITMAP hBmp,hOldBmp;
HPEN hPen,hOldPen;
HBRUSH hBrush,hOldBrush;
HRGN hRgn;
RECT rect ;
COLORREF m_PenColor , m_BackColor;
public:
SIZE m_Size ;

624 :続き:03/03/13 12:03

// DrawGraph.cpp
BOOL CDrawGraph::CreateGraph(RECT rect2) {
rect = rect2 ;
hMemDC = CreateCompatibleDC(NULL); // HDC のハンドル取得
hBmp = CreateCompatibleBitmap(hMemDC,m_Size.cx,m_Size.cy);// ビットマップの作成
hOldBmp = (HBITMAP)SelectObject(hMemDC,hBmp);
hPen = CreatePen(PS_SOLID,1,RGB(0,255,0));//ペンの作成
hOldPen = (HPEN)SelectObject(hMemDC,hPen);
hBrush = CreateSolidBrush(RGB(255,0,0));//ブラシの作成
hOldBrush = (HBRUSH)SelectObject(hMemDC,hBrush);
hRgn = CreateRectRgn(0,0,rect.right,rect.bottom);
SelectObject(hMemDC,hRgn );
if(IntersectClipRect(hMemDC,0,0,rect.right,rect.bottom) == ERROR)
MessageBox("失敗");
int iRes = FillRgn(hMemDC,hRgn,hBrush);
if(iRes == 0)
MessageBox("失敗");
if(FillRect(hMemDC,&rect,hBrush) == FALSE) // 背景を塗る つもり
MessageBox("失敗");
return(FALSE);
}
BOOL CDrawGraph::ToDraw(double dblData) {
CClientDC DC(this);
BitBlt(DC,0,0,rect.right,rect.bottom,hMemDC,0,0,SRCCOPY);
SelectObject(hMemDC,hOldPen); //ペンを戻す これは必要?
SelectObject(hMemDC,hOldBmp); //ビットマップを戻す これは必要?
return(FALSE);
}


625 :続き:03/03/13 12:04
んで、呼び出し方
//-------------------------------------
// main.h
//------------------------------
#include"DrawGraph.h"
DrawGraph m_Graph;
//-------------------------------------
// main.cpp
//------------------------------
DDX_Control(pDX, IDC_GRAPH, m_Graph );

void Cmain::main()
{
RECT rect ;
m_Graph.GetClientRect(&rect);
m_Graph.CreateGraph(rect);
m_Graph.ToDraw(100); //引数は将来拡張のため
}
void CMainteCurve::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case S_TIMER:
m_Graph.ToDraw(100);

break;
}
CDialog::OnTimer(nIDEvent);
}
こんな感じ。
だれかわかる人教えて!

626 :修正:03/03/13 14:18
>>624の5行目くらいの
hBmp = CreateCompatibleBitmap(hMemDC,m_Size.cx,m_Size.cy);// ビットマップの作成

hBmp = CreateCompatibleBitmap(hMemDC,rect.right,rect.bottom);// ビットマップの作成

にかえてちょ。
m_Sizeは使ってなかったよ・・・。

これでよろしく!


627 :デフォルトの名無しさん:03/03/13 14:57
rectなのに幅を出さないで座標を指定しているようだが、
左上は0,0固定なのか?

628 :デフォルトの名無しさん:03/03/13 15:21
昔、DOSのソフトを作っていたのですが、WindowsプログラムでもFileの読み書き(アスキー)は
fstreamでするのですか?

629 :デフォルトの名無しさん:03/03/13 15:36
何を使うかは勝手なので好きなようにやればいい

630 :DirectX beginner:03/03/13 15:39
DirectXでゲームを作っているのですが
音を多重再生させるために音ごとにスレッドを立ち上げ
それぞれで ::CoCreateInstanceで
DirectSound8インスタンスを作ろうかと思っています。
(一つのアプリがいくつもスレッドを立ち上げそれぞれで
DirectX インスタンスを作成することになります)

こうするとプログラムが簡単になるのですが
この方針は問題ありますでしょうか?
ご指南よろしくおねがいします。

631 :デフォルトの名無しさん:03/03/13 15:42
>>627
ん?どゆこと?

一応左上は0,0固定です。

幅は出す方法あるの?

632 :デフォルトの名無しさん:03/03/13 15:45
↓話にならん。帰れ。

633 :デフォルトの名無しさん:03/03/13 16:02
↑俺のこと???

634 :デフォルトの名無しさん:03/03/13 16:02
↑そうお前だ。

635 :デフォルトの名無しさん:03/03/13 16:04
ぬるぽ

636 :デフォルトの名無しさん:03/03/13 16:08
>>623
単純に絵の出すプログラムじゃないの?
いや、OnPaint()に対応していないし、
OnTimerはいつセットしているの?
Main()で一発描くだけだと、一瞬描かれて
消去されているかもよ。

637 :デフォルトの名無しさん:03/03/13 16:12
HINSTANCE hInstance;
hInstance = (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
↑ダイアログプロシージャで上の行がエラー(警告)になります。

エラー(警告)内容:
   warning C4312: '型キャスト' : 'LONG' からより大きいサイズの 'HINSTANCE' へ変換します。

警告といっても気になるので、どこを修正すればいいでしょうか?
・・・これだけの情報では足りないでしょうか?

638 :デフォルトの名無しさん:03/03/13 16:19
>>636
FillRectで書いた四角を表示したいんです。
んで、OnPaintだと処理が遅くなるので使わないことにしてます。

OnTimerですが、実際にはmain()の一番下で呼んでいますが、
ここに書くの忘れました。すみません。

SetTimer(S_TIMER , 100 , 0);

S_TIMER は 1 です。

この状態で、DCに直接書けば当然書けます。

よろしくお願いします。

639 :デフォルトの名無しさん:03/03/13 16:31
>>637
ほらよ
#pragma warning(disable:4312)

640 :デフォルトの名無しさん:03/03/13 16:42
>>639
なんか強制的ですが、たしかになくなりました。
ありがとうございました。

641 :デフォルトの名無しさん:03/03/13 16:49
>>636
m_Graph.CreateGraph(rect);
でビットマップ作成した後、
WindowのMapModeとかView,Windowを変更してないよね。
とりあえず、速度は無視してOnPaintでBitBltを使って描けるか試してみたら。
あと、TopとLeftを0,0と仮定しているけど大丈夫だよね、変えてないよね。

642 :事故解決:03/03/13 16:49
なんかhMemDC = CreateCompatibleDC(DC); // HDC のハンドル取得
hBmp = CreateCompatibleBitmap(DC,m_Size.cx,m_Size.cy);// ビットマップの作成
hOldBmp = (HBITMAP)SelectObject(hMemDC,hBmp);
hPen = CreatePen(PS_SOLID,1,RGB(0,255,0));//ペンの作成
hOldPen = (HPEN)SelectObject(hMemDC,hPen);
hBrush = CreateSolidBrush(RGB(255,0,0));//ブラシの作成
hOldBrush = (HBRUSH)SelectObject(hMemDC,hBrush);
hRgn = CreateRectRgn(0,0,rect.right,rect.bottom);
SelectObject(hMemDC,hRgn );
if(IntersectClipRect(hMemDC,0,0,rect.right,rect.bottom) == ERROR)
MessageBox("失敗");
int iRes = FillRgn(hMemDC,hRgn,hBrush);
if(iRes == 0)
MessageBox("失敗");
if(FillRect(hMemDC,&rect,hBrush) == FALSE) // 背景を塗る つもり
MessageBox("失敗");
(ちょこっと改造)を
BOOL CDrawGraph::ToDraw(double dblData) {
CClientDC DC(this);
の下に入れたらできたよ。
でも動きがちょっと不安定。

643 :デフォルトの名無しさん:03/03/13 17:38
リストビューコントロールにエクスプローラのようにファイル一覧を
表示させる方法がわかりません。
リストボックスならDirでできるようですが...

644 :デフォルトの名無しさん:03/03/13 18:35
ピクチャーコントロールにビットマップ(リソース上)を表示するにはどうすればいいですか?

645 :デフォルトの名無しさん:03/03/13 18:57
>>643
もしかして勝手にやってくれると思ってる?

646 :デフォルトの名無しさん:03/03/13 19:04
プロパティシートにアクセラレータつけて、
コントロールに普通の(Ctrl+とかじゃない)ASCIIキーを割り付けたいんだけど、
フォーカスがエディットコントロールとかにあるときはアクセラレータが効かずに入力できる
ようにしたいんです。
一応、こんなコーディングで出来たんですが、もっとスマートな方法ありますか?
BOOL CMySheet::PreTranslateMessage(MSG* pMsg)
{
CWnd* pFocus;
if((pFocus = GetFocus())) {
int nId = pFocus->GetDlgCtrlID();
if( nId != IDC_EDIT1 &&
nId != IDC_EDIT2 &&
nId != IDC_EDIT3 &&
nId != IDC_EDIT4 ) {
if(TranslateAccelerator(*this, m_hAccel, pMsg)) return true;
}
}
return CPropertySheet::PreTranslateMessage(pMsg);
}


647 :643:03/03/13 19:37
>>645
自動でないことはわかっています。
それをする関数がわからないのです。

648 :デフォルトの名無しさん:03/03/13 20:23
>>647
そんな関数なんてあるのか?

649 :デフォルトの名無しさん:03/03/13 20:59
#include <iostream>
using namespace std;
int main()
{
cout << abc

return 0;
}
VC++.netでビルドすると
error C2065 定義されていない識別子
error C2593 operator 曖昧
error C2143 構文エラー
となってしまうのですが、何が足りないのでしょうか。

650 :デフォルトの名無しさん:03/03/13 21:01
;

651 :デフォルトの名無しさん:03/03/13 21:07
abcって何者だよ?

652 :デフォルトの名無しさん:03/03/13 21:20
>>649
g++では通るな

653 :649:03/03/13 21:20
すいません。間違えました。
#include <iostream>
using namespace std;
int main()
{
cout << "abc";





return 0;
}
error LINK 2019 未解決の外部シンボル
fatal error LINK 1120 外部参照が未解決です。
と出て本文にはフォーカスがかかれないのですが、どういうエラーなのでしょうか?

654 :649:03/03/13 21:21
すいません。フォーカスがかからないの打ち間違えです。

655 :デフォルトの名無しさん:03/03/13 21:23
リンクエラー
必用なライブラリをリンクしていないとか

656 :デフォルトの名無しさん:03/03/13 21:53

フォーカスがかかれないってどういう意味?
キーボードフォーカス?



657 :デフォルトの名無しさん:03/03/13 22:06
MFCアプリウィザードで基本クラスをCFormViewで作成しますた。
これを実行すると、クライアント領域がへこんでいまつ。
へこまないようにするにはどうやるのでつか?

658 :デフォルトの名無しさん:03/03/13 22:37
>>643
IShellView

659 :デフォルトの名無しさん:03/03/13 22:57
>>657
説明するの面倒だから見て。
ttp://techtips.belution.com/ja/vc/0059/

660 :デフォルトの名無しさん:03/03/14 00:55
>>未解決の外部シンボル

関数の名前を打ち間違えていることが圧倒的に多い。

661 :デフォルトの名無しさん:03/03/14 01:03
>>660
マルチを相手にする事は無い。しかも割れっぽいし。

662 :デフォルトの名無しさん:03/03/14 01:08
割れ?

663 :デフォルトの名無しさん:03/03/14 09:53
>>646もおねがいしますよぅ。

664 :デフォルトの名無しさん:03/03/14 10:32
質問!!
VC++で、在中させて、例えばメール欄に1と打つと
sageと自動的に出てくるようなプログラムを作りたいのですが…
文字をキーボード入力から出力させるインクルードファイルと
識別子がよくわかりません!!
教えてください〜!

665 :デフォルトの名無しさん:03/03/14 10:37
>在中させて
>在中させて
>在中させて

666 :デフォルトの名無しさん:03/03/14 12:00
常駐させて全てのウィンドウに適用させんの?
そんなんじゃまくせーだろ。
つーかそれデバイスレベルの問題だし、質問の意味がワケワカメ。

667 :664:03/03/14 12:30
すみません、ど素人なもので(゚д゚;)
自分的にはキーボードマクロのようなものが作りたいわけなのです…。
自分の決めた文字列をうつと、その文字列が来ると用意しておいた、
自分の打ちこみたい文字列を読みこんで、エディットボックスに、
それを表示させたいのですが…。


668 :デフォルトの名無しさん:03/03/14 12:40
仮名漢に単語登録するのではいかんのか?

669 :664:03/03/14 14:25
自分で作ってみたかったんれす(;д;)
プログラマ素人から一皮むけたいのれす(;д;)

670 :デフォルトの名無しさん:03/03/14 16:24
>>669
Windows アプリの駆動方式を丸呑みに把握しろ。
そうすれば素人からは脱却したと言えるし、そもそも 664 のような質問を人に
しなくなる。

671 :デフォルトの名無しさん:03/03/14 19:03
>>664
色々考えてみたんだが、方針としてはエディットコントロールを
サブクラス化すればいいんかねぇ。

具体的には、SetClassLong() で、エディットコントロールのウインドウ
プロシージャのアドレスを独自のプロシージャにフックすれば
いいのかな?



672 :デフォルトの名無しさん:03/03/14 19:55
>>669
人から聞いてやっている奴が一皮剥けるかよ( ´,_ゝ`)プッ

673 :デフォルトの名無しさん:03/03/15 00:19
>>672
まだ自分で素人といってるんだから長い目で見てやれよ。
これをきっかけにプログラミングの楽しさを知って天才プログラマーになるかもしれんやんけ。

674 :デフォルトの名無しさん:03/03/15 02:13
--====・====--    --====・====--

675 :デフォルトの名無しさん:03/03/15 03:14
恥ずかしながら、変なところではまってしまいましたので、質問です (VisualC++6.0)

VC++でダイアログベースのクラスをClassWizardで作って保存して、やれやれと思ったらクラス名の先頭に”C”を付けるのを
忘れていることに気が付きました・・・
いつもなら、クラス追加前に保存しているので、また修正前からやり直すことが出きるのですが、今日に限って一気に修正し
てクラス追加後に保存しちゃったので後戻りできませんでした

その後、ソース中のクラス名に手動で”C”を追加したものの、ClassWizardで見るとクラス名に”C”が付いていません・・・
どうすれば、ClassWizardで表示されるクラス名を修正することができるのでしょうか

676 :デフォルトの名無しさん:03/03/15 03:23
>>675
その習慣ヤメレバ?
ファイル名とクラス名は同じにする

677 :デフォルトの名無しさん:03/03/15 03:28
>>675
*.clwを消す

678 :675:03/03/15 03:38
>>677
サンクスです
それでクラス情報が全て消えるようですね ぐぐって、ついさっき知りました

ここのサイトも参考になりました AAA→CAAA一括置換後、ClassWizard開くという方法でも修正できるらしい・・・!?
ttp://www.page.sannet.ne.jp/mtoga/lang/cv/bih-m_04.htm

>>676
クラス名にはCを付けよと言われてるので・・・ ClassWizardでクラス作成する時に限って”C”を良く付け忘れます

679 :デフォルトの名無しさん:03/03/15 03:56
ハンガリー人の書き方ってまだ根強く残ってるのか・・・
たとえばCascadeって言う名前のクラスをClassWizardで作って
ファイル名がascadeとかになった時には腹が立った。
(設定画面でちゃんとファイル名の欄も変えればできるけど)
それ以来ClassWizardでクラス作ることなくなったなあ
あの暗号のようなIncludeGuardもうっとうしいし

680 :デフォルトの名無しさん:03/03/15 04:00
>>679
自作のWizard使え

681 :デフォルトの名無しさん:03/03/15 04:15
うって変わってVC.NETはシンプルなコード吐いてくれる
MSも方針転換かな

682 :デフォルトの名無しさん:03/03/15 04:20
>>681
悪くいうと、あちこち機能が削られてる。

683 :デフォルトの名無しさん:03/03/15 10:56
C言語はjavaやらと違ってハンガリアン使うメリットあんまりないよな。
関数宣言の仮引数が多少見やすいくらいだ。
てゆーかMFCとかで採用してる型名を先頭につけるだけ、
ってのは本物のハンガリアンとは違うんだろうが・・・

684 :デフォルトの名無しさん:03/03/15 11:11
アジア人ならモンゴリアンだろ

685 :デフォルトの名無しさん:03/03/15 11:55
CreateWindowEx でWS_VISIBLEを指定して作成し、
後からVISIBLEを消す(コントロールを消す)にはどうすればよいのでしょう?
何となく、SendMessageな感じですが使い方が。

686 :デフォルトの名無しさん:03/03/15 12:57
>>685
SetWindowLongはどうですか?


687 :デフォルトの名無しさん:03/03/15 12:59
ShowWindow(SW_HIDE)で消えないの?
いや知らんけど。

688 :デフォルトの名無しさん:03/03/15 13:35
SetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE) & ~WS_VISIBLE)

689 :デフォルトの名無しさん:03/03/15 14:38
ありがとうございます。
消すことはうまくいきました。
ところが、
#define IDC_EDIT_RIGHT WM_USER+1

HWND hwnd;
hwnd= ::GetDlgItem(hDlg, IDC_EDIT_RIGHT);
CreateWindowEx(..);
これがうまくいきません。
CreateWindowExで作ったコントロールはこの方法では取得できないのでしょうか?



690 :デフォルトの名無しさん:03/03/15 14:51
カンケーないけど。

#define IDC_EDIT_RIGHT WM_USER+1
↑なぜIDにWM_USERが出てくるの?w


691 :デフォルトの名無しさん:03/03/15 14:54
>>689
GetDlggItemの返り値がNULLになるの?



692 :デフォルトの名無しさん:03/03/15 14:55
>>689
CreateWindowEx で作ったってことは、ID指定のところで
IDC_EDIT_RIGHT を指定して作成したのでしょうか?



693 :デフォルトの名無しさん:03/03/15 14:56
そうです。指定して作ったのですが、NULLが帰るのです。

694 :デフォルトの名無しさん:03/03/15 15:04

同じ意味ですが、

hwnd = GetWindowLong(hDlg, GWL_ID);

ではどうですか?



695 :デフォルトの名無しさん:03/03/15 15:06
>>694
あ、これはちょっとナシ。(w


696 :デフォルトの名無しさん:03/03/15 15:21
とりあえず CreateWindowEx の記述をコピペしてみたら
どうでしょうか?



697 :デフォルトの名無しさん:03/03/15 16:23
CreateWindowEx(0, "EDIT", "",
WS_VISIBLE | WS_CHILD | WS_VSCROLL | PBS_SMOOTH | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN,
170, 40, 265, 100, hDlg, (HMENU)IDC_EDIT_RIGHT, NULL, NULL);

698 :デフォルトの名無しさん:03/03/15 16:36
>>689
> #define IDC_EDIT_RIGHT WM_USER+1
どうでもいいことだけど、なんか違和感がある。

699 :698:03/03/15 16:37
あ、激しく外出か。スマソ。

700 :デフォルトの名無しさん:03/03/15 16:58
>>697
実際に試してみようかと思ったけど、面倒でやめた。(w
MFC AppのプロジェクトだとMFCすぐ使えるんだけど、
Win32 Appのプロジェクトで使うのに、何をinclude したら
いいのかわからんかった。(汗
MessageBoxでリンカエラー出るし・・。

MSDNちゃんと読めば書いてあるのかな?



701 :デフォルトの名無しさん:03/03/15 17:12
>>697
MFCプロジェクトで試してみましたが、ちゃんとハンドルが
返って来るみたいですよ。
子IDは 1234 で試してみました。
子IDを数値にして試してみてはどうでしょう?


702 :デフォルトの名無しさん:03/03/15 17:51
ほんとだ!定数だと動きますね。
WM_USERって何なんでしょう?

703 :デフォルトの名無しさん:03/03/15 18:59
>>702
#define IDC_EDIT_RIGHT (WM_USER+1)
こうしないと駄目なんじゃないの?


704 :デフォルトの名無しさん:03/03/15 19:06
なるほど

705 :デフォルトの名無しさん:03/03/15 19:09
>>701ですが。

>>703
当たりっぽい。

#define SUB_WINDOW_ID (WM_USER+1)
これは問題なし

#define SUB_WINDOW_ID WM_USER+1
これはダメ

でした。

カッコがいるみたいですね。どっちも
エラーはでないけど、後者はどういう風に
解釈されるんだろ?



706 :デフォルトの名無しさん:03/03/15 19:21
マクロは置き換えだからな。
交換法則が成り立つ場合は、いいがそうでない場合はとんでもない結果に
なることがある。…っと C の基本をもっともらしく言ってみるテスツ。

707 :デフォルトの名無しさん:03/03/15 19:36
もはや算数です

708 :デフォルトの名無しさん:03/03/15 20:06
>>705
SUB_WINDOW_ID * 2
とした場合に(ありえないけど)
WM_USER + 1 * 2
と展開されてしまうので、( )をつけるのは常識だと思っていたのだが。

709 :デフォルトの名無しさん:03/03/15 20:11
というかいまどき定数にdefineを使うな、と。

710 :デフォルトの名無しさん:03/03/15 20:21
じゃあconst?

711 :デフォルトの名無しさん:03/03/15 20:29
InternetAPI で、FTPクライアントを作成しています。Winsockは使っていません。
特定のファイルのパーミッションを知りたいのですが、方法がわかりません。
InternetAPIの中にそういうAPIかなにかがあるのでしょうか?
もし無い場合、FtpCommandでなんとかならないでしょうか?



712 :デフォルトの名無しさん:03/03/15 20:33
IDならdefineでいいでしょ。

どうでもいいことだけどWM_USERはユーザ定義メッセージに使う値だからね。
IDとメッセージとごっちゃになってるだろ。
たぶん基本的に混乱してると思うよ。

713 :デフォルトの名無しさん:03/03/15 20:33
>>711
FTPプロトコルでわかるはずだが・・・

714 :デフォルトの名無しさん:03/03/15 20:35
>>711
RFCを読むことをオススメします

715 :デフォルトの名無しさん:03/03/15 20:38
RFCなんて素人が読んでわかるものじゃない。
そんなもの読まないように。
基本的なFTPコマンドを解説サイトなどで調べればわかる。
あとはMFCのFTPクラスにまかせっきりで大体のことは出来る。

この板は好んで難しいこと言いたがるヤツいるから惑わされないようにね。

716 :デフォルトの名無しさん:03/03/15 20:56
俺は玄人だが、読んでも分からなかった<(`^´)>

717 :デフォルトの名無しさん:03/03/15 20:58
オモシ

718 :デフォルトの名無しさん:03/03/15 20:59
定数はdefineではなくconstで定義すべき

719 :デフォルトの名無しさん:03/03/15 21:00
>>718
const信者死ね

720 :デフォルトの名無しさん:03/03/15 21:02
>>714
RFCにはlsで出力される形式については記述されていない
よってパーミッションを得る方法はRFCを読んでも無駄
読んでいないのがバレバレな無知をさらす暇があったら
お前がRFCを読め

721 :デフォルトの名無しさん:03/03/15 21:03
>>720
こりゃ一本取られましたな。ははは・・・・
死ね(怨)

722 :デフォルトの名無しさん:03/03/15 21:18
春祭りですか?

723 :デフォルトの名無しさん:03/03/15 21:20
RFCを読むことをオススメします


724 :デフォルトの名無しさん:03/03/15 22:05
>>718
C++になってから、よく言われるけど、どうも
まだ慣れないんだよね。^^;

>>719
なんか注意点・欠点なんかあります?



725 :デフォルトの名無しさん:03/03/16 00:08
constってメモリ食うのか?一応変数だからさ。どうなのよ?

726 :デフォルトの名無しさん:03/03/16 00:14
どんな定義をしようとどこかのメモリーを食わなければ存在できない
どこにとられるかは処理系依存

727 :デフォルトの名無しさん:03/03/16 00:26
普通に考えて、constは一箇所、defineは出現箇所分メモリ食うんでないの。

728 :デフォルトの名無しさん:03/03/16 00:27
#define VER "0.04e"の代わりとして、

const char* VER = "0.04e";
const char[] VER = "0.04e";

どっちが(・∀・)イイ?

729 :デフォルトの名無しさん:03/03/16 00:27
>>727
コンパイラが勝手に最適化するんじゃないの?

730 :デフォルトの名無しさん:03/03/16 00:52
ツールダイアログのエディットボックスで
リターンキーを押した時の処理を追加したいのですが
やり方がわかりませぬ.おせえぇて

731 :デフォルトの名無しさん:03/03/16 00:52
>>729
constはわからんけど、defineを最適化ですか?
つーと、1箇所にメモリを確保してポインタで参照してくれる???
副作用でそうだけどなー、たとえば、変な所で値を置き換えられたりして。。。
constは、書き換え禁止だからそんなことは無いけど。

732 :質問:03/03/16 00:58
簡易株価チャートを作ってみたいのですが、ヤフー等からデータを取込んだりする方法は
どこで学んだら(調べたら)いいのですか?

733 :デフォルトの名無しさん:03/03/16 01:29
文字列が半角の数字だけで構成されているかどうかを調べるいい方法
ないですか?

734 :デフォルトの名無しさん:03/03/16 01:31
「フフフフ」ってなんですか?VC++のバグでしょうかね?
VC++6.0ですSPは当ててませんが 当てると直りますかね?

735 :デフォルトの名無しさん:03/03/16 01:32
>>732
まずソケットを使ってインターネットからHTMLファイルを
ダウンロードして見れ。できたらまた戻ってこい。


736 :デフォルトの名無しさん:03/03/16 01:33
>>731
むしろ逆。
#define の場合、文字列リテラルを除いて即値に展開される事が多いので、そもそも
書き換える事が不可能。
const の場合は、プログラムミスにより const を外したポインタアクセスを行う
殊によって書き換えができる。
もちろん、const でも可能な限り即値展開される。

737 :デフォルトの名無しさん:03/03/16 01:33
>>732
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=MFC+%83%5C%83P%83b%83g&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

738 :デフォルトの名無しさん:03/03/16 01:36
>>727
const の実装が 1 箇所だったとしても、そこには結局アドレス指定してアクセス
するので、整数の場合はコードサイズは変わらない事が多いし、何より遅い。

739 :デフォルトの名無しさん:03/03/16 01:39
>>734
それはお前のバグだ。
VC++ はデバッグモードでコンパイルすると、スタック変数は 0xCC で、
malloc 領域は 0xCD で塗りつぶし、それらが未初期化のまま使われている
事をプログラマに伝える。

参考スレ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
http://pc.2ch.net/test/read.cgi/prog/1045831669/

740 :デフォルトの名無しさん:03/03/16 01:41
>>733
すぐに思いつくのは、for で回して isdigit()

741 :デフォルトの名無しさん:03/03/16 02:15
>>733
STL使えるなら isdigit だな

742 :デフォルトの名無しさん:03/03/16 02:24
>>733
if ( strspnp( pszNumber, "0123456789" ) == NULL )
{
//全て半角数字
}

743 :デフォルトの名無しさん:03/03/16 03:01
> strspnp

ナニソレ?

744 :デフォルトの名無しさん:03/03/16 03:07
>>727
マクロはコンパイル時に展開されるんとちゃうん?
だからマクロを挿入したとこにマクロの内容が書かれるのと同じと思ってる
ちがうん?

745 :デフォルトの名無しさん:03/03/16 03:25
SpanIncluding

746 :デフォルトの名無しさん:03/03/16 05:27
>>744
その通り。
即値が埋め込まれるだけ。

747 :デフォルトの名無しさん:03/03/16 07:11
>>744
>>736

748 :742:03/03/16 11:04
>743
_strspnp ダタ

749 :デフォルトの名無しさん:03/03/16 12:29
チェックボックスのチェックを検出すなるにはいかにせよと?

750 :デフォルトの名無しさん:03/03/16 12:39
>>749
GetCheck()

751 :デフォルトの名無しさん:03/03/16 12:39
>>749
そのくらいMSDN読めよ・・・

752 :デフォルトの名無しさん:03/03/16 12:43
われSDKつかわんとほっす。

753 :デフォルトの名無しさん:03/03/16 12:49
>>752
お前より沢村のほうがマシだ

754 :デフォルトの名無しさん:03/03/16 13:01
>>753
だれ?

755 :デフォルトの名無しさん:03/03/16 13:57
当方、VC++を始めたばかりで、なおかつC++言語の超初心者です。
本を購入しようと思っているのですが、
「これならわかるC++―挫折しないプログラミング入門」
 と
「プログラミング実習 VC++入門編」
のどちらを購入したほうがよろしいでしょうか?あえて、両方という意見はナシで。
ご返答お待ちしております。

756 :デフォルトの名無しさん:03/03/16 13:57
>>752
SendMessagge()

757 :デフォルトの名無しさん:03/03/16 13:59
パラメーターは誰かな?
あんな幼稚なやつにSendMessaggeのパラメーターは理解されないに10円。

758 :デフォルトの名無しさん:03/03/16 13:59
>>755
Cは一通り分かるの?

759 :755:03/03/16 15:21
>>758
あー、すみません。誤解を招くような書き方をしてしまって。
C言語のほうもわかりません。あと、上記に挙げた本以外で初心者におすすめの
C++言語入門書があれば教えていただきたいな…と。

760 :デフォルトの名無しさん :03/03/16 16:23
構文エラー : 識別子 'classX' がシンタックスエラーを起こしました。
というエラーが出てどうすればよいか分かりません。
どうすればいいんでしょうか?

761 :デフォルトの名無しさん:03/03/16 16:28
実行中のEXEの名前を与えると、そのプロセスのハンドルを返す関数
つくってください お願いします。

762 :デフォルトの名無しさん:03/03/16 16:32
>>760
クラスの定義の最後にセミコロンをつけ忘れていないかどうか調べる。

763 :760:03/03/16 16:34
>>762
セミコロンはついてるから他に原因がありそうなのですが・・・。
他の原因は無いでしょうか?

764 :デフォルトの名無しさん:03/03/16 16:40
>>763
そのクラスの上の方で struct / class を定義してるならそこをチェキ。

765 :760:03/03/16 16:48
>>764
クラスの上で定義しているのは無いので、違う原因がありそうです
関数の定義のところで
'func' : オーバーロードされたメンバ関数が '<Unknown>' にありません。
とかいうエラーが出ているのですが関係ありますか?

766 :デフォルトの名無しさん:03/03/16 16:52
>>765
cppファイルに

void A::hoge() [
}

のA::を書き忘れてるとか

767 :デフォルトの名無しさん:03/03/16 17:00



    ソ   ー   ス   晒   せ   よ





768 :760:03/03/16 17:04
cppでは
void CAppDoc::func(classX* x){}
としているのですが、何が悪いのやら・・・。

769 :デフォルトの名無しさん:03/03/16 17:10
関数の定義と実装で、引数が違うだけだろ

770 :760:03/03/16 17:16
ヘッダーファイル入れてるかと思ったら間違ってた・・・。

771 :デフォルトの名無しさん:03/03/16 17:32
>>ALL
こんな初歩的なコンパイルエラーの段階で回答することないんじゃないの?

772 :デフォルトの名無しさん:03/03/16 19:57
>>756
えらいすんまへん。SendMessageおしえてくだせー。


773 :デフォルトの名無しさん:03/03/16 19:57
サブクラス化したコンボボックスで、CBN_DROPDOWN のハンドラ内で、アイテ
ムを動的に挿入しています。
for(...) {
 combo->AddString(...);
}

で、リリースビルドにすると挿入したはずのアイテムが、なぜか挿入されてない
んですよ。いろいろ悩んで、ふと思い立ち
for(...) {
 combo->AddString(...);
 Sleep(0);
}
とやったらうまくいくようになった。Sleep(0) を入れると何が起こるのか(完全に
ひらめきなので根拠なし)、そしてなぜリリースビルドのときだけ不具合が出るの
か。解説きぼんぬ。メッセージキューとか、その辺の関係でつか?

774 :デフォルトの名無しさん:03/03/16 20:41
>>772
クリックイベントをオーバライドして、ハンドリングしたいウィンドウへ
ユーザ定義メッセージ飛ばせ、ということだと思うが。
てゆーか、最初の質問の意図がよくわからんわ。

775 :デフォルトの名無しさん:03/03/16 20:49
>>774
あ、それもあるのですが、GetDlgItemのような感じで
GetCheck(HWND, ... );
のような感じの命令はないでしょうか?


776 :デフォルトの名無しさん:03/03/16 21:13
先日画像処理の参考書の通りにプログラムを制作していたのですが、
マウスの反応を見る"Mouse.c"という簡単なプログラムをコンパイル後、
ビルドをするとリンクエラーが起きます。
コンパイル時には問題ないし、プログラムもミスがないか再三点検
したのですが、原因不明のまま悶々とした一夜を過ごしてしまいました。

マシンのOSはWindows XPで、Visual Studio ver4.0です。

今夜こそは安眠したいので、教えてください。

777 :デフォルトの名無しさん:03/03/16 21:20
>>776
どういうエラーが出るのか書かないで、
原因がわかる人いると思ってんの?
そんなヤツいたら神だ。

778 :デフォルトの名無しさん:03/03/16 21:27
画像処理の参考書のプラットフォームは?
「X68000で学ぶ画像処理」とか本のタイトルに書いてない?

779 :デフォルトの名無しさん:03/03/16 21:41

ところでコントロールのサブクラス化ってクラスウイザードなんかで
自動化できるもんですか? いままでは自分でウインドウプロシージャ
をプロトタイプから手打ちしてたんですが、皆さんもこんな感じ?



780 :776:03/03/16 21:41
>>778
「C言語で動かす実践画像処理」という参考書でしたが、”詳しくは
専門の参考を参照のこと”という記述が、、、。

>>777
そうですね、なにせそれすらも忘れてしまう素人なので。
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/mouse.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
という表示ですが。

781 :デフォルトの名無しさん:03/03/16 21:57
>>780
たまたま同じ本持ってたんで見てみたけど、特に
問題になる記述はなかった。リンカのオプションの
問題じゃないのかな。

プロジェクトはWin32アプリですか?

782 :名無し@沢村:03/03/16 21:58
>>775
BM_GETCHECK

783 :デフォルトの名無しさん:03/03/16 22:07
ダイアログバーいくつか作ってメインフレームの上端にくっつけているのですが
ダイアログバー1の下にダイアログバー2がくっついてる状態になります
最初から1の右に2をくっつけたい場合はどういうふーにすればいいですか

784 :名無し@沢村:03/03/16 22:18
>>783
ヌヒよ、適当に答えるが CFrameWnd::DockControlBar() の3番目の引数を指定してはどうか?

785 :デフォルトの名無しさん:03/03/16 22:23
>>775
IsDlgButtonChecked

786 :デフォルトの名無しさん:03/03/16 23:38
ふー

787 :デフォルトの名無しさん:03/03/16 23:39
ぷー

788 :デフォルトの名無しさん:03/03/17 00:03
ありがとうございます。

789 :デフォルトの名無しさん:03/03/17 18:59
Win32 Applicationでプロジェクトを作成し
リソースエディタでダイアログを作成したのですが
このダイアログのソースやヘッダファイルはどこにあるのですか?
ビルドしてもそのようなファイルが出来た形跡は無いのですが。

790 :デフォルトの名無しさん:03/03/17 19:02

リソースエディタは *.rc を作成。
テキストエディタで覗いてみて。



791 :デフォルトの名無しさん:03/03/17 20:40
dNode *dList::find_Node(const dNode &searchNode,dNode *pStart=NULL,
int (*compare)(const dNode*,const dNode*)
=dNode default_compare);
;' が、識別子 'default_compare' の前に必要ですというエラーがでるんですけど
どうすればいいんですか?


792 :デフォルトの名無しさん:03/03/17 20:47
default_compareの前のdNodeが不必要なのでは

793 :791:03/03/17 20:53
エラーがまだ四つエラーがあります。
default_compare' : 定義されていない識別子です。
default argument' : 'int' から 'int (__cdecl *)(const struct dNode *,const struct dNode *)' に変換することはできません。(新しい動作 ; ヘルプを参照)


794 :791:03/03/17 20:58
void dList::sort(int (*compare)(const dNode*,const dNode*)
=dNode_default_compare)
c:\my documents\vc\kuji\dlist2.h(42) : error C2065: 'dNode_defalut_compare' : 定義されていない識別子です。
c:\my documents\vc\kuji\dlist2.h(42) : error C2440: 'default argument' : 'int' から 'int (__cdecl *)(const struct dNode *,const struct dNode *)' に変換することはできません。(新しい動作 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
これも教えてください。

795 :デフォルトの名無しさん:03/03/17 21:03
エラーメッセージのとおりだと思うけど・・・

int default_compare(const dNode *a,const dNode *b)
{
return /*aとbを何かで比較し結果を返す*/;
}
を用意してみれば?

796 :デフォルトの名無しさん:03/03/17 21:20




#include<iostream.h>

797 :デフォルトの名無しさん:03/03/18 00:54
デバッグするときに「ステップイン」というのがありますが、これって標準ライブラリの関数の
中まで追わないようにすることって出来ますか?今は、printfなんかが出てくるたびに
カーソル行まで実行を使って回避してるんですが大変です・・・。

798 ::03/03/18 01:23
MSDNをみてもいまいち書いてることがわからないんですが
わかるようになるにはどういう方法がありますか?

799 :デフォルトの名無しさん:03/03/18 01:25
>>798
C/C++について、最低限の知識を持つ。

800 :デフォルトの名無しさん:03/03/18 01:45
>>798
某に乗り換えろ
MSDNよりはわかりやすい

801 :デフォルトの名無しさん:03/03/18 02:16
>>797
ステップオーバーってなかったっけ

802 :797:03/03/18 10:32
>>801
あぅ、気づかなかった(恥
こんなことで苦労していた自分って・・・。なにはともあれ、ありがとうございました。


803 :デフォルトの名無しさん:03/03/18 15:06
InternetAPIでFTPクライアントを作っています。
あるタイミングで、特定ディレクトリ内のファイルのパーミッションが欲しいのですが、
どうもこれらのAPIにはパーミッションを取得する便利な方法がないようなので
(知ってる方いましたら教えてください)
FTPコマンドを発行してパーミッションを得ようと考えました。

で、

stat ディレクトリ名

のような形で、取得した文字列
***-status of **:
total ***
-rw-r--r-- ************
-rw-r--r-- ************
...
...
*** End of Status

のような形なので3行目から10バイトずつ各行、最後の行を除いて
格納して利用しようと思ったのですが、

どのFTPサーバでも必ずこれは通用するのでしょうか?
ちょっと、VCの話題とずれますが、いつでも同じ(改行や表示順序含む)
規格で帰ってくるのでしょうか?

または、もっと素敵なパーミッションの取得方法をご存知の方いらっしゃいましたら
ご教授ください。FTPの知識はほとんどありません。。。




804 :デフォルトの名無しさん:03/03/18 17:33
同じ形式である保証はない
古いデーモンならファイル名しか返してこないことすらあり得る
ffftpのソースを見ることをすすめる
数々の形式に一つ一つ対応させているのが分かる

805 :デフォルトの名無しさん:03/03/18 18:19
どっかで見たような質問・・・

806 :デフォルトの名無しさん:03/03/18 22:06
int型のポインタをmallocして、値を代入しようとすると、
debugモードの場合、「ハンドルされていない例外が発生しました」って出てしまいます。
releaseモードだと問題ないのですが。。。。
こういう場合ってどうすればよいのでしょうか?
どなたかご教授願います。

807 :デフォルトの名無しさん:03/03/18 22:23
あなたが何らかのプログラムミスを起こしている。
リリースモードで厳格なチェックが行われていない事や、デバッグ用ルーチンを
含んでいない事が原因で問題が見えなくなっている可能性が高い。
デバッグモードでステップ実行をし、代入しようとしている先が本当に不正でないか
目で確かめる事。

これ以上の回答は、呈示している情報があまりにも少ないので無理。
もっと判断が欲しいなら再現する必要最低限のコードを晒せ。

808 :Name_Not_Found A:03/03/18 22:51
Cの作成ツールであるVisual Studio.netを購入しようと考えてます。(今のところ)
ほか良いツール有りますか?

809 :デフォルトの名無しさん:03/03/18 22:55
>>808
目的によって答えが違うと思われ。

単に勉強目的なら、BCCフリー版で十分かと。

810 :デフォルトの名無しさん:03/03/18 22:57
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  http://saitama.gasuki.com/hiroyuki/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

811 :デフォルトの名無しさん:03/03/18 22:59
先生!マルチですか?

812 :デフォルトの名無しさん:03/03/18 23:20
どうしてもポインタが理解できません

本を何度よんでみても、説明してくれてるサイトを見ても
良く理解できません

頭悪いのは判ってます こんな僕が理解出来るようにどなたか説明
していただけないでしょうか?

お願いします。ネタじゃないです

813 :デフォルトの名無しさん:03/03/18 23:28
猫でもわかるプログラミング

814 :デフォルトの名無しさん:03/03/18 23:35
>>813
猫でもわかるプログラミングってなんですか?


815 :デフォルトの名無しさん:03/03/18 23:38
>>813
いや、あそこはポインタに特に詳しいと言う訳では・・・

>>814
ぐぐれば出てくると思うけど、上に書いた通り。
漏れは申し訳無いけどポインタで躓いた経験が無いから、適当なサイトが紹介できない。
本では、前橋って人の 「完全ポインタ理解」 あたりがよく持ち出されるみたい。
邪論極論も併せ持つトンデモ本という話もあるけど、ようわからない。

816 :デフォルトの名無しさん:03/03/18 23:39
>>815は釣りかな

817 :デフォルトの名無しさん:03/03/18 23:45
釣りか、優雅だな

818 :デフォルトの名無しさん:03/03/18 23:46
>>812
ガンガレ!
マシン語の勉強をするといいかもしれん。
「初めてのマシン語」みたいな本無かったかな。

819 :デフォルトの名無しさん:03/03/18 23:49
Cのポインタを理解できないようではきっとマシン語勉強してもつまづくよ。

820 :812:03/03/18 23:50
>>815

色々ありがとうございます。
猫は検索してみます。

書き方悪かったみたいなので、書き直します。

#include <stdio.h>

main()
{
int *p, i=10;

p = &i;
printf("%d\n",*p);

 これなんですけどpにiのアドレスを代入して
 printfで*pってやると変数iのデータが表示される理屈は
 わかりますが、なんでこんな事するのですか? 
  
 何度もすいませんよろしくお願いします。



821 :デフォルトの名無しさん:03/03/18 23:51
>>820
それはポインタの性質を知るためのサンプルでしょ。
実用性はない。

822 :デフォルトの名無しさん :03/03/19 00:02
C++ の標準ライブラリには、配列、リストなどの基本的なデータ構造を取り扱うための汎用クラステンプレートが定義されている。クラステンプレートとは、任意のデータ型等を引数としてクラスを作成する機構と考えてほしい。
なお、標準ライブラリ中のこれらのテンプレート群を総称して、標準テンプレートライブラリ(STL: Standard Template Library)と呼ぶこともある。
標準ライブラリに含まれる汎用配列クラステンプレートは "vector" という名前であり、それが定義されているヘッダファイル名は <vector> である。例えば、次のように書くことで、任意の要素数の double 型データを要素とする配列オブジェクトを作成することができる。


823 :812:03/03/19 00:02
>>820

すいません言葉足らずで、ポインタを実用する場合というのはどのような
場面なんでしょうか?
すいません何度も

824 :Name_Not_Found A:03/03/19 00:03
>>809
どうも。
実際にプログラムを作成します!

825 :812:03/03/19 00:12
>>821様でした すいません

>>818様 ありがとうございます。早速取り寄せてみます。

826 :デフォルトの名無しさん:03/03/19 00:15
>>820
ただのサンプルだからで使い方としては下の下、論外だ
入門書じゃわりとはじめのほうでポインタを教えているが本当の使い方は教えてくれない
データ構造とかアルゴリズムとかソートとかそのあたりに興味がでてきたら便利だと実感できると思う
構造体も覚えたら単方向リストでも作れ

理解を深めたいなら前橋ポインタ本がお勧めだ
詳細は推薦図書スレに譲る(テンプレのHPから探し出せる)

827 :812:03/03/19 00:23
>>826

ありがとうございます。
聞いたことが無い単語いっぱいありがとうございます。
レス、メモ帳にコピペさしていただきます。

>>ただのサンプルだからで使い方としては下の下、論外だ
>>入門書じゃわりとはじめのほうでポインタを教えているが本当の使い方は教えてくれない

こういうことなのですね。

>>データ構造とかアルゴリズムとかソートとかそのあたりに興味がでてきたら便利だと実感できると思う
わかりましたまずここ理解してみます。

>>構造体も覚えたら単方向リストでも作れ
そしたらこれ作ります。

お付き合いいただきました皆様本当にありがとうございました。
精進してまいります。

818様 はじめて読むマシン語 これですかね?



828 :デフォルトの名無しさん:03/03/19 00:27
>>812
関数の呼び出しのメカニズムはわかっているかな?
つまり、スタックの概念とか、値渡し、参照渡しとか。
関数をコールして引数に答えを返してもらう場合、
参照渡し(ポインタ渡し)にならざるを得ない。
printf()とscanf()の引数の違いも参考にしてみるといい。

829 :デフォルトの名無しさん:03/03/19 00:28
ポインタを値渡ししているんですが。

830 :デフォルトの名無しさん:03/03/19 00:29
そういう話をしてもわからないレベルだと思われ

831 :デフォルトの名無しさん:03/03/19 00:31
>>812
818です。
そうそう、その本で真面目に全て理解する必要はないけど、
メモリのある1バイト(0〜255の数値)をみたとき、それが、
アドレス、命令コード、データ、アスキーコード(文字コード)であるのかの区別が
つくようにして欲しい。



832 :812:03/03/19 00:34
>>828

ご丁寧にレス頂きありがとうございます。
またご指導頂き誠にありがとうございます。

関数の入り口は理解しているつもりですので更なる理解を求め
早速教本片手にご指導頂いた点を重点にやってみます。

833 :デフォルトの名無しさん:03/03/19 00:34
>>829
printf("%d\n",*p);
の*pは、ポインタの先っちょの値(=10)を渡しているのでポインタを渡しているわけではない。
printf("%d\n",p);
なら、ポインタを渡していることになり、この場合はiのアドレスが10進数で表示される。
また、
printf("%d\n",&i);
も同じ結果が表示される。
まあ、いきなりは無理なので一通り勉強したあとでもう一度このレス見て
理解できるようになることを祈る。
ガンガレ。


834 :829:03/03/19 00:39
>>833
そんな当たり前のことを言われてもどう返答してよいのやら・・・

ここはVC++スレか・・・なら参照もありか。

835 :812:03/03/19 00:39
>>818

レスありがとうございます。
ご指導いただいた内容理解しました。
BOLにあったので発注してご指摘頂いた内容理解してみたいと思います。

重ね重ねありがとうございます。

お付き合い頂いた皆様誠にありがとうございました

836 :デフォルトの名無しさん:03/03/19 00:57
>>829
829=812と思ってた。スマソ。

ってことで、833は、812へのレスでつ。

837 :デフォルトの名無しさん:03/03/19 01:26
>>804

返答ありがとうございます。
一般的にはがんばって対応させてるんでしょうか?
InternetAPIで、ファイルの一覧や、それらの作成日時だとか更新日時だとかサイズだとか
一通りわかるのにパーミッションだけは取得できないんですね。
何か他にいい方法はないのでしょうか・・・

838 :デフォルトの名無しさん:03/03/19 08:49

「はじめて読むマシン語」はどうもZ80で説明してる
みたいなんで、どうせ買うなら「はじめて読む8086」
がいいと思われ。



839 :デフォルトの名無しさん:03/03/19 15:16
実行ファイルのアイコンに手持ちの画像を使ってみたいんですが
VC++のアイコンエディタでは画像を読み込んでくれる機能はないようです。
どうしたらいいのか誰か教えてくれませんか?

840 :デフォルトの名無しさん:03/03/19 15:25
>>839
画像をアイコンに変えるソフトを使えばいーじゃん。
ベクターとかに逝けばいくらでもあるだろ。

841 :839:03/03/19 20:55
無事疑問が解決しました。
すごくくだらない質問をしてしまいましたね。すみません。

842 :デフォルトの名無しさん:03/03/19 21:45
チェックリストボックスを使いたいのですが、どうすればいいのでしょうか?
ぐぐったら、MFCのCCheckListBoxの使い方をちょこちょこ教えてくれるページは
出てきたんですが、SDKではどうやればいいのかさっぱりわかりません。
MFCでの解説ページで得た知識と、普通のリストボックスを使うときの要領で
えいやっとコード書いてみてもさっぱり動かずというか、表示すらされず……。(つwT)

843 :デフォルトの名無しさん:03/03/19 23:01
>>842
とりあえず初心者向けの解説本とか買って、読んでみようよ。
てゆーかさ、そんなレベルで無理にSDK使う理由はなに?

844 :デフォルトの名無しさん:03/03/20 00:17
>>842
とりあえず、「猫でもわかる」でぐぐるってみる。

845 :デフォルトの名無しさん:03/03/20 01:43
リストビューにドロップをしたいです。
WM_DROPFILESというのが、ドロップされると送られるらしいのですが、
リストビューの場合はどのようにキャッチしたらいいのでしょう?


846 ::03/03/20 02:23
>845
サブクラス化して
WM_DROPFILESのハンドラを作成する。
他に方法あるかもしれないけど知りません。

847 :名無し@沢村:03/03/20 02:27
>>846
MFCならばCOleDropTarget

848 :デフォルトの名無しさん:03/03/20 02:30
>>846
>>847

ありがとうございます。非MFC環境です。
サブクラス化というのをやったことがなかったので気が付きませんでした。
リストビューをサブクラス化したらWM_DROPFILESが受け取れました。

本当初心者な質問で申し訳ありません。ありがとうございました

849 :デフォルトの名無しさん:03/03/20 08:03
Visual C++ 6.0用に作成されたカスタムウィザードって、
Visual C++ .NETからも利用出来るのですか?
(ちょっと店を廻ってみたら、.NETしか売ってね〜)

850 :842:03/03/20 08:06
>>843
解説本は一応持ってますし、ラジオボタン、エディットボックス、リストボックス、
リストビュー、コンボボックスなどは問題なくSDKで使えます。
でも、チェックリストボックスは本にもWebにも解説が見つからないので
どうにもわからないんです。
MSDNライブラリのリストボックス系のメッセージもそこそこ
目を通したのですが、それらしいものが見つかりませんでした。

>>844
猫でもわかるには普通のリストボックスの解説はしてありますが、
チェックリストボックスの解説はしてないんです。
というか、猫でも解説してなかったからここで質問してるわけでして……><

851 :デフォルトの名無しさん:03/03/20 09:50
>>850
LVS_EX_CHECKBOXESを入れればできると思う




852 :デフォルトの名無しさん:03/03/20 10:15
>>850
APIバイブル2が参考になるかも。
あと、猫でものTreeView編も参考に。

853 :851:03/03/20 11:09
リストビューじゃなかったのね

854 :デフォルトの名無しさん:03/03/20 11:41
>>850
VBの参照設定のリストボックスを見た限りだとオーナードローをしてました。


855 :デフォルトの名無しさん:03/03/20 13:36
プログラムの絶対パスを知る方法ってあります?
自分(実行中のプログラム)の位置を絶対パスで知りたいのです。

856 :デフォルトの名無しさん:03/03/20 13:48
GetModuleFileName(GetModuleHandle(NULL), buf, sizeof(buf))

857 :名無し@沢村:03/03/20 13:48
>>855
>>203

858 :デフォルトの名無しさん:03/03/20 15:00
>>854
オーナードローっていまいちよく分からん。
あれって何?

859 :855:03/03/20 15:03
でけました。ありがとうございます!!!

860 :通りすがりの名無しさん:03/03/20 15:51
>>858
自分で描画するという事だ。(自分とはコントロールの所有者の事だ)

実装手順の概要は
・リストボックスにLBS_OWNERDRAWFIXEDのスタイル設定
・WM_DRAWITEMのメッセージを受け取ったらDRAWITEMSTRUCTの内容を元に描画
を行えば良い。

チェックリストボックスを実現したければ、好きな所にチェックボックスの絵を
描けば良い訳だが、オーナードローは描画を置き換えるだけなので、チェックの
切り替えも自分で制御しなければならない。要するに面倒くさいという事だ。

後は自分で調べて判らなければ大人しくMFCでも使う事だな。

861 :デフォルトの名無しさん:03/03/20 17:09
>>850
APIバイブル2、見直したけどあまり参考にならなさそう。
というか、ListViewでは難しそう。
いっそ、子供のいないTreeViewで実装したら。

862 :デフォルトの名無しさん :03/03/20 17:34
VisualC++.NET Standardをインストしたんだけど・・・
肝心のVC++が無いんだが・・・

863 :776:03/03/20 19:30
>>781

Win32のプロジェクトでもう一度つくり直してみますね。
ありがとうございました。


864 :デフォルトの名無しさん:03/03/20 19:38
プログラミングとは直接関係ない質問になっちゃうのですが、
VisualC++.NETの立ち上げ時の画面を初期(インストール時)状態に戻すにはどうしたら良いですか?


865 :デフォルトの名無しさん:03/03/20 20:00
>>864
ツールバーでも無くなったの?


866 :デフォルトの名無しさん:03/03/20 21:18

.NETって何なんですか?
コンパイラは同梱されてないの?



867 :デフォルトの名無しさん:03/03/21 00:51
>>862=>>866
プロジェクト作って「ビルド」するんだよ。
マニュアルまたは教則本読め。

868 :デフォルトの名無しさん:03/03/21 00:59
MFCで以下のような形でドラッグを実現していました。

COleDataSource dataSource;
dataSource.CacheGlobalData(CF_HDROP, hDrop);
DROPEFFECT result = dataSource.DoDragDrop(DROPEFFECT_COPY|DROPEFFECT_MOVE);

なにも考えず、以前書いたソースを、今作っている非MFCでの環境で使おうとしたところ
COleDataSource はMFCのもののようなのでうまくいきません。

非MFC環境で同じことをするにはどうしたらいいのでしょうか?

869 :850:03/03/21 01:41
ありがとうございます。オーナードローとリストボックスでぐぐったら、
適切なサンプルが出てきました。なるほど、こういう風にやるんですね。



メンドクサクテヤッテランネェ……_| ̄|○


オトナシクリストビューニLVS_EX_CHECKBOXESイレマス…… | λ............

870 :デフォルトの名無しさん:03/03/21 06:41
>なにも考えず、以前書いたソースを、今作っている非MFCでの環境で使おうとしたところ
>COleDataSource はMFCのもののようなのでうまくいきません。
当たり前だボケ
OLE ドラッグ ドロップ でググれ

871 :デフォルトの名無しさん:03/03/21 13:12
DestroyWindow()を呼ぶと破棄されるウィンドウが親ウィンドウに対して
WM_PARENTNOTIFYを送信するらしいのですが・・・
あるViewクラスを親としてDialogをCreate()し
そのDialogのOnCancel()でDestroyWindow()を呼ぶようにしました。
これでDialogを閉じるとDestroyWindow()が呼ばれるようになったのですが
親のViewクラスのOnParentNotify()関数が呼ばれません。
DialogのプロパティのNo Parent Notifyはfalseにしてあります。
なぜOnParentNotify()が呼ばれないんでしょうか?

872 :Help me:03/03/21 18:10
VC++で、
タスクトレイに常駐するプログラムを作成したいのですが。
タスクトレイに格納する方法までは分かりました。
で、問題なのが、たとえば他のアプリを使用中にF2キーを押したとします。
そのとき、常駐プログラムがF2キーを押されたと判断する方法がわかりません。
方法はSDK、MFCのどちらでも構いません。


873 :デフォルトの名無しさん:03/03/21 19:03
>>872
タイマーで監視するとか…駄目かね?

874 :名無し@沢村:03/03/21 19:09
>>873
SetWindowsHookEx()

875 :デフォルトの名無しさん:03/03/21 19:29
>>874
漏れも>>872に興味があって、その辺かなとは思ったのですが、
どのタイプのHookプロシージャを定義すべきなのでしょうか?

WH_KEYBOARDなんかは特定のアプリケーションのメッセージ
キューのみをHookするような感じですが。



876 :名無し@Del厨:03/03/21 20:06
RegisterHotKey()

877 :デフォルトの名無しさん:03/03/21 20:19
>>874
おーい。レスの相手違うよー(藁
しかしこんなのがあったのか。なるほろ…

878 :デフォルトの名無しさん:03/03/21 20:39

この辺のドキュメント、英語なんだよね。
なんとかして欲しいわ。



879 :デフォルトの名無しさん:03/03/21 21:07
英語も読めんのか……

880 :デフォルトの名無しさん:03/03/21 21:27
雰囲気

不陰気

881 :デフォルトの名無しさん:03/03/21 21:51
>>879
日本語版なんだから翻訳すればいいのにさー。
日本人に対するいじわるにしか思えない。

大学入試の英語偏差値は60ちょいあったけど、
この程度では自由に読むには程遠い。



882 :デフォルトの名無しさん:03/03/21 22:00
英語ヘルプを読むのに英語の知識はあまり必要ない

883 :デフォルトの名無しさん:03/03/21 22:09
class div
{
private:
int id;
int name;
public:
div();
void setdate(int i, int c);
void show();
};
div::div()
{
cout << "div::div()running..." << endl;
setdate(100, 200);
}
void div::setdate(int i, int c)
{
id = i;
name = c;
}

884 :デフォルトの名無しさん:03/03/21 22:10
ネイティブな言語の方が良いのは当たり前である。

885 :VC++.net初心者:03/03/21 22:12
コントロール変数の削除について質問ですが、
ClassWizardが無い.netではどのようにして削除
すればいいのでしょうか?
ClassView上でDeleteキーを押しても削除されず
できれば、ソースを直接触れない方法を探しています。
ご存知の方がいらっしゃればご回答お願いいたします。

886 :883:03/03/21 22:14
void div::show()
{
cout << "id = " << id << endl << "name = " << name << endl;
}

int main()
{
div val;
val.show();
int val2;
cin >> val2;
if (val2)
return 0;
}
valが不正ということでエラーになるのですが
なぜでしょうか?

887 :デフォルトの名無しさん:03/03/21 22:42
>>885
ソース削除汁 by 追加するときもウィザード使わないでソースに直接書いてる俺。
そのほうが早いYO

888 :883:03/03/22 04:09
すいません、書き忘れました。
VC++.net使ってます。参考書通りに記述したつもりなんですが。

889 :デフォルトの名無しさん:03/03/22 04:47
>>886
それがソース全部?
初心者用の基本的な入門書からやり直したほうがいいよ

890 :デフォルトの名無しさん:03/03/22 05:01
>>888
divはC標準ライブラリの関数のために名前がバッティングしている。
これはVCの制限。本当なら標準ライブラリは名前空間stdに包まれるので問題ない。

でも、std::なしにcout使ってるなあ・・・



891 :デフォルトの名無しさん:03/03/22 05:56
includeもなしに使えたんだ

892 :デフォルトの名無しさん:03/03/22 14:03
LPBYTE* p = new BYTE[128];
とかで確保したメモリのバイト数を調べる演算子や関数はありまつか?
(sizeof(BYTE) * 128とかじゃなくて。)

893 :デフォルトの名無しさん:03/03/22 14:09
QueryPerformanceFrequency()とQueryPerformanceCounter()の相違点と使い方を教えて下さい。
調べても、どっちも似たような事しか書いてなくて・・

894 :デフォルトの名無しさん:03/03/22 14:13
>>893えっと、なんだっけ。周期を取るみたいな。...他の人よろしく

895 :デフォルトの名無しさん:03/03/22 14:21
>>892
>LPBYTE* p = new BYTE[128];
この時点で間違いに気づけ

896 :デフォルトの名無しさん:03/03/22 14:27
>>895
ハァ?オブジェクト128個分のポインタで正しいじゃねーか。

897 :デフォルトの名無しさん:03/03/22 14:32
ここはageだな

898 :デフォルトの名無しさん:03/03/22 14:33
LPBYTE* p = new LPBYTE[128];
こうじゃないかと……

899 :デフォルトの名無しさん:03/03/22 14:40
BYTE* p = new BYTE[128];
LPBYTE p = new BYTE[128];
等々

900 :デフォルトの名無しさん:03/03/22 14:44
確保サイズが知りたきゃvectorでも使え


901 :デフォルトの名無しさん:03/03/22 14:49
すごく基本的な事だと思うんですが、引数に値が振られているのってどういう意味なんでしょう。始めて見た・・
float GetElapsedSeconds(unsigned long elapsedFrames = 1) ってあるんですけど。

902 :デフォルトの名無しさん:03/03/22 14:51
デフォルト値

903 :デフォルトの名無しさん:03/03/22 14:53
デフォルト値ってどういう時に使われるんですか?それにこの引数って関数内で使われてないんです・・
float GetElapsedSeconds(unsigned long elapsedFrames = 1)
{
static LARGE_INTEGER s_lastTime = m_startTime;
LARGE_INTEGER currentTime;

QueryPerformanceCounter(¤tTime);

float seconds = ((float)currentTime.QuadPart - (float)s_lastTime.QuadPart) / (float)m_ticksPerSecond.QuadPart;

// reset the timer
s_lastTime = currentTime;

return seconds;
} // end GetElapsedSeconds()

904 :デフォルトの名無しさん:03/03/22 14:54
>>896を晒しsage


905 :デフォルトの名無しさん:03/03/22 14:56
>>903
将来使うために引数だけ用意されてるんじゃないの?
今のところ使わないからデフォルト値でユーザが指定しなくてもいいようにしてるだけで。

906 :デフォルトの名無しさん:03/03/22 14:57
なるほど。どうもありがとうございました。

907 :864:03/03/22 15:43
亀レススマソ
>>865
ツールボックス等が別ウィンドウで開いちゃうんです。
何か気持ちが悪いので元に戻したいのですが・・・・・。
ちなみにインストし直しても駄目でした。
どなたかわかりましたらよろしくおながいします。


908 :892:03/03/22 15:47
間違えますた(スマソ
BYTE* p = new BYTE[128];
でした。

自作関数でポインタだけ受け取って、
何バイト使ってるか判ったら楽とか思ってたんですが。

909 :デフォルトの名無しさん:03/03/22 15:50
>>908
むりぽ

910 :デフォルトの名無しさん:03/03/22 15:56
ポインタはあくまでもメモリの1アドレスを指しているだけだから、
そこから何バイト確保されているとか分かるはずがないことくらい分かりそうなもんだが……

911 :908,892:03/03/22 16:10
>>910
えぇ、そうなのですが、
delete [] で、「確保されたメモリ」をちゃんと開放してくれるのなら、
OS側が何処から何バイトのメモリを使っているか、
云々の情報を持っているわけですよね?

そうならば、VC固有の関数でも何でも良いので、
そうした情報が取れないか、と思ったのです。

912 :デフォルトの名無しさん:03/03/22 16:11
その辺、OSで管理してないんかな?
DOS時代の malloc はOSのファンクションを呼び出していたと
思うんだが、new はどうなんだろ。



913 :デフォルトの名無しさん:03/03/22 16:17

最近はオブジェクト自身にオブジェクトのサイズを
格納する事例がありますね。動的にサイズを得るのが
難しい or 不可能だから、こういう処理をしてるのかも。



914 :デフォルトの名無しさん:03/03/22 16:45
VC++のmallocなら_msize、APIのLocalAllocならLocalSize。
ただ、newの場合なにやってるか分かったもんじゃないからこういう手段は使えない。

915 :デフォルトの名無しさん:03/03/22 17:01
>>907 == 864
まさかとは思うが、フレームにくっついてた
ツールバーとかが分離してウィンドウになってしまうってこと?
ドラッグして適当な位置に移動させれば元の位置に貼りつくけど・・・
違ったら失礼。


916 :デフォルトの名無しさん:03/03/22 19:01
>>913
昔から構造体でよく使われてた手だね

917 :デフォルトの名無しさん:03/03/22 19:11
>>914
VC++のMSDNみてたら、malloc と new は混在できないと
書いてありますた。

918 :デフォルトの名無しさん:03/03/22 22:06
#define WIN32_LEAN_AND_MEAN って何をやらかしてるんですか?本にはおまじないとしか書いてなかったので・・

919 :デフォルトの名無しさん:03/03/22 22:08
>>918
聞く前に調べろボケ
ttp://www.google.co.jp/

920 :864:03/03/22 23:04
>>915
そうっすよね?
それがうまくいかないんすよ。
ああ、もうめっちゃ気になってキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
初期状態に戻す設定方法みたいなのはないんすかね?


921 :デフォルトの名無しさん:03/03/22 23:20
>>920
そこまでいうのなら、関連レジストリ消して再インスコしかないね。
でも、危ないからやらないほうがいいけど、どうしてもやりたい場合は
レジストリバックアップしとかないとね。
再インスコしなくても、レジストリの関連パラメータを削除だけでいけるかもね。
そのパラメータがなんなのかはわからないけど。

922 :871:03/03/23 01:14
誰もレスしてくれないので自己レス・・・(;´Д`)
WM_PARENTNOTIFYは子ウィンドウが親ウィンドウに送信するというより
正確にはウィンドウスタイルにWS_CHILDをもつもののみ送信するといった方が良い。
ダイアログはポップアップかオーバーラップで作成するのが普通なんで
たとえCreate()のpParentWnd引数に何かのウィンドウを渡そうが
ダイアログはそのウィンドウにWM_PARENTNOTIFYは送信しない。
ややこし。

923 :864:03/03/23 01:34
>>921
初心者の折れにレジストリなんていじれるわけないわけで・・・・・

924 :デフォルトの名無しさん:03/03/23 02:38
>>923
んなら、アンインスコ→再インスコってのはどーよ。
ちなみにレジストリは、Ver6.0(しかもって無い)の場合は、
スタート→ファイル名を指定して実行(R)でregeditを実行。
マイコンピュータ
+HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+VisualStudio
のVisualStudioがアンインスコで削除されていれば良いと思うけど。

925 :864:03/03/23 09:37
>>924
アンインストールしてレジストリをチェックしてみますた。
「VisualStudio」はなかったんですが
「.NETFramework」と言うフォルダに3つのファイルがありますた。
これをいじるなり削除するなりすればいいんですかね?


926 :デフォルトの名無しさん:03/03/23 10:26
うるせぇなぁ。
バックアップとって試してみりゃいいべよ。
何でもかんでも人に聞こうとすんなよボケが。

927 :デフォルトの名無しさん:03/03/23 10:29
>>925
ぜんぜん別物だろそれは。
馬鹿かお前は。

928 :デフォルトの名無しさん:03/03/23 11:17
>>925
これ以上は自分の責任でやってくれ。
人に聞いて調べる前に自分でやってみろよ。
ウザくてしかたがない。

929 :デフォルトの名無しさん:03/03/23 21:09
class world {
protected: // コメント...
int n
public:
void gof();
};
VC++.netでコメント書き込むと文字"0x..."が認識できないとエラーになるんだけど
なんでよ?

930 :デフォルトの名無しさん:03/03/23 21:29
int nのうしろに;がないようだが。


931 :デフォルトの名無しさん:03/03/23 22:56
>>929
全角スペースでも入ってんじゃないの?

932 :デフォルトの名無しさん:03/03/23 23:26
すいません。not mfc にかきこしたのですが、スレ違いなようなので
こっちに移します。

MFCのCFileというクラスで
fileOut.Open(trgtname + strConFilePath,
CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive,
NULL);
fileOut.Write(buf, sizeRead);
fileOut.Flush();
fileOut.Close();
というソースがあるのですが、sizeReadはバッファの長さとして、(本当はwhileがあるのですが)
れを、open, wrhite, close で書き換えたいのですが、
if((fp = open(fname, _O_BINARY)) == NULL){
return false;
}
write(fp, buf, sizeRead);
close(fp);
とまでは、かけたのですが何かうまくいきません。
どう書くべきですか?
教えてください。

933 :デフォルトの名無しさん:03/03/23 23:35
>>932
意味がわからない・・
どううまく行かないのかも書いとくれ。
後半はC言語?



934 :デフォルトの名無しさん:03/03/24 00:09
そうです。Cに書き換えたいのですが、
同じデータをファイルに書き出すと、違う結果がでるのです。
(while内はライブラリからデータをもらっているのでどうともいえないのですが)


935 :デフォルトの名無しさん:03/03/24 00:12
だからどう違うのかと

936 :デフォルトの名無しさん:03/03/24 00:15
もう冬休みなんだっけ?

937 :デフォルトの名無しさん:03/03/24 01:32
質問です。

VC のオブジェクト(FormView ベースのときに貼り付けられるやつ)と、
クラスってのは何が違うんですか?

VB から入ったものでこの辺の違いがよくわかりません。

938 :デフォルトの名無しさん:03/03/24 03:22
春だなぁ。

939 :デフォルトの名無しさん:03/03/24 03:23
Visual C++ = C++ でいいの?
おなじでつか?

940 :デフォルトの名無しさん:03/03/24 03:35
Visual C++ は C++。C++ は Visual C++ とは限らない。

941 :デフォルトの名無しさん:03/03/24 03:42
Visual C++ は C++ とは限らない。

942 :デフォルトの名無しさん:03/03/24 03:51
VisualC++はC++で開発できる開発環境ソフト。

943 :デフォルトの名無しさん:03/03/24 06:07
>>937
それくらい自分で調べましょう。
……他人に質問するのは「調べる」とは言わないからね。(^_^;)

944 :デフォルトの名無しさん:03/03/24 12:31
前に「ネットで調べれ」と言われて「だから2chで聞いてるんです」と開き直った奴がいたな。
2chで聞くこと=ネットで調べること という認識に驚愕した。

945 :デフォルトの名無しさん:03/03/24 13:50
>>937
「Windowsプログラミングの基礎知識」(アスキー)をオススメ!
これとC++の基本図書を読んでから、もう一度質問してください。



946 :デフォルトの名無しさん:03/03/24 14:35
ネットで調べるという表現が悪いと思われ
検索+過去ログ嫁というニュアンスなんだろうが
ネットっていったいなんだろう、と素直に考える初心者にとって
NOVAの授業でさえ「ネットで」になると思われ

947 :デフォルトの名無しさん:03/03/24 15:37
「ネット」が何かということよりも「調べる」の方に重点を置いて欲しかった。
調べる=聞くだと思ってるんだから。

948 :デフォルトの名無しさん:03/03/24 15:48
聞くことが間違いってワケじゃないけどね。
ニュアンスの問題だろうなぁ。

949 :デフォルトの名無しさん:03/03/24 15:55
いや、>>944は「それくらい検索すりゃすぐ出てくるんだから聞く前に検索しろ」レベルの質問だった。
つまり質問者が検索してないのがバレバレだったわけ。

950 :デフォルトの名無しさん:03/03/24 16:15
葬式=菊
これ定番

951 :デフォルトの名無しさん:03/03/24 17:09
>>944>>946-949
もし C スレの hiloshi の話なら、「ネットで調べれ」 ではないぞ。
http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
の 327-340 あたり。341 で騙りも出て祭りっぽかった。以下抜粋。

327 名前: hiloshi 投稿日: 02/10/23 20:58
  すいません。また質問です。
  char型の変数をprintfで表示するための変換指定子はなんですか?
  %dでやると、JISコードの値が出てしまう・・

329 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:00
  %c
  つか、これくらいは聞くなよ。参考書読め。期待してるんだから頑張れよ。

332 名前: hiloshi 投稿日: 02/10/23 21:41
  すいません。今度はもっと上級な質問をします。
  でもオレの持ってる本には文字列は詳しく書いてるんですけど
  文字のことはさっぱりで・・・。

333 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:42
  何のためのWebだよ。

334 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:43
  >すいません。今度はもっと上級な質問をします。
  じゃなくて、ある程度自分で調べてから質問しろよってこと

335 名前: hiloshi 投稿日: 02/10/23 21:46
  ある程度調べるってことで、ここで質問してるんですよ

以降も DQN ぷりを発揮、858 で意味不明のスレ立てたのが晒されるてる。

952 :デフォルトの名無しさん:03/03/24 19:57
>>951
( ゚д゚) ポカーンage

953 :デフォルトの名無しさん:03/03/24 20:15
vb6.0で作ったexeを、vc6.0でデバッグするしたいのですが、
プロパティのコンパイル設定で最適化なし、シンボリックデバッグ情報を作成、
した後、どのように関連付けていいのかわかりません。

まことに恐れ入りますが、教えていただけないでしょうか?

954 :デフォルトの名無しさん:03/03/24 20:57
>>953
君が何を言いたいのか分からない。

955 :デフォルトの名無しさん:03/03/24 21:22
>>954
確かに言いたいことつたわらないどころか、まともな文章になってないですね。すいません。

つまり、VB(EXE)のソースをVC(DLL)側からデバッグ中にトレースしたいのですが、なんとかなりませんでしょうか?ということです。

いいたいこと、わかりますでしょうか?

956 :デフォルトの名無しさん:03/03/24 21:57
VBではデバックできんの?

957 :デフォルトの名無しさん:03/03/24 22:00
>>955
DLLをビルドしたプロジェクトを開いて、
プロジェクト→設定→(設定の対象を適当に選択)
→デバック・タブのデバックセッション実行可能ファイルでVB(EXE)を指定する。
→実行(F5)
でデバックスタート。


958 :デフォルトの名無しさん:03/03/25 00:01
>>956 957
thx。でも、すでに957氏の方法でやっているんですよ。

だけど、VBではVCのDLLはうごくんですけど、VBのソースだけトレースできなく、
DLLがこけてもどこでこけたか、いまいちわかりづらいし、
VCではVBのEXEは動くんですけど、VCのDLLの部分しかトレースできないから、
EXEのどこでこけてるかわかりづらい。

VBのボタン押したら起動、終了するプログラムをVCの方でマルチスレッドでゴリゴリ書いてて、
例外処理 (初回) は Hoge.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。
とでてきて、どこでこれが起きてるか場所特定できないなかったので、
両方のソースを同時にトレースする方法でもないものかと思い尋ねてみたんです。
(なんかできっるぽいようなことがちらほらとWEB上に書いてあるんですけど、具体的方法が書いていないの。)

まぁ、原因はmutex(クリティカルセクション)の設定が悪かっただけなんですけど。

くだらん質問に答えていただき、どうもありがとうございますた。それでは失礼いたします。
(ちなみに、バグの個所わかってもなかなか全部消えてくれない。。。)

959 :デフォルトの名無しさん:03/03/25 01:45
新人用にVC.NETの入門書探してたんですが
結局日経ソフトウェアの5月号が一番わかりやすそうでした。
初心者はどうぞ

960 :デフォルトの名無しさん:03/03/25 10:20
>>958
そりゃ出来んわな。元のソースを工夫汁。

961 :デフォルトの名無しさん:03/03/25 11:33
http://pc2.2ch.net/test/read.cgi/software/1047915395/58
http://pc2.2ch.net/test/read.cgi/software/1047915395/63
ということなのですが、私には↑をするほどの技術はありません。
どなたかしていただける方いませんでしょうか?

962 :958:03/03/25 12:17
hoge.frm(VBのソース?)をVCのプロジェクトに追加したら、VCでhoge.frmをデバッグできるようになってますた。

vbのコンパイルオプションは >>953 です。


963 :デフォルトの名無しさん:03/03/25 12:19
>>962
すげー、出来るんだ〜。勉強になりますた。

964 :デフォルトの名無しさん:03/03/25 17:39
CTreeViewの中でアイテムテキストエディット中に、
アクセラレータキーを無効にするにはどうしましょう?

965 :964:03/03/25 17:49
BeginLabelEditとEndLabelEditで編集の開始と終了をハンドリングして
編集中はアクセラレータキーをtranslateしないようにすりゃいいのか。

966 :デフォルトの名無しさん:03/03/25 21:52
すみません、STLでの質問ですが
メモリ確保に失敗したとき例外が投げられてるみたいですけれど
上手くcatchできません

vector<BYTE> b;
try{
b.reserve(1 * 1024 * 1024 * 1024);
}
catch(***){ // ←ここの***にクラスの参照入れるんでしょうけど、どのクラスか分かりません
...
}



967 :966:03/03/25 21:54
他のスレできくべきかと思いましたけど
VisualC++を使ってること、初歩的な内容の質問だと思われたのでここで質問しました

968 :デフォルトの名無しさん:03/03/25 22:01
自己解決できました

catch(...){
}で捕まえることができました

お騒がせしました


969 :デフォルトの名無しさん:03/03/25 23:50
>>968
catch(std::exception& e){
std::cout << e.what() << std::endl;
}

とかやると、詳細をダンプしてくれて便利。

970 :デフォルトの名無しさん:03/03/26 00:03
>>969
レスどうもです
そちらを試してみます


971 :デフォルトの名無しさん:03/03/26 03:48
スタートメニューの整理をしてたら誤まって
Visual C++ 6.0 Professional のショートカットを
消してしまい場所がわからなくなってしましました。
申し訳ありませんが、VC++6.0のショートカットの場所を
お教え頂けないでしょうか?
OSはWinMeです。

972 :デフォルトの名無しさん:03/03/26 03:53
>>971
MSDEV.EXEを検索

973 :デフォルトの名無しさん:03/03/26 08:09
Visual C++ は catch ( ) で特定の例外を
キャッチすることはできなかったはず。



974 :デフォルトの名無しさん:03/03/26 12:28
できるがな

975 :デフォルトの名無しさん:03/03/26 14:05
構造化例外とC++例外がちゃんと切りわけられてないな

976 :971:03/03/26 14:19
>>972
どうもありがとうございます。
おかげさまで復旧できました。多謝!

977 :デフォルトの名無しさん:03/03/26 14:32
VC++のC++例外は構造化例外で実装されています

978 :デフォルトの名無しさん:03/03/26 14:49
★男はココを見るべし★女と金とサンプルムービー★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html

979 :デフォルトの名無しさん:03/03/26 15:00
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
★ウゼェキエロ!!!★ウゼェキエロ!!!!!!!!!!!!!!!!!!!!!!★

980 :なみし:03/03/26 16:28
超厨な質問すみません。

いま、作ってわかるVISUAL C++6.0という本を読んで勉強中ですが、
本の中にコードを追加してくださいとあって
そのなかに星みたいな記号がありました。
*なら打ち込めるのですがなんかちょっと違うみたい・・・・・
もしよろしければ、その記号の入力の仕方を教えていただきたく存じます






981 :デフォルトの名無しさん:03/03/26 16:33
>>980
それじゃあ何の文字が入力できないのか分からない。
でも多分、アスタリスク * の事か?
だとしたら、あなたが 980 に書いたものを半角で打てばいいはずだ。

982 :デフォルトの名無しさん:03/03/26 16:48
印刷物だとたまに*が線5本で描かれてたりするから紛らわしい。

983 :デフォルトの名無しさん:03/03/26 16:49

/************** (゚Д゚)ハァ? *****************/

984 :かえるのおっさん:03/03/26 17:31
984

985 :かえるのおっさん:03/03/26 17:32
985



986 :デフォルトの名無しさん:03/03/26 20:15
☆★

987 :デフォルトの名無しさん:03/03/26 20:41
次スレ、もうそろそろ作るべき?

988 :デフォルトの名無しさん:03/03/26 22:03
>>980


989 :なみし:03/03/26 22:48
>>982
多分それです。線が5本の星でした。

じゃぁ、アスタリスクなのですね。

みなさま、本当に厨質問にレスありがとうございます

990 :デフォルトの名無しさん:03/03/27 01:08
CComboBoxで入力もできるタイプのリスト(ブラウザのアドレス入力欄みたく)にした時、現在選択(入力)
されている文字列を取得するにはどうしたら良いのでしょうか?
CComboBoxのメンバ関数には選択されてるセルのインデックスを取得する関数はありましたが、文字列
を取得する関数がなさげでしたので・・・
なお、ファイル名等に限定して取得する関数はCWinクラスにありましたが、それを実行するとゴミが余計
についてきてしまいます

991 :デフォルトの名無しさん:03/03/27 01:27
>>990
>文字列
を取得する関数がなさげでしたので・・・
あるだろ。GetLBTextは違うのか?

992 :987:03/03/27 02:07
とりあえず、作っといた。

★初心者にVisual C++を教えるスレ★ Part5
http://pc2.2ch.net/test/read.cgi/tech/1048698321/l50

993 :デフォルトの名無しさん:03/03/27 05:35
993.

994 :デフォルトの名無しさん:03/03/27 11:10
994

995 :デフォルトの名無しさん:03/03/27 11:20
995!!!!

996 :デフォルトの名無しさん:03/03/27 12:16
996

997 :デフォルトの名無しさん:03/03/27 12:44
997

998 :デフォルトの名無しさん:03/03/27 12:44
998

999 :デフォルトの名無しさん:03/03/27 12:45
999

1000 :デフォルトの名無しさん:03/03/27 12:45
久しぶりに1000ゲット

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

222 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)