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


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

★初心者にVisual C++を教えるスレ★ Part12
1 名前:デフォルトの名無しさん :04/05/03 21:03
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

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

  質問の仕方については次のページが大変参考になります。
  http://www.hyuki.com/writing/techask.html
  http://www.geocities.co.jp/Beautycare/4965/public/template.html

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

満員電車で携帯なんか使うなよ

前スレ
★初心者にVisual C++を教えるスレ★ Part11
http://pc5.2ch.net/test/read.cgi/tech/1077965179/

2 名前:デフォルトの名無しさん :04/05/03 21:18
姉妹スレ

MFC関連はこちら↓
■ VisualC++(MFC限定)相談室 MFC10.dll■
http://pc5.2ch.net/test/read.cgi/tech/1074104008/


3 名前: ◆Manna2uCLg :04/05/03 21:21
// 過去スレ
Part11 http://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 http://pc5.2ch.net/test/read.cgi/tech/1074933908/
Part09 http://pc5.2ch.net/test/read.cgi/tech/1068983609/
Part08 http://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 http://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 http://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 http://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 http://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 http://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
※「いや〜、ごめんなさい」により、紛失の可能性

// 関連
■ VisualC++(MFC限定)相談室 MFC10.dll■
http://pc5.2ch.net/test/read.cgi/tech/1074104008/
Win32API質問箱 Build18
http://pc5.2ch.net/test/read.cgi/tech/1081702990/
鬱だ氏のう DirectX (Part 13)
http://pc5.2ch.net/test/read.cgi/tech/1083313796/
C++相談室 part29
http://pc5.2ch.net/test/read.cgi/tech/1082047479/
C/C++の宿題をやらせて、お兄ちゃん 22代目
http://pc5.2ch.net/test/read.cgi/tech/1083050221/


4 名前: ◆Manna2uCLg :04/05/03 21:21
// 外部リンク
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Google
http://www.google.co.jp/

//このスレの前身 VisualC++相談室 過去スレ
part 1 http://piza.2ch.net/tech/kako/970/970607517.html
part 2 http://piza.2ch.net/tech/kako/981/981630730.html
part 3 http://piza2.2ch.net/tech/kako/993/993186053.html
part 4 http://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 http://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 http://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 http://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 http://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 http://pc5.2ch.net/tech/kako/1036/10368/1036897197.html

5 名前: ◆Manna2uCLg :04/05/03 21:22
>>1
乙!

とりあえず、過去スレとか張っておくです。

6 名前:デフォルトの名無しさん :04/05/03 21:43
>>5
ごくろーさん

7 名前:デフォルトの名無しさん :04/05/03 21:55
>>1-5
オツ

華麗に7get!!

8 名前:デフォルトの名無しさん :04/05/03 21:55
>メニューの「プロジェクト」→「設定」より「リンク」タブをクリックし、「オブジェクト/ライブラリモジュール」の先頭に
>「winmm.lib ddraw.lib dsound.lib」の3つのライブラリを追加し、OKを押します。

上の操作は.NETの場合だとどのようにすればよいのでしょうか?


9 名前:デフォルトの名無しさん :04/05/04 01:42
999 名前:デフォルトの名無しさん 投稿日:04/05/03 23:06
1000

1000 名前:デフォルトの名無しさん 投稿日:04/05/03 23:09
999!

10 名前:デフォルトの名無しさん :04/05/04 05:29
最近STLの勉強を始めたのですが、
mapとか使おうとすると、なんだかいっぱい警告がでてきます。
いくつかのHPに載っていたソースをコピペして実行させてみたのですが、
実験したソース全てで同じように警告が沢山でてきました。
これをなんとかできるのであればなんとかしたいのですが、
何か方法があるでしょうか?
何か知っておられたら教えていただけるとありがたいです。お願いします。

11 名前:デフォルトの名無しさん :04/05/04 05:38
環境も書いてないし、教えてもらうつもりはないんあろうな

12 名前:デフォルトの名無しさん :04/05/04 06:12
>>11
済みませんでした。


使っているのはVisual C++ 6.0 Enterprise Editionです。
int main()
{
 map<string, string> items;
 items.insert(pair<string, string>("aa", "Dog"));
 items.insert(pair<string, string>("bb", "Cat"));
 items.insert(pair<string, string>("cc", "Bird"));

 cout << items["aa"] << endl;
 return 0;
}
こんな感じのプログラムをコンパイルすると

c:\program files\microsoft visual studio\vc98\include\xtree(120) :
warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,
std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,
std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,
std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::basi
c_string<char,std::char_traits<char>,std::allocator<char> > > >' : 識別子が '255' 文字に切り捨てられました (debug 情報内)。

という感じの警告が120程でてきます。(本文が長すぎると言われたので途中で改行を入れてしまっています。)実行結果は
Dog
と表示され、結果自体は問題なさそうに見えるのですが…。
オプションかなにかで設定しないといけないのかなと思って質問しました。
もしなにか知っておられるようでしたら教えていただけるとありがたいと思います。

13 名前:デフォルトの名無しさん :04/05/04 06:31
pragmaで4786を無効にする。
もうこれはFAQだな。

MSDNで警告番号調べりゃ分かるけど実行に実害はないよ。

14 名前:デフォルトの名無しさん :04/05/04 06:48
>>13
やってみました。
キレイサッパリ消えました。
ありがとうございました。
VC++6.0でSTLを使うときはこうなってしまうものなんだと思ってこれからの人生を生きていきます。
ありがとうございました。


15 名前:デフォルトの名無しさん :04/05/04 09:41
>>14
寧ろそれより、VC++7.1を使う方が医院で内科医?
VC6はstl周りでおかしな動きするみたいだし。

16 名前:デフォルトの名無しさん :04/05/04 09:46
VC7.1なんて使うならiccを使うほうが良くないか?
iccを使うくらいなら・・・

只でリプレースできるものじゃないんだから、
VC6を破棄しろというならともかく、
当然のようにバージョンアップしろみたいな言い方はどうかと。
Enterpriseから置き換えるEnterprise Architectなんて簡単に買える額じゃないし。

17 名前:デフォルトの名無しさん :04/05/04 09:57
>>16
それ、思い込み激しすぎるから。
誰も買い換えろなんて言ってないわけだし。

18 名前:デフォルトの名無しさん :04/05/04 12:52
>>17
>>16じゃないけど、普通に読んでVC6ユーザーにバージョンアップを求めてる
ようにしか見えないんだけど・・・
何が言いたいんだろ?はっきり書いてよ

19 名前:デフォルトの名無しさん :04/05/04 13:02
画面ではなく、ウィンドウの解像度を変更する場合、どういう記述をすればいいですか?
VC++6.0です。出来ることなら、DirectX はなるべく使いたくないです。

20 名前:デフォルトの名無しさん :04/05/04 13:08
ウインドウの解像度って何?
SetMapModeとかの話か?

21 名前:デフォルトの名無しさん :04/05/04 14:00
チェックボックスにチェックを入れると
入れた瞬間にチェックしたことを反映させるには
どんな風にしたらいいんですか?

たとえば、日付を表示するダイアログがあって
時間っていうチェックボックスをつくって、
チェックしたときには時間も表示されて、はずしたときには表示されない
という感じにしたいんです。
メッセージの一覧とか見てみたけどそれらしいのが見つからなくて
ダイアログのメッセージ処理のdefaultのところに書いたけどだめでした。
すごい人、おしえてください。

22 名前:デフォルトの名無しさん :04/05/04 14:05
BN_CLICKED

23 名前:デフォルトの名無しさん :04/05/04 14:24
>>22
それってwParamのHIWORDの時の値ですよね?
試してみたところ、ボタンを押したときには反応があるんですが、
チェックボックスには反応無かったです
使い方がおかしいんでしょうか・・・


24 名前:21,23 :04/05/04 14:35
>>22
自己解決しました。
ありがとん。

25 名前:デフォルトの名無しさん :04/05/04 16:16
描画に使用したHPENやらHBRUSHやらのオブジェクトを
DeleteObjectで削除しなかった場合ってOSには
どのようなことが起きてますか?
プログラム終了したときには絶対に消される?
それとも、OS再起動まで使えない領域として残ったまま?
どうなるんですかね?


26 名前:デフォルトの名無しさん :04/05/04 17:11
メモリリーク

27 名前:デフォルトの名無しさん :04/05/04 21:48
>>25
アプリ終了しても消されない。
GDIリソースはシステム共有リソースなんで、あまりに使用したままほうっておくと
ほかのプログラムに影響与える。

28 名前:デフォルトの名無しさん :04/05/04 21:58
>>26,27
サンクス
ちゃんと作ったやつは、
責任を持ってdeleteしていこうとおもいます。


29 名前:デフォルトの名無しさん :04/05/04 21:59
>>26,27
サンクス
ちゃんと作ったやつは、
責任を持ってdeleteしていこうとおもいます。


30 名前:デフォルトの名無しさん :04/05/04 22:01
二重ごめんなさい。。。


31 名前:デフォルトの名無しさん :04/05/05 04:38
Perlで言うCPANみたいな、VC++のクラスライブラリ集を扱ってるサイトは有りませんか?

32 名前:デフォルトの名無しさん :04/05/05 06:32
はじめまして。
こにたび大学でC言語をやることになったのですがほとんど何を言ってるのかわかりません。
何かおすすめの参考書などがありましたら教えてください。
よおしょくお願いします。



33 名前:デフォルトの名無しさん :04/05/05 06:34
>>25 良くないね。>>27の言うとおり。
自分でDIB作って出回ってるGDIと似たようなライブラリで描画するほうが
好きだなー。後でGetDIBitsして。
オーナードローとか、HFONTばかりは仕方ないか

34 名前:デフォルトの名無しさん :04/05/05 06:57
>if (!(hWnd = InitApp(hThisInst, nWinMode)))
>error C2440: '=' : 'BOOL' から 'HWND' に変換できません。

というようなエラーが出ました
どうすればいいのでしょうか?


35 名前:デフォルトの名無しさん :04/05/05 09:45
>>34

・Cの言語リファレンスを読む。
・諦める。

まぁ、basic上がりだと気がつきにくいんだろうけどな。

36 名前:デフォルトの名無しさん :04/05/05 11:24
>>34
MSDNライブラリのキーワード欄に
C2440 を入力してみる。


37 名前:デフォルトの名無しさん :04/05/05 11:25
>>32
>>4 の一番上にある「猫でもわかる・・・」をクリックしてみる。

38 名前:デフォルトの名無しさん :04/05/05 13:05
MFCのCPenやCBrush, CFont でも終了時に
開放されないとかあるんですかねぇ?

描画用のオブジェクトを作る→異常終了→メモリーリークってのが
延々と繰り返されれば、OSが不安定になるわけですな。

39 名前:デフォルトの名無しさん :04/05/05 14:03
>>38
クラスを使用することの利点はデストラクタがあること
ファイル処理のクラス化などがリソース管理手段の基礎として取り上げられる

ttp://www.ipa.go.jp/security/awareness/vendor/programming/b06_06.html

40 名前:デフォルトの名無しさん :04/05/05 15:11
>>38
またそれが明示的にならないから結構困りもんなんだな。
new,deleteなら一発なんだが。なんか良い方法ないかな・・・・。

41 名前:デフォルトの名無しさん :04/05/05 15:58
CPenやCBrush, CFontを使わない。

42 名前:デフォルトの名無しさん :04/05/05 16:44
Selectしたままならリークするんでねーの。

43 名前:デフォルトの名無しさん :04/05/05 17:39
異常終了だろうと明示的にオブジェクトを削除してなかろうと、
プログラムが終了すれば全部解放される。

44 名前:デフォルトの名無しさん :04/05/06 01:58
初歩的な質問でしょうが御容赦下さい。

起動済みアプリにメッセージを、特に座標を指定したマウスイベントを送る事が目的です。
CWnd *wnd;
wnd = FindWindow("Notepad",NULL);
del->SendMessage( WM_LBUTTONDOWN, xxx, xxx );
などとしてみましたが、3行目SendMessageの引数xxxの部分がわからないのです。
xxxにはメッセージ依存のWPARAM,LPARAMを使えとありますが、どうすれば良いのでしょう?

OnLButtonDownの引数を見ますと押下されている仮想キーと座標(CPoint)がありますが、
これらを適切にWPARAM等に反映させれば良いのでしょうか?(だとしても方法は判らないのですが)
SendMessage、PostMessage等でのググりを行いましたが、結局有用な情報は得られませんでした。

先生方、成すべき事や調べるべきキーワード等ありましたら御教授頂けないでしょうか?
よろしくお願いします

45 名前:デフォルトの名無しさん :04/05/06 09:33
>>44
http://www.google.com/search?hl=ja&inlang=ja&ie=UTF-8&oe=UTF-8&q=WM_LBUTTONDOWN&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
の1番目。

46 名前:デフォルトの名無しさん :04/05/06 14:03
VisualC6でプログラミングしています。
一時ファイルを環境変数TMPで指定されている場所に
作成したいのですが、環境変数の値をプログラム内で
使用する方法を教えてもらえないでしょうか?



47 名前:デフォルトの名無しさん :04/05/06 14:56
GetTempPath

48 名前:46 :04/05/06 15:02
>>47
できました。ありがとうです。^^

49 名前:デフォルトの名無しさん :04/05/06 18:46
よろしくお願いします。
ON_WM_TIMERを使用しておりまして、その中でメインの処理が行われる
アプリケーションを作っています。ここで今回仕様変更により
タイムアウトの処理を作成し、呼び元へパラメタ等での通知を行う作りを
追加しなくてはならなくなりました。うまいタイムアウト処理を作成する方法を
教えてください。mfcです。



50 名前:デフォルトの名無しさん :04/05/06 19:53
どう言う意味でのタイムアウトかな?

51 名前:デフォルトの名無しさん :04/05/06 20:59
>>49
マルチスレッドにしては伺か?

52 名前:デフォルトの名無しさん :04/05/06 21:05
もう一個タイムアウトを計るタイマーを作って
タイムアウト時になったらメインの処理を行ってるタイマーをkillするとか。

53 名前:デフォルトの名無しさん :04/05/07 08:01
http://www22.big.jp/~15ch/up/source/ichigo0894.lzh
将棋の棋譜取得toolなんですが、取得アドレスが変更されたため
うまく取得することができません。MFCあぷりけーしょんで作成されている
とのことで検索してc++6というものだそうです。
どなたか
http://internet3.shogidojo.com/dj2/getbook.htmから
http://internet3.shogidojo.net/dj2/getbook.htm
変更する方法、もしくは変更したものをUPしていただけないでしょうか。
当方アプリケーション開発ソフトがございません。
方法だけでも教えていただけたらと思います。

54 名前:デフォルトの名無しさん :04/05/07 08:11
>>53
作者(或いは管理者)に頼め。
作者(或いは管理者)の許可があるなら変更しないでもないが、無断で変更するわけにはいかない。

55 名前:53 :04/05/07 08:21
ご覧のとおり、だいぶ昔の一時期にボランティアの方が作成した物でして
リードミーなどにも連絡先はおろか作者名すらありません。
いろいろ検索してみても情報がありませんし、verupが期待できません。
許可を取ることも術がありません。
そこをなんとか・・・

56 名前:デフォルトの名無しさん :04/05/07 08:26
ご覧の通りと言われても既にないけど。<アーカイブ

#あるのは怪しげな写真ばかり(苦笑

57 名前:53 :04/05/07 08:31
http://www22.big.jp/~15ch/up/source/ichigo0894.lzh
再UPしました。よろしくおねがいします。

58 名前:デフォルトの名無しさん :04/05/07 08:39
>>57
プログラミングの話ではないので、全くの板違い。
club24.exeをバイナリエディタで開いて、'dojo.com'を探してそこを'dojo.net'に書き換えろ。
この説明で判らないなら諦めろ。

59 名前:53 :04/05/07 08:48
わかった。やってみる

60 名前:53 :04/05/07 08:58
狐でやってできました。思ったより簡単でした。
アドバイスありがとう。

61 名前:デフォルトの名無しさん :04/05/07 11:09
自分でクラスを作って、その中でCString型の文字列を使おうと思ったのですが、
次のようにどちらをincludeしても定義できません。
#include <cstringt.h>
#include <atlstr.h>

どうすれば使用することが出来るようになるのでしょうか?
環境はVC++.NET2002です。

62 名前:デフォルトの名無しさん :04/05/07 11:11
stdafx.hとか・・・

63 名前:61 :04/05/07 11:22
>>62

EOFエラーが出たので最初にstdafx.hを組み込んで見たのですが、
同様の現象が出てしまいます…
最初にウィザードでMFCプログラムを選択したので、
#include <cstringt.h>
を書けばいいのかな?と思ってはいたのですが、うまく行きませんでした。


64 名前:デフォルトの名無しさん :04/05/07 11:31
stdafx.hだけをincludeしても駄目かな?
VC++6.0だけど今適当にクラス作ってメンバとしてCString型定義して問題無かったけど。
ソース側に定義してる?

65 名前:61 :04/05/07 11:39
>>64

.hと.cppのうちstdafx.hは.cppのほうにincludeしています。
それでも変数が定義されてない識別子とエラーが出ます。

ちなみに.hでCStringの変数を宣言し、cppのほうで実際に使っているのですが、
それでもよいのでしょうか?


66 名前:デフォルトの名無しさん :04/05/07 12:01
>>65
う〜んそれで良いと思うんだけど・・・。

さっきはヘッダで

private:
  CString m_str;

としておいて

コンストラクタで

m_str = "a";

見たいな事やってみたんだけど。

67 名前:61 :04/05/07 12:07
>>66

出来ました!
どうも、記述の仕方に誤りがあったようです…。
呼び出すヘッダもstdafx.hだけで済みました。
本当にありがとうございます。

68 名前:デフォルトの名無しさん :04/05/07 12:31
VisualC++ 6.0の時 色々種類ありましたよね?

今のVisualC++.net ってパッケージ商品として
1種類しかないようなんですが そのへんどーなってんでしょうか。
6.0の時はプロフェッショナルエディションだと
コンパイル時に最適化が行われてプログラムの実行速度が
違うとか・・ 言われたんですが。

VisualC++.net スタンダードエディションで、
同じような最適化は行われるのでしょうか?

69 名前:デフォルトの名無しさん :04/05/07 12:47
>>68 間違ってたらごめん
VC++6.0まではProfessional Edition以上じゃなきゃ最適化はされなかったけど
.NET 2003も同じだと思う
DB絡みもやるから、無理して個人でVS.NET 2003 Enterprise Developer買った
オレはアホです。ホントはEnterprise ArchitectだとMSDN Universalが
付くからそっちが良かったけど、+10万だもんなあ

70 名前:68 :04/05/07 13:01
>>69
といいますと、C++.net のみのパッケージだとスタンダードしか
ないので、ビジュアルスタジオを買わなければいけないと・・orz

71 名前:デフォルトの名無しさん :04/05/07 13:02
>>68
Standardには最適化コンパイラは付いていない。
Professional以上はVSしか無くなった。

ちなみにVCTools拾ってくれば最適化コンパイラは手に入るが、
最適化関係のコンパイルオプションは手打ちになる。


72 名前:デフォルトの名無しさん :04/05/07 14:53
>>71
> ちなみにVCTools拾ってくれば最適化コンパイラは手に入るが、
> 最適化関係のコンパイルオプションは手打ちになる。

<参考>
タダで使えるVisual C++
http://pc5.2ch.net/test/read.cgi/tech/1082177340/


73 名前:デフォルトの名無しさん :04/05/07 18:31
ダイアログ間のデータのやり取りがうまく行かず困っています。

まずダイアログ1とダイアログ2があり、ダイアログ2は1からモードレスで開いている状態です。
ダイアログ2には コントロール変数、int型,, カテゴリは value の変数名 m_edit のエディット用
コントロール変数を作りました。

ダイアログ1でボタンを押すと

UpdateData(TRUE);
int n;
n = daialog2.m_edit;

とエディットに入れられた値をとり、加工をして

daialog2.m_edit = n;
UpdateData(FALSE);

データを更新したいのですが、値の取得も値の代入もうまく行きません。
どうすれば解決できるのか、どなたか教えてください。
環境はVC++ NET2002です。


74 名前:デフォルトの名無しさん :04/05/07 18:33
とりあえず"daialog"っていうのやめたら?

75 名前:デフォルトの名無しさん :04/05/07 19:00
>>73
ダイアログ1のボタンを押したらダイアログ2へSendMessageでユーザーメッセージを
送信してダイアログ2側で計算処理をしてあげたらどうだろう?

76 名前:73 :04/05/07 19:21
>>74

利便性を考えるとやはりダイアログを利用するほうがいいとおもい、ややこしい?作り方になってしまいました。

>>75

ダイアログ1で入力された値を利用するため、ダイアログ2で計算させるときに同様な現象が出てしまい、
やはり詰まってしまいます。

コントロール変数のカテゴリを control として作ると、GetWindowTextで値を取得できるのですが、
これは文字列として取得できてしまい、計算が出来なくてこまってしまってます。

77 名前:デフォルトの名無しさん :04/05/07 19:39
>>76
>>74はそういう意味ではないと思う。

78 名前:デフォルトの名無しさん :04/05/07 19:41
文字列を数字に変換すれば良い。

79 名前:デフォルトの名無しさん :04/05/07 19:42
>>76
>コントロール変数のカテゴリを control として作ると、GetWindowTextで値を取得できるのですが、
>これは文字列として取得できてしまい、計算が出来なくてこまってしまってます。

これが出来る事が分かってるなら後はatoiなりitoaなり使って文字列←→数値を
相互変換してあげながら処理すれば良いんじゃないかな。

80 名前:デフォルトの名無しさん :04/05/07 20:45
>>78
>>79

いまいちスマートではないのではないかな?
と思ったのですが、データを変換して使うことにしました。
ありがとうございます

81 名前:デフォルトの名無しさん :04/05/07 20:48
configure; make; make install
しかやったことのない漏れに、Visual C++ Toolkit 2003でmakefileから
コンパイルする方法を教えてくれ。

82 名前:デフォルトの名無しさん :04/05/07 21:03
すみません、自分でプログラムとか組んだことない門外漢です。
色々ぐぐってみたけどさっくりあきらめました。
ここで聞くのであってるかどうかもわからないんですが、
よかったら教えてください

下のやつって、リソーススクリプトっていうんでしょうか、
VCで使うって言われました。

このテキストを使うとなにがどうなるのか教えてください。
開発の手段じゃなくて、エンドユーザー側からみたときの
アプリケーション(エクセルとかワードとかありますよね)
がなにかってことがしりたいです。

どなたかやさしい人、お願いしまっす!!

83 名前:82つづき :04/05/07 21:04
PRINT DIALOG DISCARDABLE 15, 15, 181, 181
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "Printer:",1093,6,4,25,8

(中略)

STRINGTABLE DISCARDABLE
BEGIN
ID_COMBO_STYLE "Select Style for selected text region or equation\nStyle"
ID_COMBO_FACE "Select Font for the current selection\nFont"
ID_COMBO_SIZE "Select Font Size for the current selection\nSize"
ID_BROWSE_RELOAD "Reload current page\nReload"
ID_BOOKMARK "Add, edit or display bookmarks\nBookmark"
END

84 名前:デフォルトの名無しさん :04/05/07 21:32
Visual C++ 6.0使用でつ。
「座標(30,30)から座標(100,200)に直線を引く」ことをやりたいのですが、
API関数やらなんやらワケわかりません。
WM_PAINTのところにうにゃうにゃ、線を引き終わったら古いペンに変更とか
説明されても意味不明です。お暇な方がおりましたら、この簡単なプログラム
を作っていただけないでしょうか?


85 名前:デフォルトの名無しさん :04/05/07 21:34
この辺はリソースエディタで作ったものがテキストとして.rcに保存されてる内容なんで
通常あまりユーザーが深く理解する必要は無いと思う。
ただこの内容はエディタ上だけでなく、この状態でも勿論編集できるので、
例えばSTYLEのWS_SYSMENUを消すと実際のウィンドウからメニューが無くなったり
FONTの数値を変えてあげればフォントの大きさが変わったりする。
でも普通はリソースエディタ上でいじってあげれば事足りるよ。

86 名前:デフォルトの名無しさん :04/05/07 21:36
>>84
これを参考に。

ttp://www.kumei.ne.jp/c_lang/sdk/sdk_23.htm

87 名前:デフォルトの名無しさん :04/05/07 22:03
82です
85様ありがとう

ぜんぜんわかってなくってホントすいません。

PrinterとかReloadとかあるのは
ここに書かれている方法で
印刷、ページのリロードその他するってこと
ですよね、
そいで自分みたいなワケワカメな人間が
最終的に利用するときにはブラウザの使い方
だけわかってればいい、と。

・・・これで合ってます?



88 名前:デフォルトの名無しさん :04/05/07 23:00
要はこのテキストを使って何をしたいかなんだろうけど、
何するわけでもなくただテキストの内容を理解したいならあまり意味無いかと。
リソースエディタでどう編集するとテキストの中身がどうなるのかと
言った事が知りたいなら実際適当にプロジェクト作って色々コントロールを
配置してみたりした方が早い。

89 名前:デフォルトの名無しさん :04/05/07 23:28
>>87
> ここに書かれている方法で
> 印刷、ページのリロードその他するってこと

つーかこのリソースっていうのはプログラムの中身(動きの部分)じゃなくて
インタフェースのデザインのところ。こういうウィンドウにこういう部品を
こういうサイズで配置とかそういうの。エディット・ボックスがあって、ボタン
があってとか。

90 名前:デフォルトの名無しさん :04/05/07 23:29
>>88様、ご親切にありがとうございます、82です。

じつはあのテキストがなんでどう使われるのかって
聞かれちゃったのです。
ごらんの通りチンプンなので、
そんな自分に聞かれても、って感じなんですが、
わかんなかったらちょっと調べみてよってことな
ので・・・

私自身はたぶん今後もプログラム自作とは
縁のない生活を送ると思われます残念ですがw
やってみたら楽しいんだろうなとは思うけど
たぶん無理だーw


91 名前:デフォルトの名無しさん :04/05/07 23:36
InsertString

92 名前:デフォルトの名無しさん :04/05/07 23:41
あ、リロードしたら書き込みが。
89さまありがとうございます。





93 名前:デフォルトの名無しさん :04/05/08 00:01
>>90
どう使われているのかと言えばやっぱり>>89かと。
まあそれとは別にプログラミングに興味があれば是非やってみて頂戴。
VC++なら入門書、解説書も沢山出てるしHPは幾らでもあるし。

94 名前:68 :04/05/08 00:36
>>69 >>71 >>72 さん
レス有り難うございました。

VSとなるとちょっと値段がきついですね。
学生の弟に買って貰うのも手か・・!?

VCToolsの方もちと調べてみます。

95 名前:84 :04/05/08 01:26
>>86
ありがとうございます。
では、改めて質問させていただきます。
そのページ下部に載っているソースコードで

case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
DrawGr(hWnd, hdc);
EndPaint(hWnd, &ps);
break;

この中でDrawGr()関数を呼び、そこで線を描写していることは分かるのですが、
msg == WM_PAINT となるのはいつなのでしょうか?ファイルを実行するとすぐ
に線が描写されるのですが、それはどうしてなのでしょうか?そう命令している
ようには見えないのですが…。
おながいします。

96 名前:デフォルトの名無しさん :04/05/08 01:32
>>95
ウインドウ再描画のタイミングでWM_PAINTメッセージがポストされる。

97 名前:デフォルトの名無しさん :04/05/08 04:36
低レベルで申し訳ないです。VC++ ver.6 で、ソースファイルの名前を
途中から変更するのは可能なのでしょうか?(出力ファイル名は変更可能なようですが)

いや普通にシェルで変えるのはできるのでしょうが、Makefileその他のファイルの記述も
自動で変更を反映してくれる様な機能が備わっているのかな?という事を御教授頂きたいのです。

よろしくお願いします

98 名前:デフォルトの名無しさん :04/05/08 06:41
>>97
・一旦ビルド-クリーンして中間ファイルを削除
・名前を変えたいファイルをファイルツリー上で削除
・エクスプローラなどでファイル名を変更
・プロジェクトにファイルを追加
・リビルド

99 名前:デフォルトの名無しさん :04/05/08 10:25
VS NET2003を使ってます。

そこでボタンやエディットコントロールなどのプロパティ項目にある Disabled を制御するには
どうすればいいのでしょうか?
本とかには

button->Enabled = false;

とか書いてあるのですが、コンパイルで
button は CEdit のメンバーじゃありません。としかられます
ならば

button->Disabled = false;

等してもやはりだめでした…
ヘルプもどこを参照すればいいのかわからずじまい。



100 名前:デフォルトの名無しさん :04/05/08 10:36
>>99

自己解決しました。

button->EnableWindow(FALSE);

でできました。
となると本に書かれてる Enabled は一体…

101 名前:デフォルトの名無しさん :04/05/08 11:30
>>100
()が付いていないってことは関数処理でなく変数じゃないのかな?
そのクラスにオリジナルのコードでそういう有効・無効を判定するための
メンバ変数を加えてあって、処理コードは別にあるのでは?

102 名前:97 :04/05/08 14:08
>>98
お返事ありがとうございました!感謝です

103 名前:デフォルトの名無しさん :04/05/08 23:56
スクリーンセーバーの起動のようにアプリの内と外含めて一定時間
ユーザーからの入力が無いか調べたい為
キーボードとマウスをフックしてみたのですが
ほかのアプリがウィンドウを開いた入りすると
フックプロシージャーが呼び出されてしまいます。
いい方法はありますか?

104 名前:デフォルトの名無しさん :04/05/09 01:00
>>103
呼ばれること自体まずいのか?
いらんのはプロシージャで弾けば?

105 名前:19 :04/05/09 11:30
>>20
レスが遅くなりました……。
多分SetMapModeだと思います。
ウィンドウの表示倍率を変更したいのですが(たとえば640*480のウィンドウを320*240に)、
そういった場合はどういった記述をしたらよいのか、よく判らなくなってしまいました。
SetWindowExtExを使うかもしれないことは判ったのですが……どうしたらいいんですか?

106 名前:デフォルトの名無しさん :04/05/09 11:58
VisualC++ .NET2003を使用しています。

HWND hWnd=this->panel1->Handle;
の行で
「error C2440: '初期化中' : 'System::IntPtr' から 'HWND' に変換でき
ません。」
とエラーが発生します。どのようにすればよいのでしょうか?



107 名前:デフォルトの名無しさん :04/05/09 12:18
>どのようにすればよいのでしょうか?

エラーはやっている事が間違っているから出る
>HWND hWnd=this->panel1->Handle;

もまえのやりたい事はなんだ?
1)this->panel1->Handleを何らかの変数に格納したいのか?
なら、変数の型が間違っている
2)HWND hWndに何か格納したのか?
なら、this->panel1->Handleではない

108 名前:デフォルトの名無しさん :04/05/09 13:06
>107さま
>もまえのやりたい事はなんだ?
ご返事ありがとうございます。
で、やりたいことは、話し長くなりますが・・・
ttp://www.microsoft.com/JAPAN/developer/library/
jpdx8_c/ds/appdev/capture_intro.htm
これをもとにして作ると別のフォーム(ダイアログボックス?)
に、動画がでてきます。
任意のpictureBoxまたはpanelに動画をキャプチャできないかなぁ
と思っています。
そして、どうすればいいのか分からず、
IVideoWindow *pVidWin = NULL;
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVidWin);
HWND hWnd=this->panel1->Handle;
pVidWin->put_Owner((OAHWND)hWnd);
というのを追加したら、エラーがでました。
根本的な考え方が間違えているかもしれませんが・・・

109 名前:デフォルトの名無しさん :04/05/09 13:12
とりあえず reinterpret_cast<HWND>(this->panel1->Handle)

110 名前:デフォルトの名無しさん :04/05/09 16:23
ご返事ありがとうございます。
どういう意味か頑張って調べてみます。
reinterpret_cast<HWND &>(pictureBox1->Handle);
でただいまチャレンジしています。

111 名前:デフォルトの名無しさん :04/05/09 17:11
C++ で構造体を動的メモリ確保したいのです・・・・(構造体を配列でn個)
C で malloc して realloc する様なイメージなのですが、良い方法ありますでしょうか?

環境は、VC++6.0Pro、Windows2000+サービスパック5 です。

112 名前:デフォルトの名無しさん :04/05/09 17:12
new,delete

113 名前:デフォルトの名無しさん :04/05/09 17:17
>>112
早速の回答ありがとうございます。
new でサイズの変更はどのように行うのでしょうか?

いま、調べて vecter と言うのがあったのですが・・・
他ルーチンへ引数として渡そうとするとコンパイルエラーになってしまいます。
(書き方がわるいのか???)

114 名前:デフォルトの名無しさん :04/05/09 17:19
おまえらC++の本くらい読んでから質問しろよ

115 名前:デフォルトの名無しさん :04/05/09 17:27
>>113
をいをい・・・new, deleteってのはこういう感じで使ってくれい。

char* buf = new char[1024];

これで動的にchar型の1024個の配列を確保。

delete[] buf;

これで確保した配列を解放。

構造体でも記述方法は基本的に同じ。

116 名前:デフォルトの名無しさん :04/05/09 17:33
>>115
1024バイトの領域を確保するのならいいのですが、

struct test{
・・・
};

で test 構造体を 条件によって複数個、配列で持ちたいのです。

C表現なら

struct test *aaa;
a = (struct test *)malloc( sizeof(struct test));
で5個に変更したければ、
a = realloc( sizeof(struct test) * 5 );
のような意味です。


117 名前:116 :04/05/09 17:36
a = realloc( a, sizeof(struct) * 5 );
の間違いです。

118 名前:デフォルトの名無しさん :04/05/09 17:46
う〜んそれはnew, deleteじゃ無理くさい?

119 名前:デフォルトの名無しさん :04/05/09 17:48
>>116-117
せっかく教えてもらったんだから new, delete を
もうすこし調べてみてはどうだろう。


120 名前:デフォルトの名無しさん :04/05/09 17:48
>>116
charをstructで読み替えれば良いだけでは?

new-deleteくらいはC++の基本書式なんだし
とりあえず参考書でも一通り読んでくれよ

121 名前:デフォルトの名無しさん :04/05/09 17:50
どうしても調べる気がないならC++スレでやってくれ

122 名前:デフォルトの名無しさん :04/05/09 17:51
>>111は動的にメモリを確保したいと言うより確保量を動的に変えたいのだと思われ

123 名前:デフォルトの名無しさん :04/05/09 17:53
そんなもんnew test[ここを好きな数字にしろバカ]

124 名前:デフォルトの名無しさん :04/05/09 17:57
っていうか、malloc/realloc じゃだめなのか?

125 名前:デフォルトの名無しさん :04/05/09 17:58
>>116
可変長配列ならvectorでいいじゃん。
頼むからCObArrayだけは使わんでくれ。

126 名前:デフォルトの名無しさん :04/05/09 18:00
猫のSDK編第1部第6章のメニューの作り方を解説しているところがわかりません。
「さて、VC++4.2ではこのリソーススクリプトをプロジェクトに挿入する必要があります。「挿入」「プロジェクトへファイルを追加」を選択して sample02.rcを追加して下さい。 」
というところです。
新規作成でリソース・スクリプトを作っても英文を打つ場所がでてきません。
どうすればいいんでしょうか?
環境は6.0です。

127 名前:111・116 :04/05/09 18:03
みなさん、色々な回答ありがとうございます。
>>124 さんがおっしゃる様に、realloc使えました。(使えないと勘違いしました)
時間を見て vector でも試してみたいと思います。(関数引き渡しで怒られる件)

128 名前:デフォルトの名無しさん :04/05/09 18:07
>>126
IDEなんかに頼らずに、自前のエディタ使ったら?
さもなきゃnotepad.exeとか。

129 名前:デフォルトの名無しさん :04/05/09 18:55
>128 スレタイ読めんのか?

130 名前:デフォルトの名無しさん :04/05/09 19:21
>>126
テキストディタでsample02.rc作って(コピペして)プロジェクトに追加汁
でなけりゃ既存のrcファイルをテキストモードで開け

131 名前:デフォルトの名無しさん :04/05/09 19:48
>>126
プルダウンメニューの
[ファイル]→[開く]
ここで、ダイアログの一番下にある
[用途] を [テキスト] にして
*.rc を選択すれ

132 名前:126 :04/05/09 20:30
ありがとうございました。
出来ました。

133 名前:128 :04/05/09 22:12
>>129
読めてますが何か。
#それともIDEとエディタを連携させちゃいけないとでも思っているのだろうか。

134 名前:126 :04/05/09 22:17
>>128-131
ありがとうございました。
無事できました。

>>132
何で俺のふりを・・・。

135 名前:103 :04/05/10 01:32
>>104
弾く為のユーザー入力かそれ以外か区別をどこですればいいのか不明です。
スクリーンセーバーの起動のように
ユーザーが直接入力操作していない時間を知りたいので
他のアプリの動作によって
フック関数が呼び出されてはまずいです。
フックを使うべきではないのかも
入力のアイドリング時間を知る方法として何か API があるのかと思い調べてみたのですが
無いのか、見つけ損ねているのか

136 名前:デフォルトの名無しさん :04/05/10 03:54
VC7.0でDirectX8.0SDKを使ってます。
グローバル変数の宣言を今より増やすとデバックで、「場所0x----------を読み込み中にアクセス違反が
起こりました」とエラーになり、ソースエディタで矢印が指している行にあるのは新たに追加した変数とは無関係な
メモリを確保するAPIなどです。
グローバル変数の総量は2kぐらいです。十分なメモリは積んでいます
何が悪いのでしょうか?

137 名前:デフォルトの名無しさん :04/05/10 04:47
コードが悪い。

原因は特定できないが、一例として配列のオーバーアクセスとかじゃないの?
新たに追加した変数が云々じゃなくてさ。
今までは、メモリレイアウト的に偶然動いてたみたいな。

138 名前:デフォルトの名無しさん :04/05/10 07:40
VCでとあるオープンソースソフトのビルドに挑戦したのですが
「logbが定義されとらん」と怒られてしまいました。
それでDevasで検索したりしたけどうちの環境に入ってないのか
logbを定義しているヘッダファイルが見つかりませんでした。

というわけで
VC用のヘッダファイルでlogbが定義されてるのは何でしょうか?

gccのmath.hにあるのは知ってるんですが
無理矢理VC用のmath.hにコピペしてもやっぱり駄目だったので。

139 名前:デフォルトの名無しさん :04/05/10 07:58
>>138
MSDNで「logb」検索したけど0件。
存在しないんじゃ・・・

140 名前:138 :04/05/10 08:11
がーん。
すっかりMSDNの存在を忘れてました。
IntelC++では使えるみたいなので
仕方なくIntelでやることにします。

141 名前:デフォルトの名無しさん :04/05/10 10:14
いまから時代遅れのC++始めるんだったらC#にしろと。
次期WindowsでWinFXという次世代APIIが出るんだ。
もうWin32の時代は終わりなんだよ。
もってもあと2年かな?こんな将来性の無いAPI&言語なんてやってられねー

さっさとマネージドアプリ(.NET Framework専用アプリ)に転換しろ
俺はお前らの将来のために言ってるんだからな
VC++もマイクロソフトは仕方なくリリースしている状態。いわばVBより格下。

142 名前:デフォルトの名無しさん :04/05/10 15:47
格下ってなに?

143 名前:デフォルトの名無しさん :04/05/10 17:02
放置しろや

144 名前:デフォルトの名無しさん :04/05/10 17:58
C#使い道ねぇよ('A`) .NETアプリの需要って・・・

145 名前:デフォルトの名無しさん :04/05/10 21:16
>いわばVBより格下

┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨┣¨

146 名前:136 :04/05/10 21:47
>>137
配列のオーバーアクセスとは何でしょうか?
コードはサンプルに手を加えていった感じで自分ではどこで使い方が間違っているのかが
よく分かりません。配列をどのように使うとこういうことが起きるのですか?

147 名前:デフォルトの名無しさん :04/05/10 21:55
int n[10];
n[9] = 9; // OK
n[10] = 10; // NG
n[11] = 11; // NG

for(int i = 0; i < 20; ++i)
 n[i] = i; // NG


148 名前:デフォルトの名無しさん :04/05/10 22:03
おまえらよくスレ違い煽りにレスする気になるよな

149 名前:デフォルトの名無しさん :04/05/10 22:04
>>114

150 名前:デフォルトの名無しさん :04/05/10 22:58
>>138
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt__logb.asp

151 名前:136 :04/05/11 00:01
>>147
それはしてないです。
問題点を特定できる方よろしくおながいします

152 名前:デフォルトの名無しさん :04/05/11 00:33
>>151
ソースも晒さんと、それ以上問題点を特定できるか、ボケ!!
ほぼ間違いなく、書いてはいけない領域に書き込んでる。以上。

153 名前:136 :04/05/11 00:53
オーバーアクセスしてますた
ごめんなさい

154 名前:中国人就学生 :04/05/11 01:58
オーバーステイしてました。
ごめんなさい。

155 名前:デフォルトの名無しさん :04/05/11 10:15
最近VC++を始めてクラスの概念とかはなんとなく分かってきた。
しかしMFCって難しいね。自分が使いたい機能がどのクラスのメンバ関数なのか
とかって全部覚えなきゃならないんですか?

156 名前:デフォルトの名無しさん :04/05/11 10:23
どのオブジェクト(部品)を使いたいかだけ覚えればいい。
そうすりゃ、そのオブジェクトにどういう操作をしたいかってのは
メソッド一覧を見れば簡単に理解できる。

157 名前:デフォルトの名無しさん :04/05/11 10:36
>>155
> 自分が使いたい機能がどのクラスのメンバ関数なのか

順序が逆。クラス体系が先で、その後でどういう機能が使えるかという順。

158 名前:デフォルトの名無しさん :04/05/11 14:53
質問があります。

ダイアログクラス(aaa.cpp)で定義されたメンバ変数を他のクラス(bbb.cpp)から変更することは
できますか?

クラスの概念をよく理解していないのです。

VC6.0を使用しています。

159 名前:デフォルトの名無しさん :04/05/11 15:39
メンバ変数を他のクラスから変更とは
メンバ変数に他のクラスからアクセスして
値を代入したいということか?

160 名前:デフォルトの名無しさん :04/05/11 15:55
>>159
そうです。解りづらい書き方ですみません。

161 名前:デフォルトの名無しさん :04/05/11 16:29
VC++で正規表現のライブラリってあるんですか?
ないとしたら、どのライブラリを皆さん使ってるんでしょうか?
LEIRegExpというライブラリを使ってみたんですが、
多重定義のエラーが出てコンパイルできません。
Boostも相性悪いみたいだし・・・

162 名前:デフォルトの名無しさん :04/05/11 17:09
>>160
aaaのメンバ変数がpublicなら自由に変更出来る。
privateならaaaクラスの中からしかアクセス出来ない。
protectedの場合はbbbがaaaの派生クラスならアクセス出来る。
こんな感じかな。
よく分らないならとりあえずpublicにしておけば良い。
詳しいことは164が答えてくれる。

163 名前:デフォルトの名無しさん :04/05/11 18:15
VisualStudio.NETでC++で利用のプログラムを作成しようとしています。
複数のTEXTBOXでフォーカスのあるコンポーネントのフォントを変更する
コンボボックスを作成しようとしています。
TEXTBOXの利用可能なフォントを取得するためにEnumFontsを利用しての
コンボボックスへの登録を考えていますが、コンボボックスへのポインタ取得のための
IDがデザインでのプロパティ表示中にありません。
何かIDを取得する方法はないものでしょうか?


164 名前:デフォルトの名無しさん :04/05/11 18:22
MFCならモードレスダイアログを使ってはどうでしょう?
モーダルダイアログだとDoModalを実行すると他のウィンドウ
から操作ができません。
モードレスダイアログを作成するにはCreateを使います。
デフォルトでは非可視の状態ですので注意して下さい。


165 名前:デフォルトの名無しさん :04/05/11 18:57
>>161
VC7.1 なら ATLサービスに正規表現クラスがある。

166 名前:デフォルトの名無しさん :04/05/11 19:01
>>161
.NET Framework にも正規表現クラスがある

167 名前:デフォルトの名無しさん :04/05/11 20:12
SetTimer で 1ms を指定したのですが、GetLocalTime で時間をとって見ると10ms程経っています。
SetTimerで指定できる時間って1ms単位ではないのですか?

168 名前:デフォルトの名無しさん :04/05/11 20:19
1ms単位では指定できないと考えたほうが今後のため
精度が良くないわけだ。

169 名前:デフォルトの名無しさん :04/05/11 20:53
時間のかかる処理中に、モードレスのダイアログを表示しているのですが、
うまくいきません。
ダイアログは、ボタンが一つだけついているのですが、枠だけ表示
されてボタンが表示されないのですが、なんででしょうか。

マルチスレッドとかにしないとだめなんでしょうか。

170 名前:デフォルトの名無しさん :04/05/11 21:03
↓エスパーの方、どうぞ。

171 名前:デフォルトの名無しさん :04/05/11 21:13
アプリケーションの終了ボタン(右上の×)をクリックすると処理はどこへ飛んでくるのでしょうか?
また、それは定義できるのでしょうか?

172 名前:デフォルトの名無しさん :04/05/11 21:18
OnDestroy でOKですか?

173 名前:デフォルトの名無しさん :04/05/11 21:19
WM_CLOSE

174 名前:デフォルトの名無しさん :04/05/11 21:48
エスパーの人お願いします。

175 名前:デフォルトの名無しさん :04/05/11 21:53
>>169
時間のかかる処理ではマルチスレッドを使うのが望ましい。
しかし PeekMessage を使ってもいい場面もあるとは思う。
http://cgi.members.interq.or.jp/gold/marken/
ここの過去ログで PeekMessage を検索すればいろいろ出るかな。

176 名前:デフォルトの名無しさん :04/05/11 21:54
>>167
SetTimer で期待できるのは 20ms くらいとどこかで見た気がする。

177 名前:169 :04/05/11 21:55
>>175
ありがとうございますエスパーの人。
調べてみることにします。

178 名前:デフォルトの名無しさん :04/05/11 22:07
>>169
((CButton *)GetDlgItem(IDC_xxxx))->ShowWindow(TRUE);


179 名前:169 :04/05/11 22:17
>>178
なんですと?
つまりコントロールの一個一個を見えるようにしろと?
そうだったんですか。
どうもありがとうございます。

180 名前:デフォルトの名無しさん :04/05/11 22:35
あ、ちがってたか。

181 名前:デフォルトの名無しさん :04/05/11 23:24
>>169
まあマルチスレッドでやるのが結局簡単な気がするね。

182 名前:175 :04/05/11 23:35
ですね。
スレッドを生成して処理を行う方法も、一度覚えてしまえば簡単です。


183 名前:169 :04/05/12 00:16
わかりました。これまで避けてきましたが、マルチスレッドで
やってみることに致します。
どうもありがとうございました。

184 名前:デフォルトの名無しさん :04/05/12 01:17
managed C++でプログラム組んでる人います?
さすがにATL/WTLはもう寿命かと思い、別のものを使おうと思うんですが
今からやるならMFCとnamaged C++どっちが良いんですかね?

185 名前:デフォルトの名無しさん :04/05/12 01:33
MC++ならC#の方がいいだろうが
MFCにも未来なんてないんだし

186 名前:デフォルトの名無しさん :04/05/12 03:13
>>184
もうちょっとそれぞれについて調べてから質問しようや

187 名前:デフォルトの名無しさん :04/05/12 10:02
デバッグ時に

例外処理 (初回) は app.exe (MSVCRTD.DLL) にあります: 0xE06D7363: Microsoft C++ Exception

という警告がやたらに出てアウトプットが埋め尽くされてしまうのですが、
この警告を消せませんか?
検索してみたんですが、それらしいものが見つかりませんでした・・・

188 名前:163 :04/05/12 10:13
反応がない…
かなしい…しくしく
質問の仕方が悪かったのだろうか?


189 名前:デフォルトの名無しさん :04/05/12 10:38
VC6で、ワークスペースウィンドウ上でHogeフォルダにHoge.hがあるのに、
Include "Hoge/Hoge.h"で通りません。どうすればいいのでしょう。

ワークスペースウィンドウ上でフォルダの新規作成をしても
実際の位置(全ファイルがあるフォルダ)にはフォルダができていなく、
また逆に、実際の位置でフォルダを作成しても
ワークスペースウィンドウ上では表示されていません。
プロジェクトに追加でもフォルダは追加できないみたいですし。

190 名前:189 :04/05/12 10:39
>>189
2行目は #include "Hoge/Hoge.h" です。

191 名前:デフォルトの名無しさん :04/05/12 12:26
DAOで特定のフィールドを主キーに設定するには、
どうすれば良いでしょうか?

192 名前:デフォルトの名無しさん :04/05/12 13:01
>>189
プロジェクトの設定 -> C/C++ -> カテゴリ:プリプロセッサ -> インクルードファイルのパス -> (゚д゚)ウマー

193 名前:189 :04/05/12 14:40
>>192
ありがとうございます。見つかりましたのでやってみます。

194 名前:167 :04/05/12 14:50
SetTimer だと分解能が粗すぎる(Win9xで55ms、Win2Kで10ms)ので
マルチメディアタイマを使って見ようと思いました。が問題発生!

timeSetEvent( 1,          // 間隔[ms]
0,          // 分解能
TimerEvent,    // 割り込み関数
0,          // ユーザーパラメータ
TIME_PERIODIC | TIME_CALLBACK_FUNCTION // 動作フラグ
);

を試みると、
Error C2664 error C2664 3番目の引数を変換できません
となってしまいます。
誰か解決方法わかる方、教えてください。

195 名前:デフォルトの名無しさん :04/05/12 15:04
>>194
>解決方法
マニュアルを読む。MSDNで調べる。

196 名前:デフォルトの名無しさん :04/05/12 20:03
>>194
TimerEventはコールバック関数になってる?

197 名前:デフォルトの名無しさん :04/05/12 20:22
本日近所のラオックスでvisualc++6.0standard edition を買ってきました。
本屋で林晴比古のス-パ-ビギナ-編、ビギナ-編、高橋麻奈のやさしいc++
も買ってきました。わからない所があれば質問するのでおながいしまつ。

198 名前:デフォルトの名無しさん :04/05/12 21:28
>>197
釣り?
まだ売ってるの?
なんで今さら6.0 ?
業務で使用するため互換性が必要だたとかじゃないなら、変なクセがつくだけ。
ほんとに買ったの?

199 名前:デフォルトの名無しさん :04/05/12 21:54
>>167
関数TimerEventの宣言どこでやってますか?
グローバルにするとか、
クラス内なら static を使うとか・・・。




200 名前:デフォルトの名無しさん :04/05/12 23:36
スレ違いかもしれませんが質問ですー

c→c#への移植作業中なんですが

#define CMDSEPA "\1"

って行がありまして・・・・"\1"ってなんですか?


201 名前:デフォルトの名無しさん :04/05/12 23:41
1

202 名前:デフォルトの名無しさん :04/05/12 23:41
>>200
1

203 名前:200 :04/05/12 23:47
ありがとうございますーーーー

204 名前:デフォルトの名無しさん :04/05/13 08:39
MFCを使わずにドッキングバーを作成したいのですが
何か参考になるようなURLなどを教えてもらえないでしょうか。

205 名前:デフォルトの名無しさん :04/05/13 09:27
MFCはソースが見れたんじゃなかったけ?


206 名前:デフォルトの名無しさん :04/05/13 22:36
ある配列(配列の数はxの平方数)に0〜256の間の値が記憶されています。
この値をそのままモノクロBMPの白黒に対応させてBMPファイルを保存したい
と思っています。BMPファイルのヘッダーを書き込んでから1bitずつwriteしていっても
いいのですがそれだと結構面倒でたまに間違ったりしてしまいます。

どなたか配列の値を繁栄させたモノクロBMPファイルを保存してくれる関数かクラスを
公開されているかたはいらっしゃらないでしょうか?


207 名前:コンパイル警告 :04/05/13 23:03
VC++6.0でSTLの勉強をしてるのですが、
意味不明なワーニングが出て気になってしょうがないです。
コンパイルには支障ないのですが…

Win32 Console Application を新規作成して、
--------
#include <iostream>
#include <vector>
#include <string>

using namespace std;
typedef vector<string> strings;
void main()
{
strings a;
a.push_back( "1行目" );
cout << a[0] << endl;
}
--------

をコンパイルすると、いやに長いメッセージが出ます
これって何なのでしょうか?



208 名前:コンパイル警告(その2) :04/05/13 23:05
(続き)

以下、メッセージです

D:\dev\vc\テスト・学習用\STL_vector\STL_vector.cpp(20) : warning C4786: 'std::reverse_iterator<std::basic_string<char,std::char_traits<char>,
std::allocator<char> > const *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::bas
ic_string<char,std::char_traits<char>,std::allocator<char> > const &,std::basic_string<char,std::char_traits
<char>,std::allocator<char> > const *,int>' : 識別子が '255' 文字に切り捨てられました (debug 情報内)。
D:\dev\vc\テスト・学習用\STL_vector\STL_vector.cpp(20) : warning C4786: 'std::reverse_iterator<std::basic_string
<char,std::char_traits<char>,std::allocator<char> > *,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_str
ing<char,std::char_traits<char>,std::allocator<char> > &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > *,int>' :
識別子が '255' 文字に切り捨てられました (debug 情報内)。

(以下同じようなメッセージがえんえんと続く…)

209 名前:コンパイル警告(その3) :04/05/13 23:06
(続き)

ちなみに、警告にある20行目とは、main の閉じカッコの行に相当します

210 名前:デフォルトの名無しさん :04/05/13 23:10
MSDNでC4786を検索すれば答は見つかる。


211 名前:コンパイル警告(結果) :04/05/13 23:23
ああ…なるほど、テンプレートの関係で識別子が長くなったってことですね。
MSDNのサンプルの通り、コードの先頭に

#define reverse_iterator R_
#define basic_string B_
#define allocator A_
#define vector V_

を付けて無理矢理短くなるようにしたらうまくいったのですが…
なんか、こう、しっくりこないですね、これって…

212 名前:デフォルトの名無しさん :04/05/13 23:35
#pragma warning( disable : 4786 )
で抑止するって手もあるよ。

213 名前:デフォルトの名無しさん :04/05/14 00:03
>>206
1bit ずつはやりたくないなぁ。

とりあえず CreateDIBSection あたりなのかな。

214 名前:デフォルトの名無しさん :04/05/14 01:34
すいません、C++.netの初心者向けに解説されているサイトを教えて下さい。

215 名前:デフォルトの名無しさん :04/05/14 01:57
仕事柄、8ビット値を256諧調グレー画像に変換(或いはその逆)するのはよくやるけど、
値域が0-256なんてのは見たことないや。

216 名前:デフォルトの名無しさん :04/05/14 02:05
>>206
モノクロDIB生成>そいつにBitBlt
で出来ねーかな。

217 名前:デフォルトの名無しさん :04/05/15 01:33
エクスプローラ上で表示される、アプリケーションのアイコンを変更したいのですが、
検索して調べた方法によると、
MFCのダイアログベースのアプリケーションで、

16x16のアイコンを作成した後、CxxxApp::InitInstanceで
HICON hIcon = AfxGetApp()->LoadIcon(IDI_ICON);
AfxGetMainWnd()->SetIcon(hIcon, TRUE);// 大きいアイコンを設定
AfxGetMainWnd()->SetIcon(hIcon, FALSE);// 小さいアイコンを設定

とやってビルドすれば変更できるようなのですが、
やってみてもできません。MFCのアイコンが表示されてしまいます。
なんで変更できないんでしょうか・・・。

218 名前:デフォルトの名無しさん :04/05/15 02:04
肝腎のアイコンのIDを間違ってたりして。

219 名前:デフォルトの名無しさん :04/05/15 10:29
>>217
> エクスプローラ上で表示される、アプリケーションのアイコンを変更したいのですが、

それは外部プログラム(エクスプローラ)から利用されるものなんだから
キミのプログラムのプログラム・コードじゃなくてリソースの問題。コード
をいじって変更できるのは、プログラム実行時のウィンドウに割り当てら
れるアイコン類。

要するにだ、外部参照のリソースとしてのメインフレーム・アイコンは
IDR_MAINFRAMEというIDで割り当てられているものが使われるように
なってるので、それを変更してやらないとダメ。

220 名前:デフォルトの名無しさん :04/05/15 11:49
エクスプローラがデフォで表示するアイコンは
リソース中の最初のアイコンじゃなかったっけ?

221 名前:デフォルトの名無しさん :04/05/15 17:07
>>218-220
レスありがとうございます
自分で新規IDのアイコンを作成して、それを読みこむようにしてたつもりだったのですが、
>>219さんに言われた通り、IDR_MAINFRAMEの方を変更したらきちんとアイコンが変更されました。
ありがとうございました。

222 名前:デフォルトの名無しさん :04/05/15 17:18
質問です。解決方法を探しています。

VisualC++6.0でデバッガを使用すると強制終了するようになりました。
デバッガが終了した時点でVCが落ち、その後すべてのアプリケーション
(メモ帳、エクスプローラ等)が「アクティブになった瞬間」落ちるようになります。
※落ちるのはデバッガ使用時に起動していたアプリケーションのみです。

下記のコードをコンソールアプリケーションとして作成・デバッグした場合、
MessageBoxがとおる前にデバッガを停止させると上記の問題は発生しません。
#include "windows.h"
#include "stdio.h"
int main(int argc , char *argv[])
{
  printf("HELLO WORLD");
  MessageBox(HWND_DESKTOP, "HELLO WORLD", "Test Application", MB_OK);
  return 0;
}

環境
Windows98SE(アップデートは頻繁に行っている)
Microsoft VisualC++6.0 SE(修正パッチなし)
NEC LavieNX LW45H/23DR モバイルCeleron450MHz メモリ128MB HD12GB

試したこと
OSのアップデート、VCの再インストール、常駐アプリケーションの削減
VCのアップデートはMSのサイトが混雑しているので後日再挑戦します

223 名前:デフォルトの名無しさん :04/05/15 18:27
>>222
VC詳しくないんだけど、MessageBox()の第一引き数がものすごく怪しい。
何故そんな値を使っているのかがわかれば解決しそうな気がしないでもない。

224 名前:デフォルトの名無しさん :04/05/15 18:38
>>222 を俺の環境でやってみたけど無問題
W2k VC6.0
でも第一引数は NULLでえーやんと思うが・・・

225 名前:222 :04/05/15 19:24
ありがとうございます。
コードは掲示板に書き込む目的で作成したもので、GUIを利用した場合のみ
問題が発生することを検証した結果でもあります。過去に作成したプログラム
やネット上のサンプルもデバッグできない状況です。
OSの動作は非常に安定していますが、リカバリしてしまうかどうか悩むところ。

ちなみにHWND_DESKTOPの正体はNULL値です。紛らわしい固定値を使っていて
申し訳ありません。

226 名前:デフォルトの名無しさん :04/05/15 22:09
オーナードローでボタンを描画しているのですが
いまいち反応が悪い気がします。
今やっている方法はWM_DRAWITEM命令が来たら
ボタンの状態を見て、すでに読み込んだビットマップを
貼り付けているんですが、WINDOWS通常のボタンと比べて
だいぶ反応が悪い気がします。
なにかオーナードローでの処理を軽くするための方法とか
あるんでしょうか?教えてください。

227 名前:デフォルトの名無しさん :04/05/15 22:49
VC++6.0で簡単な2次元の絵をコンテナ上に表示させるプログラムを
作ろうと思っています。絵の元データは2次元行列に格納されたdouble型
の数値です。この数値の値に従って色を配色して2次元行列を視覚的
に見てみようと思っているのですが、このようなことを解説している
本やサイトはありますでしょうか?VC++の入門書を読むとグラフィックス
の表示方法に関しては軽く触れられているものが大多数でした。

228 名前:222 :04/05/15 23:07
気を取り直してWindowsXPのパソコンでプログラミングを再開しましたが、
今度はマルチスレッドを使ったとたんにOSごと固まる・・・もうやだ。

>>227
サイトは知らないけど、たとえばCreateDIBSectionで32bitビットマップを
作成すれば画像をint型配列のように操作できるから、これをキーワードに
検索してみてはいかがでしょう。

229 名前:デフォルトの名無しさん :04/05/15 23:37
>>227
やりたい処理は、自分で作成したピクセル情報をどこかに格納しておいて
描画、という流れになるわけだね。それなら、DIBを使うのがよさそう。
処理速度にこだわらないなら、普通のBITMAPにSetPixelしていってもよい
かもしれんがw

DIBや画像周りの処理に関してはこことか

http://www.sm.rim.or.jp/~shishido/


230 名前:デフォルトの名無しさん :04/05/15 23:58
>>226
たぶんそれダブルクリックを拾っちゃってるんじゃないかと。
ダブルクリックのメッセージを拾ったときもシングルクリックと
なるようにすればよいです。

231 名前:230 :04/05/16 00:05
WM_LBUTTONDBLCLK メッセージのハンドラを作って、
WM_LBUTTONDOWN を SendMessage してやればよいです。

void CMyButton::OnLButtonDblClk(UINT nFlags, CPoint point)
{
SendMessage(WM_LBUTTONDOWN, (WPARAM)nFlags, MAKELONG(point.x, point.y));
CButton::OnLButtonDblClk(nFlags, point); //←コメントアウトかな〜?
}

MFCだとこんな感じでしょうか。基底クラスのハンドラを呼ぶか
コメントアウトするか、どっちがいいんでしょうかねぇ。
どっちでもいいか?


232 名前:230 :04/05/16 00:06
・・・って、クリックの反応が悪いとはどこにも書いてないな。
描画が遅いんですか?


233 名前:デフォルトの名無しさん :04/05/16 00:13
>>228
VS6はXPでデバッガ使うとダメっぽい感じ。
2KとかWinDbgとかなら大丈夫かもしれない。

234 名前:227 :04/05/16 00:19
>>230さんの言ったようにBN_DBLCLKを検出してみたところ
確かに、動作が鈍かったときはダブルクリックだと判断して
ボタンのステータスが変わらなかったためだったようです。
で、>>231やダブルクリックメッセージの処理とかについて
がんばって調べてみます。
ありがとございました。


235 名前:227は私だが・・・ :04/05/16 00:24
>>228-229
ありがとうございます。
おかげさまでDIBに関して詳細に紹介されているサイトを見つけるとが出来ました。

236 名前:234 :04/05/16 00:39
>>235
すみませんでした・・・
>>234>>226のまちがいです・・・



237 名前:234 :04/05/16 14:40
>>230さんの方法でいろいろ調べてみました。
私はSDKでプログラムを作っていて、ウィンドウスタイルでダブルクリックが
検出されない設定だったので、WM_COMMANDでの各ボタンの
BN_DBLCLKを検出してBN_CLICKEDに変えたメッセージを送ってみたんですが、
相変わらずでした。orz
で、届いているメッセージを表示するようにして、調べたところ、
やはり、ダブルクリック時にWM_DRAWITEMメッセージがでていない感じ
だったんですが、SDKでは、>>231みたいな各ボタンに対する
WM_LBUTTONDOWNとかはどうやって作ったらいいですか?
ホントダメですんません。。。


238 名前:デフォルトの名無しさん :04/05/16 15:48
http://www.kumei.ne.jp/c_lang/intro/no_54.htm
ここで使われてるコンパイラ古くて、
今使ってるVC++6.0じゃライブラリの作成や追加の手順が分かりません…('A`)タスケテ…

239 名前:デフォルトの名無しさん :04/05/16 16:19
>>238
マニュアルくらいは読んでから、下調べくらいはしてから聞こうね。

240 名前:234 :04/05/16 17:18
サブクラス化することで、各ボタンに対してのメッセージを処理することができました。
それで、また新しい質問なのですが、
似たような動作をするボタンがあったときに、
それら全部に対してある動作をしたいために、サブクラス化したんですが
全ボタンに対して一つずつボタン処理の手続きを作るのは大変だったので
一つだけつくって、デフォルトの時は一つ目のボタンと同じように動作するよう
設定しました。
見た感じでは動作には問題ないようなのですが、ほかのボタンのプロシージャ
を使って処理してしまって見えないところで問題とか起こらないでしょうか・・・?
それとも、ボタンのプロシージャは基本的に同じことをやってるので問題ないですか?


241 名前:デフォルトの名無しさん :04/05/16 22:25
1.サングラス化って何?
2.ウンコって苦いの?


242 名前:デフォルトの名無しさん :04/05/16 23:48
>106>110でお世話になっていたものです。
古い話なのですが、
>106>110に関連していまして、
pictureBox1にUSBカメラの動画が流れている状態にはなったのですが、
任意の場面で、動画を一旦止めて、その画面を別のpictureBoxにコピーし
保存したいと思い、
pControl->Stop();
pictureBox2->Image=pictureBox1->Image;
pictureBox2->System::Drawing::Image::Save("d:/testZ.bmp",System::Drawing::Imaging::ImageFormat::Bmp);
というのを書いたのですが、

error C2039: 'System' : 'System::Windows::Forms::PictureBox' のメンバではありません。
error C2663: 'System::Drawing::Image::Save' : 5 オーバーロードに 'this' ポインタのための正しい変換がされていません。

となります。
基本的なところが理解できていないので、前にすすまないようです。
ご指導お願いします。

243 名前:デフォルトの名無しさん :04/05/17 01:11
VC++ .NET やってる人って、このスレにいるのかなぁ……

とりあえず原因は、
class PictureBox に System::Drawing::Image::Save というものが無いからだと思う。

ファイルに保存したいのであれば、
pictureBox2->get_Image()->Save(〜);
とかやればいいんじゃないの?
C# で少し .NET 触っただけだから、あまり自信ないけど。

244 名前:デフォルトの名無しさん :04/05/17 10:12
ツリー コントロールで、既定のアイテムをその子アイテムを
引き連れたまま移動させるには、どうすれば良いでしょうか?

245 名前:デフォルトの名無しさん :04/05/17 10:17
全部手で書くしかないのよねぇ・・・
既存のアイテムをコピーして、その場所にあったのを削除して、移動先に挿入する。

246 名前:デフォルトの名無しさん :04/05/17 10:33
では早速、VC++.NETでの質問を
ダイアログボックスで画面を切り替えながら処理を進めていくプログラムを作成しようとしています。
やり方として親のダイアログボックスを作成、各画面をその子供として作成しながら、
画面を進ませるにつれて前の画面を非表示にする。という手法を使っています。
ここで、各画面のラベルボックスにコードでテキストを表示させようとしています。
各画面のコンストラクタにてテキストをTextメンバに代入したのですが、最初のRunで
実行した画面のテキストは表示されたのですが画面を切り替えたあとの画面の
テキスト表示がされません。
Textメンバへの代入のコードは実行されているのですが…
どなたか助けてプリーズ


247 名前:デフォルトの名無しさん :04/05/17 10:40
古いツールの話で申し訳ないのですが、
InstallShield for Microsoft Visual C++ 6 を使って、VCで作ったアプリのインストーラを作ろうとしています。
アプリのバージョンが古かったときにレジストリを削除する処理と、アンインストールしたときにレジストリを削除する処理をそのインストーラに組み込みたいのですが、どう書いてよいやらさっぱりわかりません。
SetupRegistry()に書くのだろうということまではわかったのですが、そのスクリプトの書き方がわかりません。
InstallShield for Microsoft Visual C++ 6という本を発注してはみたものの、絶版の疑いもあるくらいでいつ届くかもわからず、かつ早急に必要なことでしたのでここに質問させていただきました。
もしご存知の方がいらっしゃったらどのようなスクリプトを書けばいいのか教えていただけませんか。

248 名前:デフォルトの名無しさん :04/05/17 11:13
インストーラー相談室ってあったよね

249 名前:デフォルトの名無しさん :04/05/17 11:24
>>248
今もありますか?
適当なスレが見つからずここに書いたのですが・・

250 名前:デフォルトの名無しさん :04/05/17 11:27
なんでスレ一覧で検索しないの?


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