2 :
デフォルトの名無しさん:2001/07/04(水) 15:33
3 :
デフォルトの名無しさん:2001/07/04(水) 15:36
4 :
デフォルトの名無しさん:2001/07/04(水) 16:54
あげ
5 :
デフォルトの名無しさん:2001/07/04(水) 20:53
VCって今バージョンいくつですか?
6 :
デフォルトの名無しさん:2001/07/04(水) 22:12
7 :
デフォルトの名無しさん:2001/07/05(木) 15:57
まぎらわしいからあげ
紛らわしい唐揚げ
9 :
デフォルトの名無しさん:2001/07/05(木) 18:21
ブロック崩しみたいなゲーム作ろうと思うんですけど、
もしかして、DirectX使わないと玉がちらつくことを防ぐのは不可能ですか?
10 :
9:2001/07/05(木) 18:26
玉はビットマップで描いてWM_TIMERで40ミリ秒ごとに移動して
再描画してます。
>>9 画面と同じ大きさの裏バッファ(メモリDC)を用意して、
そこに描画して、裏バッファに画面イメージが出来あがったら、
表(実際に表示されているサーフェス)に転送。
プログラム初心者です。
初めてカキコします。
たびたび質問すると思いますが、よろしくお願いします。
さっそくの質問ですが、
ウィンドウを最小化したときにツールバーではなく
タスクバーに入れたいんですがどうすればいいですか?
ウィンドウスタイルでWS_MINIMIZEBOXはあるのですが
タスクバーに入れるためのWS_***はありませんよね?
またタスクバーに入れたときのフローティングメニューの内容の
編集と表示方法も教えて下さい。
15 :
ののりん:2001/07/06(金) 17:27
<画像ファイルのプロパティの取得について>
質問させて下さい。
Windowsのエクスプローラー等で画像ファイル(gif, jpgなど)を右クリックして
「プロパティ」を選ぶと、幅や高さなどが解りますね。
これをプログラム(C++Builderを使っています)で取得するにはどうすればよろ
しいのでしょうか?
やりたい事は、例えば幅が2000ドットを超えている画像ファイルが
所定のディレクトリ内にあると、
「でかすぎるぞ ゴルア!」
というメッセージを出したいのです。
16 :
デフォルトの名無しさん:2001/07/06(金) 18:25
17 :
デフォルトの名無しさん:2001/07/06(金) 19:19
>>13 WM_CLOSEは
「終了時と」
言うよりは
「[x]ボタンを押された時」
に来るもんだと考えてください。
WM_CLOSE時にDefWindowProcを渡した場合
デフォルト処理としてWM_DESTROYが送られて終了になります。
よくある
「終了しますか? Yes No」
等はWM_CLOSE時に行うのがよいです。
WM_CLOSEで何もせずに0を返せば終了(というかWM_DESTROY)はしません。
18 :
fだs:2001/07/06(金) 20:03
VisualC++でBeckyのようなメールソフトを作りたいとおもっています
なにかいいサンプルソースないでしょうか?
よろしくお願いします。
19 :
・・・:2001/07/06(金) 21:11
具体的な質問なんですが、、、
「ふきだし.bmp」というビットマップ(画像)の上に、ふきだしの大きさに合わせて文字列を表示したいんですが、どうやればいいんでしょうか?
よろしくお願いします
20 :
トイレから暇つぶし:2001/07/06(金) 22:12
>>17 ウィンドウ終了時じゃなくてウィンドウズ終了時に送られてくるメッセージを知りたいのです
22 :
デフォルトの名無しさん:2001/07/06(金) 22:53
>>21 なんとかシャットダウンなんとか。
WM_*全部よんでけばそのうちぶつかるよ。
include/*.h あたりで検索すれ
23 :
デフォルトの名無しさん:2001/07/06(金) 23:46
25 :
デフォルトの名無しさん:2001/07/07(土) 14:26
SetFocusとかCWnd::SetFocusとかWM_SETFOCUSとかって、
対象ウィンドウか、その親をアクティブにしてしまうんですよね?
アクティブにせずにフォーカスを当てる方法ってありますか?
26 :
・・・:2001/07/07(土) 15:07
>20
ありがとうございます!、試してみます
27 :
9:2001/07/08(日) 22:33
case WM_KEYDOWN:
switch((char)wParam){
case VK_A:
//{処理}
break;
}
}
↑(たぶん)上のような感じにすると
VK_Aは定義されていない識別子だっていわれてビルドできません。
なぜなんでしょうか?ちなみにwindows.hはインクルードしてます。
28 :
9:2001/07/08(日) 22:35
申し送れましたが、
>>11さんありがとう。
でも、そうやっても多少のちらつきが出るんですが、
やむをえない所でしょうか。
VK_Aは0x41
30 :
9:2001/07/08(日) 22:58
>>29 VK_Aと書いてたところへ
0x41と書けば良かですか?
やってみます。
31 :
9:2001/07/08(日) 23:02
>>29 なるほど、うまく行きました。
でも、なんでVK_Aではうまく行かないのでしょうか?
参考書にはVK_Aってかいてあったのに。
32 :
デフォルトの名無しさん:2001/07/08(日) 23:02
参考書はなあに?
33 :
デフォルトの名無しさん:2001/07/08(日) 23:06
29のやり方はあんまり良くないよ(可読性からいって)
アルファベットのVKCodeは例えば'A'みたいに大文字のアスキーコードと同じ
でよかったと思う。
34 :
9:2001/07/08(日) 23:18
>>32 翔泳社のですけど・・・
タイトルは「Windows98プログラミング」
もしかして、ダメですか?
>>33 どうもありがとう。こっちの方が良さげですね。
VK_Aって書くよりも楽だし。
でもVK_Aって書くと通らないのはなぜなんでしょう?
35 :
デフォルトの名無しさん:2001/07/08(日) 23:23
ダメ本じゃないと思うよ。
>>34 あ、それ持ってます。
結構いいですよ。
私がWINプログラム始めて初めての参考書でした。
今でも時々パラパラめくって使ってます
ところでトークン結合で聞きたいのですが、
...
#define AandB(A, B) A ## B
#define RES_0 0xeeee
#define RES_1 0xffff
...
{
int x = 0;
int y = 1;
int w, z;
w = AandB(RES_, x)
z = AandB(RES_, y);
}
このプログラムを行うと
w = 0xeeee, z = 0xffff
になると思っていましたが
コンパイルエラーになってしまいます(RES_x, RES_yは定義されてないというエラー)
どうすれば
w = 0xeeee, z = 0xffff
ような結果になるプログラムって可能ですか?
説明下手でスマソ
38 :
デフォルトの名無しさん:2001/07/09(月) 15:15
#define x 0
#define y 1
39 :
デフォルトの名無しさん:2001/07/09(月) 16:43
「hoge[0]からhoge[99]まで全て0より大きい」のような条件はどう表すのがいいのでしょうか。
自分は普段、
for(i=0;i<100;i++){
if(!(hoge[i]>0))
break;
if(i==99){
...
}
}
のように記述してるのですが、どうも汚いです。何かいいやり方を教えてください。
>>39 hogeが自分のスレッドと非同期に動いてるんでなければ、hogeをクラス化して
入出力を監視するのが吉。
41 :
デフォルトの名無しさん:2001/07/09(月) 21:14
>39
BOOL型を返す関数にして
{
for(i=0;i<100;i++){
if(hoge[i] <=0){
return FALSE;
}
}
return TRUE;
}
for(i=0;hoge[i]>0;i++){
if(i==99){
...
break;
}
}
あんま変わらんか
hogeをでかい順に並べとくと吉
44 :
デフォルトの名無しさん:2001/07/10(火) 00:55
はひぃ。Editに入れた文字をint型の変数に
入れるには、どうすればいいですかぁ。
mfc-dialog base
文字コード->int?
文字列->int?
下なら何進数だよ?
46 :
デフォルトの名無しさん:2001/07/10(火) 01:00
すみません。文字じゃなくて数字でした。。。
47 :
デフォルトの名無しさん:2001/07/10(火) 01:01
EditがIDC_EDIT1で、int型変数が、isujiとすると、
どういう構文を書けばいいのか、
おしえてくらさい。
>>46 Class Wizardでintの変数をバインドできない?
ふつーはできるんだけど。
49 :
デフォルトの名無しさん:2001/07/10(火) 01:05
バインド?バインド?
ウゥヤバイワカリマセーン
アセアセアセアセアセアセ
CString ssuji;
GetDlgItem(IDC_EDIT1)->GetWindowText(ssuji);
int usuji = atoi(ssuji);
でいいけどもよ。
MFCのチュートリアル、わからないなりにしっかり読もうな。
がんばれ
おおおおおおおおおおおおおお!!!!!!!!!!!!!!!!!!!
スゴイヤ!コレダ!!コレダーーーーーーーーー!!
ガンバリマッスル!!アリガトウゴザイマス
場合によっては、
int usuji=GetDlgItemInt(IDC_EDIT1);
でもいーんじゃないの?10進数Onlyだけど。
wsprintf みたいに OS がサポートしてる atoi 関数ってないんかな
SetDlgItemText して GetDlgItemInt すれば実現可能だけど…
>>53 それぐらい、その場で書いてる。
たかが数行、時間にしてせいぜい 1 分。
55 :
デフォルトの名無しさん:2001/07/11(水) 03:05
56 :
中学生:2001/07/11(水) 03:21
関数プロットのやり方を教えて。
57 :
デフォルトの名無しさん:2001/07/11(水) 03:56
プロットってなんだYO!!日本語で話せゴルァ!!
59 :
デフォルトの名無しさん:2001/07/12(木) 00:29
今C言語の本に載っている例のプログラムを見ながら、入力しているのですが、
新しいのプログラムに行く前に、軽く解説があり、その後に問題が
あるのですが、問題を読んでも「こうすればいいかなぁ」と思うんですけど
自分の考えたやり方じゃない答えとしてのっています。自分だったらこうやると
思うやり方は、乗っている答えと比べて複雑だし、自分が完璧と思ったプログラムが
どこも間違っていないのに、エラーがありますが、答えはないし、聞ける人もいないのですが
エラーがあっていいから、自分なりのプログラムを作るべきですか?
それともまず、問題集に載っているプログラムを1から最後まで、
入力だけやって知識を身に付けてから、自分なりのプログラムを作るべきですか?
どういう方法をとってもまともなものが作れるようになるには
1年以上かかるよ。好きにやるのが一番だ。
あと、プログラマは何を作れるかじゃなくて、
要求・必要どうりの物をいかに正確に作れるかだろ?
本末転倒にならないようにしろよ
>自分が完璧と思ったプログラムが
>どこも間違っていないのに、エラーがありますが
どこも間違ってなかったらエラーは出ません
自分なりのプログラムは他人から見づらいだけです
VCでプロジェクトに追加したコンポーネントを
後で削除(コントロールツールバーから消したい)することってできますか?
すみません質問です。
よろしくお願いします。
MFCプログラム(ダイアログベース)なんですが、
指定したディレクトリの中にあるファイルの名前を取得したいのですが
どうすればいいのですか?
取得するといっても検索とは違います。
つまりファイル名を指定してそのファイルがあるかどうかを調べるのではなく
ディレクトリの中にあるファイルの一覧を
ファイルダイアログを使わずにすべて知りたいのです。
65 :
デフォルトの名無しさん:2001/07/12(木) 22:11
>>63 FindFirstFile で * で検索。
66 :
デフォルトの名無しさん:2001/07/13(金) 00:24
質問です.よろしくお願いします.
ユーザーにファイル名を入力させ,ファイルを作りたいのですが,
その際に不正な文字(“\”,"/"等)があった場合エラーなり警告なり
を出したいのですが,便利な関数をどなたかご存知ないでしょうか?
よろしくお願いします.
>>63 ダイアログベースなら、リストボックスを一個追加して、不可視にして
コントロールをメンバ変数としてバインドしておく。
んで、CListBox::Dir()で一覧を取得して、あとはCListBox::GetItem()で
順番に取り出すだけ。
>>67 VBじゃないんだからダサいやり方やめようよ。
リソースの無駄無駄
71 :
デフォルトの名無しさん:2001/07/13(金) 10:14
ビットマップを保存するとき、BITMAPFILEHEADERのbiSizeやbfOffBitsに
ビットフィールドのサイズも加えるべきなのでしょうか?
ある本のプログラムではサイズを加えていなかったのですがどうなんでしょうか。
72 :
62:2001/07/13(金) 10:20
>>64 deleteですか?できないんですけど・・・
73 :
66です:2001/07/13(金) 15:18
試したところうまく行きましたが,こんな感じでいいんでしょうか?
if ( strpbrk( strFileName, "\\/:,;*\?\"<>|" ) != NULL ) {
// エラー処理
}
とりあえず,ありがとうございました.
74 :
69:2001/07/13(金) 19:30
>>73 すまん。それだとカタカナの「ソ」とかも×になる気がしてきた。
_tcspbrk とかを使った方がよいっす。
すみません、質問です。
フローティングメニューを起動できたのですか
メニューが表示されて状態でカーソルの位置をずらして
もう一度右クリックを押したときにカーソル位置で開き直したいのですが
下のコードだと右クリックしても開いてくれません。
それどころか、左クリックしないと閉じられないんです
どうすれば右クリック連続で押してメニューを起動できますか?
もしよければコードをお願いします。
......
case WM_RBUTTONDOWN:
POINT p;
//
p.x = LOWORD(pMsg->lParam);
p.y = HIWORD(pMsg->lParam);
::ClientToScreen(pMsg->hwnd, &p);
//
HMENU fm = ::LoadMenu(::AfxGetInstanceHandle(), MAKEINTRESOURCE(_IDR_default));
HMENU sm = ::GetSubMenu(fm, 0);
::TrackPopupMenuEx(sm, 0, p.x, p.y, pMsg->hwnd, NULL);
::DestroyMenu(sm);
::DestroyMenu(fm);
break;
......
あ、すみません。
もう一つ質問がありました。
メニュー(フローティングメニューも)の項目の右に
アイコン画像を挿入するにはどうすればいいのですか?
(IEでもお気に入りなどに使われているもの)
MSDNなどで(CMenuなど)検索して調べてみましたがのってませんでした。
>>77 ありがとうございます。
MSDNで引いたらコードも載ってました。
ところで、メニューに画像くっつけるにはどうしたら(w
オーナードロー>78
>>79 うーん・・・???
MSDNで引きましたがよく分かりません
どこかにメニューにイメージを挿入するコードありませんか?
よろしくです。
すみません、質問です。
いろいろなアプリでみかける(例えば、標準インストールウィザードやLhasaなど
ディレクトリの一覧を表示し、クリックしてディレクトリ名を取得する
ディレクトリダイアログって標準でないんですか?(ファイルダイアログはあるのですが・・・
MSDNで探しましたが、ありませんでした(VBにはDirListBoxっていうのがあった
83 :
デフォルトの名無しさん:2001/07/21(土) 00:49
84 :
デフォルトの名無しさん:2001/08/22(水) 11:59
救済age
85 :
名無しさん:2001/08/22(水) 17:38
質問です。
ポインタ変数の配列を動的に宣言したいのですが、
どうしたら良いのでしょうか?
普通の変数の配列の動的確保はmalloc関数を使う
方法はわかるのですが。
VC++では、WindowsAPIなどでmalloc関数などとは
別の方法で、ポインタ変数の配列を動的に宣言する
方法があるのでしょうか?
void **p;
p = (void**)malloc(ArraySize);
>>87 16でしょ?
ならそれでいいんじゃない?
32は、増やすだけ。
89 :
85:2001/08/22(水) 18:18
>86
ありがとうございます。
90 :
デフォルトの名無しさん:2001/08/22(水) 18:37
>>87 本文読んだ?(書籍のほう)
良い本だから、持っておいたほうがいいよ。
本文のCRCのところに、X-MODEM形式の場合は初期値を0として、
最後のビット反転は行わないと記述がある。
でも、WINCRCってCRC32みたいだけど?
はじめましてVC無為者です。
ぼくはMicrosoft Visual C++が欲しいのですがなぜか持っていません。
そこでだれかWeb上にVCをアップロードして私がダウンロードできるようにしてくれませんか?
ご返事待ってます。
93 :
87:2001/08/22(水) 21:15
>>88 >>90 レスポンスありがとうございます。
書籍のほうは残念ながら所持しておりません。
ソースファイルだけではアルゴリズムの細かいところがわからないので
今度、購入してみようと思います。
とりあえず、90さんが教えてくれたところを見てみて試したいと思います。
また、何か聞く事があるかもしれませんが、そのときはよろしくお願いします。
>>91 犯罪を教唆したかどで、現在警察が(以下略)
95 :
(゚д゚)Beからネット繋ぎてー:2001/08/22(水) 22:13
96 :
デフォルトの名無しさん:2001/08/23(木) 00:37
まかえ?
97 :
VC無為者:2001/08/23(木) 02:44
>>92 レスありがとうございます。
えと、このひもを首に巻きつけるんですよね。
えとそれで高いところにつるして…
このあとどうすればいいんですか?
というか本当にダウンロードできるようになるんでしょうか。
>>97 30点。
ストレートすぎます。
もっと面白いネタ考えてから、出直してください。
99 :
デフォルトの名無しさん:2001/08/23(木) 03:04
BBSとかのCGIで半角使えるようにするにはどうやったらいいですか?
100 :
デフォルトの名無しさん:2001/08/23(木) 03:27
>>99 1.文字コードの判定でがんばる。(ある程度の誤判定はあきらめる)
2.書き込みするときに、文字コードを指定してもらう。
3.特定の文字コード以外のでの書き込みを断る。
(「シフトJIS以外での書き込みはしないでください」とか)
100%大丈夫な方法は無いけど、実用上は上記のうちのどれかで
問題ないと思う。
101 :
99:2001/08/23(木) 03:49
>>100 ありがとうございます。
でもスレの名の通り初心者なもので具体的にどうすればいいのかさっぱりです(藁
CGIのソース書き換えで出来たりはしないのでしょうか。
103 :
85:2001/08/23(木) 09:15
昨日の85です。
結局calloc関数を使って
unsigned char **pt;
pt = (unsigned char **)calloc(n, sizeof(unsigned char));
というようにしてポインタ配列を確保して、ここは上手く行きました。
ですが、他にポインタではない変数の配列を動的に確保しようと思って
calloc関数を使うと、どうもポインタ配列の中身がおかしくなってしまう
(突然でたらめな値が入ってしまう)みたいなのですが、
ひょっとしてcalloc関数は1つのプログラムの中で
1かたまりのポインタしか使えないのでしょうか?
(つまり、本来calloc関数は一度で使いたい要素全部を確保するもので、
二度目にcalloc関数を呼び出すときは、一度free関数で
開放しないといけないのでしょうか?)
もしくは、そもそも最初に挙げたcalloc関数の使い方が
間違っているのでしょうか?
なんか、VC++スレじゃなくて普通のC言語スレの質問みたいになって
しまいましたが、一応VC++使っているので・・・。
>>103 >pt = (unsigned char **)calloc(n, sizeof(unsigned char));
まさか、ほんとにこの通り記述してたりする?
どうにも危なげだな…。
ポインタのサイズはsizeof(unsigned char)じゃないぞ。
そのせいでバッファをオーバーランして
次に確保した領域を破壊してるんじゃないか?
105 :
85=103:2001/08/23(木) 11:36
>104
ご指摘ありがとうございます。
どうも配列の途中からおかしくなってるようだったのですが、
やっぱり変でしたか。
sizeof(unsigned char *)
のように*をつけたら、どの型の変数でも関係無く4バイトの
サイズになるみたいで、今はとりあえずこれで普通に動いてくれて
いますが、これで良いのでしょうか?
>>105 つーかおまえの使ってる配列は大きさ1でいいのか?
107 :
デフォルトの名無しさん:2001/08/23(木) 15:59
>sizeof(unsigned char *)
>のように*をつけたら、どの型の変数でも関係無く4バイトの
>サイズになるみたいで、今はとりあえずこれで普通に動いてくれて
>いますが、これで良いのでしょうか?
ポインタ変数のサイズは処理系によって違うっていうこと理解しています?
Windows環境だから4bytesだろうけど。
問題の本質は、106の言う通り、確保したい型のサイズをはっきりせよってこと。
>>105 一から入門書を読むことをお勧めします。
p = (xxx**)malloc( sizeof(void*) * ArraySize )
つうか先頭のcast
**でいいのか?*[]と完全に同義だっけ?
110 :
デフォルトの名無しさん:2001/08/23(木) 17:49
初めてDLL作りました初心者です。
hoge.EXE→hoge2.DLL(LIBの関数をDLL化しただけ)
これはEXEから正常にLIBの関数が呼べました。
しかし
hoge.EXE→hoge1.DLL→hoge2.DLL
を行なったらhoge2.DLLまでは実行されるが
hoge2.DLL内のLIBの関数を呼ぶと戻り値が必ず
0xffffffffになって返ってくるのですが。。。
#DLLの作り方は「猫でも〜」を参考にさせて頂きました。
DLLの呼び出しは全て明示的(動的?)な呼び出しです。
111 :
105:2001/08/23(木) 18:15
>107
ポインタ変数のサイズが処理系によって違うことは分かりますし、
確保したい型のサイズはポインタ型のサイズだと分かっていますが、
ソース中でのポインタ型のサイズの表現方法が分かりませんでした。
>108
ありがとうございます。
ポインタ型のサイズは sizeof(void *) で良いんですね。
質問の解決に携わって下さった方、ありがとうございました。
>>111 盲信は禁物 規格上すべての型のポインタの大きさが一定だなんて保証はない。
大昔のミニコンでsizeof(char*)=6 sizeof(int*)=4なんてマシンも実在したらしい
きちんと使いたい型に合わせて記述したほうがわかりやすいし
113 :
デフォルトの名無しさん:2001/08/24(金) 10:10
すみません質問です。
DOSのプリンタポートから印刷をかけて、その内容を
Windowsで取得したいのですが、どのような方法があるでしょうか?
(要はWindowsマシンをプリンタにしたいのです)
よろしくお願いいたします。
8255の仕様書見てがんばってくれ
115 :
デフォルトの名無しさん:01/08/27 13:45 ID:HHULI/xc
非常にくだらない質問なんですが、間違って作成してしまった
自前クラスってどうやって削除するのでしょうか?
メンバ関数は削除できますけど、クラス自体ってできませんよね?
いきあたりばったりでクラスを作成した自分が悪いとは言え、
“プロジェクトへ追加”に対応して“プロジェクトから追放”みたいなの
ないんですかね?
やっぱコメントアウトしか手は無いのでしょうか?
116 :
デフォルトの名無しさん:01/08/27 14:23 ID:.CyrU1AM
>>115 …。
FileViewのSource FilesとHeader Filesからそのクラス用のファイルを消しておけ。
118 :
115:01/08/27 14:58 ID:HHULI/xc
>>117 ずっとクラスビュウのほうばかり見てました・・・。
エクスプロラから直接削除してビルドしなくなったりとか。汗
ありがとうございます・・・というかほんと申し訳ないです。
119 :
デフォルトの名無しさん:01/09/13 20:35
CFile f;
f.Open( "test.dat", CFile::modeRead );
↑これだとオープンできるのですが、
フルパス指定で
f.Open( "C:\test.dat", CFile::modeRead );
↑にすると失敗します。MSDNライブラリを検索したら、
ファイル名指定は相対・絶対・UNC
全部できると書いてあったのですが・・・
ちなみにファイルはちゃんとクリエイトしてあります。
本を調べてもここまで基本的なことは書いていなくて・・
どなたか、教えてください!お願いします。
>>119 その本の「文字列リテラル」という項目を探して読め。
載ってなかったらその本はすぐ捨てて、MSDNで検索しろ。
>120
\がエスケープ・シーケンスになってるってことですか!!
できました!ありがとうございました。
アヒャヒャ
123 :
デフォルトの名無しさん:01/10/04 11:23
〜
〜 ∧_∧____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
___ (´∀` ,) //| < [問題]
<──<\⊂ へ ∩)//||| \__________________
\. \,>'(_)i'''i~~,,,,/
──┐  ̄|| ̄(_) ̄~||~ ̄
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
━━< 問題: >━━
\___________________________________/
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
━━< A: × B: >━━
\________________/ \________________/
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
━━< C: × D: >━━
\________________/ \________________/
___
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ∧ ∧ />──>
| >( ゚Д゚) </ /
\___________/ ( )  ̄|| ̄
┏━━━━━━━━┓
┃┏━━━━━━┓┃
┃┃ 挑戦者 ┃┃
┃┗━━━━━━┛┃
124 :
フォーエバー厨房:01/10/05 11:28
VC++からDirectX SDK等のヘルプを使えるようにするには
どうすればいいのでしょうか?
directX の Helpファイル(.CHIとコンパイル済みHTMLヘルプファイル) を
どこかにコピーすればいいのですか?
それとも、コンパイル済みのヘルプファイルを直接起動するしか
ないのでしょうか。
125 :
デフォルトの名無しさん:01/10/05 11:38
[目次] の [サポート技術情報] と [プラットフォーム SDK]-
[Platform SDK]-[Graphics and Multimedia Services]を見るか、
[検索] で "Platform" or "SDK" or "プラットフォーム" を調べ。
126 :
デフォルトの名無しさん:01/10/05 12:01
>>124-125 [表示]メニューに[サブセットの定義]があるから、それを活用するように。
レスどうもです。調べてみたところ、
hhcolreg.datを書き換えたりしなければいけないようですね。
面倒なのでショートカットつくって直接起動することにします(汗
>>127 微妙に意味がわかってないな。
DirectX SDKヘルプは「MSDNにもともと含まれている」んだが。
129 :
デフォルトの名無しさん:01/10/05 12:39
>>125 「[検索] で "DirectX" を調べ」の間違い。
>>127 [同期]ボタンを押せば、どのトピックに属するかが分かる。
トピックが分かったら
>>125 を試してみろよ。
130 :
デフォルトの名無しさん:01/10/05 12:41
言い忘れましたが、DirectXのバージョンは8です。
ダウンロードしてきた8のヘルプを、VC++に追加(?)し、VC++から
起動したいということです。
DLして解凍した後、どこかに移動させなければならないように思えるのですが
>>133 そうです。
MSDNはVC++6.0に最初から付属していたものです。
サブスクリプションというのは購読していませんので、リンク先を参考に
ファイルをいじってヘルプを追加したいと思います。
ありがとうございます。
お騒がせしました。
XPにVS6をインストールしようとすると失敗するのですが、
もしかしてFAQでしょうか?
136 :
デフォルトの名無しさん:01/10/14 16:51
うちもだめだった
137 :
デフォルトの名無しさん:01/10/14 19:16
おたずねです。密偵君というソフトみたいにウィンドウから
文字列を抜き出すにはどうしたらよいのでしょうか。
>>137 密偵君はしらないが、
窓のHWND取得してそのハンドルに対してGetWindowText。
>>139 WindowFromPoint も使えるぜ。
141 :
デフォルトの名無しさん:01/10/16 13:45
WM_PAINTのところでしか
描画しちゃいけないのはなぜですか?
142 :
デフォルトの名無しさん:01/10/16 14:42
>>141 BeginPaint()さえ使わなければ、WM_KEYDOWNでもどこでも描画できるしょ。
ただしWM_PAINTは未処理なまま重複するとキューから間引きされるつー
うれしい性質があるので、重い描画処理を無駄に繰り返すときは
ぜんぶWM_PAINTにまかせると、いいことがあるかもしれない。
143 :
デフォルトの名無しさん:01/10/22 13:54
浮動小数点から固定小数点に変換するにはどのようなコードが
必要ですか。教えてください。
符号1ビット整数16ビット小数15ビットになってます。
144 :
デフォルトの名無しさん:01/10/22 16:55
FILE *fp1;
fp1=fopen("data.dat","w");
for(i=0;i<10;i++){
〜中略〜
fprintf(fp1, "%f %f\n",t);
}
このような感じのプログラムで、変数iの値によって、
書き出しファイル名を、data1.dat〜data10.datなどに変えて出力
したいのですが、どうすればいいのかわかりません。
教えてください
145 :
デフォルトの名無しさん:01/10/22 16:55
FILE *fp1;
fp1=fopen("data.dat","w");
for(i=0;i<10;i++){
〜中略〜
fprintf(fp1, "%f %f\n",t,s);
}
このような感じのプログラムで、変数iの値によって、
書き出しファイル名を、data1.dat〜data10.datなどに変えて出力
したいのですが、どうすればいいのかわかりません。
教えてください
146 :
デフォルトの名無しさん:01/10/22 17:07
>>145 はじめに10個ファイルを開いておいて
ループの中でiの値によって書き出し先を変える。
FILE *fp1; -> FILE *fp[10];
と言った感じで扱うと楽。
>>146 レスありがとうございます
FILE *fp[10];
fp[1]=fopen("data1.dat","w");
fp[2]=fopen("data2.dat","w");
fp[3]=fopen("data3.dat","w");
fp[4]=fopen("data4.dat","w");
fp[5]=fopen("data5.dat","w");
〜略〜
for(i=0;i<10;i++){
〜中略〜
fprintf(fp[i], "%f %f\n",t,s);
}
こんな感じでしょうか。
fp[3]=fopen("data3.dat","w");
↑ ~~
この辺の宣言をiを使って一気に書くことは可能ですか?
やはり一個ずつ書くしかありませんか?
実は、書き出しファイル数は300ぐらいにしたいのですが
148 :
デフォルトの名無しさん:01/10/22 17:24
> fp[3]=fopen("data3.dat","w");
> ↑ ~~
> この辺の宣言をiを使って一気に書くことは可能ですか?
sprintfなどを使ってファイル名を作ればできます。
> 実は、書き出しファイル数は300ぐらいにしたいのですが
多いね。はじめに全部開くのは無理かも。
ループ処理の中でfopen,fcloseする方法で我慢したほうがいいかな。
ファイル名は前述のようにsprintfでも使えば簡単にできるし。
>>148 sprintfですか。
使ったことないです。
調べてみます。
ありがとうございました
150 :
デフォルトの名無しさん:01/10/24 01:00
#include "stdafx.h"
#include <stdio.h>
const char file[] ="data";
const char kakuchoushi[] =".dat";
typedef FILE* PFILE;
int main(void){
PFILE fp[10];
char c[10];
for(int i=1;i<10;i++){
sprintf(c,"%s%d%s%",file,i,kakuchoushi);
fp[i]=fopen(c,"w");
}
}
151 :
デフォルトの名無しさん:01/10/25 16:18
質問です。
以下の、CAクラスのメンバ関数をCBクラスのメンバ関数から
呼び出したとき、CAクラスのメンバ変数を参照しようとすると
ハンドルされていない例外は・・・・・
というエラーが出てしまうのですが、なぜでしょうか?
class CA
{
public:
int a;
int FuncA();
・
・
・
};
int CA::FuncA()
{
a = 1; //ここでエラー
return 0;
}
-----------------------------
class CA;
class CB
{
public:
int FuncB();
protected:
CA* m_pTest;
・
・
・
};
int CB::FuncB();
{
m_pTest->FuncA();
return 0;
}
152 :
デフォルトの名無しさん:01/10/25 16:21
>>151 m_pTest の初期化がうまく言ってないんじゃ?
>>152さん
さっそくのお返事どうもありがとうございます。
初期化。。。
やってみます。
154 :
デフォルトの名無しさん:01/10/25 17:46
意味わから〜〜〜〜〜〜ん。
ねえ、DVDを作りたいのー。
誰か、相談乗って★
155 :
デフォルトの名無しさん:01/10/25 18:15
>>151 ポインタだけで実体がないのでは。
FuncB() 呼ぶ前に CA の実体できてる?
>>155さん
ご指摘どおり実体がありませんでした。
本当にどうもありがとうございました。
157 :
デフォルトの名無しさん:01/10/25 22:27
#include <stdio.h>
int main(void)
{
for(;;) printf("\t\b\b\b");
return 0;
}
すいません、Windows2000でどうしてもこのプログラムが
動かないんですけど、よくわかりません…誰か助けて…
158 :
競れ損 ◆mQ/jMyIo :01/10/25 23:08
>>157 何がしたいのかよくわかりませんが。
ネタ?
>>158 問題のあるコードだけを抜き出して、簡略化したものです。
実際はもっと複雑です。
これでは何も表示されないはずなんですが、私のWindows2000では、
動かないんです、試してみてください。
どうかご助言を。
>>159 動かない、とは具体的にどういった状態を示すのか説明しろ。
>159
いや、試したけどきちんと動作するぞ。ブルーサンダーが(藁
162 :
デフォルトの名無しさん :01/10/26 12:04
>>157 見たところコンソールアプリのようですが、なにも表示しないコンソールアプリを
Win2000で実行させてプログラムが動いたか動いてないかをどうやって判断しているのですか?
>>157はfor(;;)で無限ループになっているので動きっぱなしで終了しないように見えますが?
163 :
◆yjzZLKY2 :01/10/26 12:06
はぁ・・・
164 :
デフォルトの名無しさん :01/10/26 12:13
>>157 のソース
OS ごとオチタ…。症状言ってないトコ見る限りネタだと思われ。
要するに、タブの後にバックスペース 3 個でシステムの使ってる領域壊しに行ってるんだと思う。
実行しちゃダメだよ。
>157のソース
NT系OSのコンソールの問題らしいfj.os.ms-windows.programmingで
話題になってるとのこと(まだ見に行ってない)
\tよりも多い量の\bで打ち消すとOSが飛ぶらしい
167 :
デフォルトの名無しさん :01/10/26 21:54
>>157 よくがんばった、感動した!でも2度と来んなよ!
168 :
デフォルトの名無しさん:01/10/27 03:03
プログラムの勉強をしてみようと思いVC++6,0を購入してしまったんですが
全くのプログラム初心者で買った教本もCが前提?になっていてよくわからなくて
プログラムの出来るらしいネットの知り合いに聞いてみたら
BASICもCも全くわからない初心者がVC++は無謀だと言われたんです(涙)
独学でプログラム初心者がVC++を学ぶのに良いサイトや本をご教授願えませんでしょうか。
>>168 MSDNのScribleチュートリアル
最初はCかC++で
プログラミングの勉強を
した方がいいよ。
BCCコンパイラー無料だし。
>>170 VC 持ってるなら、VC でコンソールアプリ書いて勉強すればよし。なんでわざわざ BCC を
勧めるのか謎だ。
とりあえずはC言語の勉強から始めなければいけないみたいですね。
MSDNのScribleチュートリアルは実行してみましたが
MSDN自体がC++修得済みのWINDOWSプログラミングのヘルプ集みたいなんできついですわ。
勉強する方法としてはC言語を勉強>C++修得>MSDNで学ぶっていう感じなのでしょうか?
C++からでもいいんじゃない?
初心者がC++を最初から学ぶみたいな本ってあるんでしょうか?
C言語を学ばないで直でいけます???
175 :
デフォルトの名無しさん :01/10/27 06:14
>>174 いけるさ、頑張れば。っていうかいきなりVC++でもなんとかなる。
日経BP社の「VisualC++5.0 3週間完全マスター」を薦めるよ。
同シリーズでVC++6.0のもあるけどこれは入門書としては不適。
>>168 個人的には、文法だけでも普通のCをきっちりとやってからの方がいいと思う。
LSI-Cも無料だからこれで十分。
>>176 VC 持ってるなら、VC でコンソールアプリ書いて勉強すればよし。なんでわざわざ LSI-C を
勧めるのか謎だ。
178 :
デフォルトの名無しさん:01/10/27 09:52
>>177 どうもANSI準拠のCはコマンドラインからというイメージがあるんで。
makeとかも覚えられるし。
それにVC重い。
180 :
デフォルトの名無しさん:01/10/27 10:09
>>179 VCにもnmakeあるし、コマンドラインから使えるぞ
それに、いまどきVC重いってどんな環境だよ(藁
あと、ココのすれタイトル参照
181 :
デフォルトの名無しさん:01/10/27 10:24
VCってコマンドラインからmakeできるの?
どっちにしろ、メモリはそれなりに食うでしょ。
ANSIの小さなプログラムくむのにVCを立ち上げるのも気がひける。
>ココのすれタイトル参照
なんでもかんでもVCでやらなきゃいけないスレなのか?ここは
メモリをそれなりに喰うってどんな環境だよ
いまどき64Mしか積んでないとか言うわけでもないだろ
>>183 PIII-1Gで256M、Win98SE。
Win9xが悪いって言われそうだけど、IF-SEGAのドライバが
W2Kでないため(w移行してない。
V30のHDDなしの頃からやってるんで、VC(VS)立ち上げるのはやぱ抵抗がある。
185 :
デフォルトの名無しさん:01/10/27 11:25
最初の一歩。
(1)VC立ち上げる
↓
(2)メニューバー[ファイル(F)]の[新規作成(N)]選択
↓
(3)新規作成ダイアログがひらくので
[プロジェクト]タブの[Win32 Console Applicaton]選択。
右側の[位置(C)]で開発用に使いたいディレクトリを選択して、
その上の[プロジェクト名(N)]を入力。
[OK]ボタンを押す。
↓
(4)Win32 Console Applicaton - ステプ1/1 ダイアログがひらくので
ラジオボタンの[空のプロジェクト(E)]を選択。
[終了(F])]ボタン押す。
↓
(5)新規プロジェクト情報ダイアログがひらくので
そのまま[OK]ボタン押す
↓
(6)メニューバー[ファイル(F)]の[新規作成(N)]選択
↓
(7)新規作成ダイアログがひらくので
[ファイル]タブの[C++ソースファイル]を選択。
右側の[ファイル名(N)]に適当な名前を入れる(拡張子はいらない)。
[OK]ボタンを押す。
↓
(8)プログラム入力たとえば・・・
#include <stdio.h>
int main()
{
int i;
for(i=0;i<=4;i++) printf("( ´∀`)");
return 0;
}
↓
(9)[F7]キーを押す(ビルド)
ビルドエラーがでたら、エラーがなくなるまでプログラム修正
↓
(10)
Windowsのコマンドプロンプトを起動。(3)で選択したディレクトリへ移動。
さらにその下のDebugディレクトリへ移動。
dirすると exeファイルがあるのでそれを実行。
↓
(11)( ´∀`)( ´∀`)( ´∀`)( ´∀`)( ´∀`)
初心者にとっては言語そのものよりもVCの使い方のほうが
ハードル高いとおもわれ。
>>184 9xが悪いなんていわないが。
それだけスペックがあるなら普通は問題ないだろ。
ところで、なんでVC=VSなんだ?
コマンドラインから使えばいいじゃねーか。
俺だってVSなんてデバッグとプロファイルのときしか使わないよ
わざわざコマンドライン使うメリットもあんまりない。
Meadowみたいな別のアプリ内から使うならわかるが。
VSのテキストエディタに慣れてるならそれもいいだろ。
>>182 Visual Studio の統合開発環境と C/C++ コンパイラの区別がついていないヤツ発見。
VC をインストールするときに、環境変数を登録するようにしておけば、コマンドプロン
プトから cl コマンドを使ってコンパイルできます。make は nmake.exe を使えばよろ
し。
>>184 じゃあ往年の名コンパイラ Turbo C でも使ってなよ。個人の趣味としては何を選ぼうが
かまわんが、太古の常識を他人に押し付けるのはやめとけ。
>>188 大ありだぞ。
頭を冷やしてよく考え直せ。
趣味で一人でしか使ってないならその限りではないがな。
>>190 TurboCはいいね。
これも無料で落せる
C++
BCC - win32
GCC - cygwin/win32(mingw32)/dos(djgpp)
watcom-c/c++ - dos/win16/win32/OS2/WARP
C
TC - dos
LSI-C3.30c試食版 - dos
lcc - win32
この辺が無料で公開されてるコンパイラか。
>>193 それをみると、いまさらLSI-Cの試食版っていう気もするな。
TCやwatcomはフルスペック?
>>191 そりゃわかってる。
コマンドラインでビルドする環境が整っているならば話は別。
でも、レスの流れから「VCインストールしてさあどうするか」
という段階での話をしたのが188
>>191 > 趣味で一人でしか使ってないならその限りではないがな。
コマンドラインの使用と、この文のつながりが分からんのだが。
うちでは Visual Studio に統合されるソースコード管理ツールを使っているので、複数人でソースを
いじる場合でも統合環境を使ってますが……って、そういう話じゃなくて?
>>196 191じゃないけど
複数のdllやocxやcomを組み合わせたアプリなんかを
全部まとめてビルドしよう!とかいうとき、
もしかしていちいちプロジェクトを開いて順番にビルドしてる?
nmakeを呼び出すmakefileやbatchを組んで
debug/releaseをまとめてビルド&リリース用ディレクトリにコピーとかって
やってるけどなあ。
>>197 ワークスペースに関係するプロジェクトをまとめて登録、依存関係を設定した上でビルド
してます。
レスしてくださった皆さん、ありがとうございます。
>>185さんのおかげで、初めてのプログラムできまして、
数字のとこをいじったりしてなんとなく感嘆したりしました( ´∀`)
とりあえずは
>>178さんに紹介してもらったサイトの通り実行してると上手くいきそうなんで、
そのサイトでVCを使って勉強をしていこうかと思います。
>>175さん
私が猫未満の場合には購入を考える事にしますね。( ´∀`)
うむ、猫は丁寧で入門には最適だけど、使ってるVCがだいぶ古い。
だから初心者がVC6で挑戦するときにはプログラム以前のとこでとまどうとおもう。
とりあえず、プログラムがmain関数で動いているうちは
>>185の手順で大丈夫
。WinMainという関数が出てきたらちょっとだけやり方変わる。
>>197-198とその少し前のあたりのレス
こんなのどっちのやり方に慣れてるか(知っているか)ってだけの問題じゃん。
宗教戦争はやめれ。
>>201 それは穿ち過ぎ。
私は 191 が「コマンドラインを使わないと問題がある」と断言したので、具体的に何か問題なのか
尋ねただけです。用途によっては、私が知らないだけでホントに問題あるのかもしれないし。
慣れてるって点では、私は Visual Studio よりも BSD pmake の方が。
203 :
デフォルトの名無しさん:01/10/28 07:52
NT系のOSでシャットダウン・再起動する方法を教えてください。
>>203 MAGURO Onlineにサンプルがあるよ
>>204 ありがとうございます。
助かりました。
上の方にもあるのですが、コマンドラインからMAKEしたいのですが、
>nmake /f test.mak
などとやっても
"構成が指定されていません。デフォルトの D3DSkelton - Win32 Debug を設定します。"
などとでてMakeできません。
どなたかご教授を....。または、詳しいHPなどありましたら教えてください。
VC6を使用しています。
>>206 nmake CFG="D3DSkelton - Win32 Debug" /f test.mak
>>207さん、ありがとうございます。
ですが、それを実行すると一瞬でおわってしまい、何も行われていない
ようなのですが.......
>>208 すでにビルドが完了してるんじゃないの? もしくは *.mak ファイルが古いとか。
>>185 それだったら、gccでも十分では?
VC使う意味がない。
211 :
デフォルトの名無しさん:01/10/28 18:57
212 :
デフォルトの名無しさん:01/10/29 01:40
jpegをbitmapのように扱いたい
そういう関数ないですかね・・・
HJPEG hJpeg = LoadJpeg(hInstance, FilePath, x, y, LR_LOADFROMFILE);
SetJpeg(hJpeg);
DeleteJpeg(hJpeg);
みたいにできたら・・・
いや、それよりJPEGのフォーマット知りたいです。
ビットマップ(DIB)なら
BITMAPFILEHEADER
BITMAPINFOHEADER
(palette)
bits
ですよね
JPEGのフォーマットって検索してもなかなか見つかりません
>>212 OleLoadPicture 使えば JPEG ファイル読み出して描画するまでは、簡単にかける。google で
検索かけるとサンプル見つかるよ。
214 :
デフォルトの名無しさん:01/10/29 04:28
Wordpad のウィンドウにリッチテキストを流し込むのってどうやるんでしょう?
「文字列パレット」というのかな、クリックすると定型文が入力される感じで。
215 :
デフォルトの名無しさん:01/10/29 21:12
VCでコンパイルオプションに
-subsystem:consoleと入れたときに何か定義されるシンボルとかないでしょうか?
コンソールか、ウインドウアプリケーションかでソースを切り替えたいのですが
>>217 自分でシンボルを定義できない理由でもありますか?
皆さんご親切にどうもです(^^
ここのHP参考にしてますが、
http://www06.u-page.so-net.ne.jp/ca2/uo05025/OleLoadPicture.html 最後の方の
iPicture->lpVtbl->Render(iPicture,hDC, 0, 0, lWidth/32, lHeight/32, 0, lHeight, lWidth, -lHeight, NULL); //描画
が良くわからないです
6以降の引数おかしいような気がしますが↓
『 0, lHeight, lWidth, -lHeight,』
ではなくて
『 0, 0, lWidth, lHeight,』
の間違いですよね・・・
最後尾の説明によると
『 画像の幅・高さを32で割っているのは
OLEイメージを変換する方法がわからないため』
となってますが、
『OLEイメージを変換する方法がわからない』とはどういうことか
それが私にはわかりません(^^;
それとなぜ4、5の引数32で割るんでしょう?
221 :
デフォルトの名無しさん:01/10/31 00:47
>>220 俺のソースからコピペ
iPicture->get_Width(&himetric_width);
iPicture->get_Height(&himetric_height);
width = ::MulDiv(himetric_width, ::GetDeviceCaps(hdc, LOGPIXELSX), 2540);
height = ::MulDiv(himetric_height, ::GetDeviceCaps(hdc, LOGPIXELSY), 2540);
iPicture->Render(hdc, 0, 0, width, height, 0, himetric_height, himetric_width, -himetric_height, NULL);
32で割るのは正しくない。
あと、DIBは上下が逆なので、-heightとするんだと思った。
>>222 SetMapMode(hDC, MM_HIMETRIC); もアリかな。
224 :
デフォルトの名無しさん:01/10/31 06:12
MFCをつかわずにIWebBrowserを使用しているサンプルってどこかにありませんか?
MFCのソースを追ってみたのですが、m_xOleClientSiteでつまってしまいました。
225 :
デフォルトの名無しさん:01/10/31 10:17
質問いいかな?
GetAsyncKeyStateとGetKeyStateってまったく同じなの?
227 :
デフォルトの名無しさん:01/10/31 13:28
えっと、質問なのですがいいでしょうか?
ボタンとかのコントロール作るときにそのフォントを変えたくて
hdc = GetDC(hWnd);
hFont = CreateFont(12,0,0,0,FW_NORMAL,0,0,0,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"");
SelectObject(hdc, hFont);
//コントロール作成
hControl = CreateWindow("BUTTON", "TEST",
WS_CHILD | WS_VISIBLE,
10, 10, 120, 15,
hWnd,
(HMENU)(IDC_TEST),
hInstance,
NULL);
SendMessage(hControl, WM_SETFONT, (WPARAM)hFont, lParam);
ってやったんですけど、
どうも機種によって変わったり変わらなかったりするみたいなんです。
もしかしたら、WINDOWS2000では変らないのかもしれないです。
どこがだめなのかわかる方がもしいたら教えていただけないでしょうか?
まずfontがちゃんと登録されているか調べておいたほうが良いと思う
229 :
デフォルトの名無しさん:01/10/31 14:01
>>227 どんなフォントに変えたいわけ?
高さが12ピクセルって他は何も指定がないけど?
もともと12ピクセルのフォントを使ってる環境だったら、そりゃ変わらないでしょう。
もっと大きいフォントにしたり、フォント名を指定したりしないと、変化がわからないと思われ。
それからSendMessageの最後のlParamってなんだ。TRUEにしとけ。
230 :
デフォルトの名無しさん:01/10/31 16:43
>>228-229 レスありがとうです。
えっと、正確にはサイズを変えたいんです。
どうも文字のサイズが大きいので小さくしたいんですね。
ちなみに、デフォルトにしようとして、フォントを作らずに
SendMessage(hControl, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), lParam);
にしたら直りました。
どうも登録とかがされてないようですね。
231 :
デフォルトの名無しさん:01/10/31 16:52
お薦めの入門書を教えて下さい
今学校でCOBOLをやってるんですけど全然使えなさそうなので
CとかVisualCをやりたいんです。
基本が分かりやすく覚えれる本ってありますか?
エクスプローラみたいなのを作りたいのですが
どうやったらいいのかさっぱりわかりません。
ダイアログベースだと、TreeControlを貼り付けて
ツリービューを作ったりもできるんですが。
AppWizardでSDIを指定し、プロジェクトのスタイル
で「エクスプローラスタイル」としてみましたが、
どうやってデータを表示させたらいいのかが
わかりません。
教えてください。
233 :
デフォルトの名無しさん:01/10/31 22:23
VC++のStudioっていう開発環境を使ってプログラム開発
することになったんですが、入門用(環境のカスタマイズ
、VC++プログラミング)の参考書でいいのがあったら
教えてください。
>>233 他のスレッドで何度か書いたけど。
「プログラミング Windows 第五版」
通称 Petzold 本
>>234 早速逝ってきます。どもです。m(__)m
>>235の名前欄
234=233 重ねがさねスマソ
237 :
new BYTE[n]でいいのか?(^^; :01/11/01 23:19
mallocとGlobalAllocはどのように使い分けるのでしょう?
単独質問スレ立ててしまって怒られて(^^;、こちらにお邪魔させていただきました。アドバイスを頂ければ幸いです。
クリップボードなんかの一部の特殊なモノを除いて、特にGlobalAllocを使う必要は無いというコトをよく聞きますが、では具体的にはどのような使い分けをしたほうがいい/しなければならないのでしょうか?
#C++なら%名前%だっつ〜話もありますが(^^;
私の認識は、本やWebを漁って
「基本的にmalloc。単発exeやシングルスレッドのモノはGlobalAllocなんかいらない(マルチスレッドでも、一つのスレッドで収まっていればmallocでOK)。
スレッド間でバッファを共有したりDLL作ったりするときはGlobalAlloc。ハンドルを渡して使うときだけGlobalLockして終わったらGlobalUnlockする」
と思っているのですが、この世界、本やWebに載っているコトが正しい確率はゴニョゴニョ、という世界ですので(^^;
実戦経験のある方のご意見を伺いたかったのです。
ちなみにやろうとしていることは、Bitmapをいぢる新しいクラスを作ろうとしてて、コンストラクタでバッファをmalloc、デストラクタでfreeで済ませようとしておりますぢゃ。これでOK?(^^;
つかいわけ、ってもなー、結局VCのmallocもnewのメモリ確保も最後はHeapAllocとか
呼ぶわけだしなー。GlobalAllocも、WIN32ではちっともglobalちがうし。
そーゆー、オーバーヘッドとか、デバッグサポートとか嫌なら、
GlobalAlloc使うのもいいんじゃないかな?
VirtualAllocとの比較はそれはそれでおもしろいかもしれんけどなー。
239 :
デフォルトの名無しさん:01/11/01 23:49
グローバルアロックはnew、mallocと違ってアプリ起動中に
解放するとOSに返されるそうだよ
つまり、newやmallocは1度確保すると
そのアプリが終了するまで解放してもその確保したメモリ領域は
他のアプリは使用できない
もちろん当のアプリはもう一度new、mallocで確保すれば
その解放した領域を優先して割り当てられる
だと思いますが、間違ってたら訂正して下さい(−−
240 :
デフォルトの名無しさん:01/11/02 00:08
実際問題、VCのmallocの実装では、__sbh_threshold (デフォルトで1KB)以上の
アロケートに対してはHeapAllocを呼んでるし、GlobalAlloc ≒ HeapAllocなんで、
機能的に差はないかと。
あと、仮想メモリ機構と、プロセスメモリの関係で、実メモリは他のアプリでも
使えるし、(freeしたとしても)そのリニアメモリをほかのプロセスが使うことは
無いかとも思いますが。そのあたりの説明、ってのはどうなんでしょうかね。
241 :
デフォルトの名無しさん :01/11/02 00:17
文字コードを判別してくれるフリーのライブラリがほしいんですが、いいのありますか。
UnicodeやSJISやEUCを判別する機能に、変換する機能もほしいのですが。
APIやMFCのマクロには判別してくれるやつが見つからないのですけど。
>>240 malloc(), free() と HeapAlloc(), HeapFree() の比較と言うことなら、前者は C ランタイムライブラリ関数
であるのに対し、後者が Win32 API であるのが最大の違いかと。
同一の処理系で閉じている場合はともかく、複数の処理系を使っていて、一方で確保したメモリを他方
で解放、などとしたい場合には API を使わないと死にます。
>>241 SJISやEUCはともかく、UnicodeはAPI使った方が楽。
ていうか、統計取る以外に判別する方法はない。
Unicodeに至っては、ヘッダ無しのプレーンテキストをプログラムで判別
する有効な手段は無い。
244 :
デフォルトの名無しさん:01/11/02 07:29
>>243 文字列を渡すと統計取ったりして解析して文字コードを判別してくれるライブラリはないでしょうか?
あとAPIはMultiByteToWideCharとかのことですか?
これはSJISもEUCもUNICODEに変換してくれるのですかね?
246 :
デフォルトの名無しさん:01/11/02 18:04
文字列が入っているCString型の配列をqsort関数を使ってソートしたいんですがうまく整列できません。
struct構造体のchar型の文字列はqsortで整列できたのですが…
どのようにすればできるか教えてください。
>>246 CString::LPCTSTRで返されるポインタは一時的なものです。
CStringを使うならCStringArrayとかの配列クラスを使い、qsortを
カスタマイズする必要あり。
248 :
デフォルトの名無しさん:01/11/02 18:10
>>247 返答ありがとうございます。
VC難しいですね。CStringのまわりからよく読んでみます。
249 :
new BYTE[n]でいいのか?(^^; :01/11/02 23:19
>>238-242 アドバイスありがとうございました。特に239の情報は初耳でした。大きなバッファを扱う場合は、シングルスレッド/単発exeでもGlobalAllocを使う意味がありそうですね。
250 :
デフォルトの名無しさん:01/11/02 23:45
>>249 おいおい、信じるなよ。free() すると、条件が整ってれば HeapFree() 呼び出すぞ。CRT のソース読め。
マルチスレッドの場合でも malloc() で確保したメモリ領域は、Mutex や CriticalSection オブジェクトを
使ってアクセスを排他制御すれば、複数スレッドから読み書きしても何ら問題ない。また GlobalLock()
は単にデータの移動/廃棄を禁止するだけで、アクセスの排他制御/シリアライズはしてくれない。
嘘を嘘と(以下略
252 :
デフォルトの名無しさん:01/11/06 09:52
char array[256]
で確保したメモリの先頭アドレスをインラインアセンブラで取得するにはどうすれば良いのでしょうか?
__asm { mov esi, array }
だと出来ませんでした
253 :
デフォルトの名無しさん :01/11/06 12:33
void main() {
int aaa[10][10];
func(???);
}
void func(??? bbb) {
bbb[0][0] = 10;
}
VC関係ではないのですが
2次元配列を引数にして、受け取り側の関数でも同じように
2次元配列で扱うためには ???の宣言をどのように書けばいいのでしょうか?
>>253 コンパイル通すだけなら
void func(int** bbb)
ただし、コンパイルが通るだけなのでfunc内での操作が安全である
保証はプログラマに依存。
255 :
デフォルトの名無しさん:01/11/06 13:06
>>254 いや、それはコンパイル通らないだろ。
void func(int(*bbb)[10])
256 :
デフォルトの名無しさん:01/11/06 13:21
SendMessage()を使いたいんですけど 2番目の引数の' message to send 'ってなんですか?
なんか WM_…を入れるみたいだけど・・・
誰か教えてください
>252
movをleaへ
>255
????何故関数ポインタ?
>>257 おいおい。関数じゃないぞ。括弧の種類が違う。よく見ろ。
>>257 thx。
leaでも出来ないぞ、と思っていたら、
配列に使っていた名前が in/out/offset・・・・(鬱
260 :
デフォルトの名無しさん:01/11/06 14:13
>>256 送りたいメッセージの種類を指定します。
例えば WM_CLOSE を送りたいなら、そこに WM_CLOSE を指定します。
例えば WM_KEYDOWN を送りたいなら、そこに WM_KEYDOWN を指定します。
261 :
デフォルトの名無しさん:01/11/06 14:25
260>>
ありがとうございます
しかし そのメッセージっていうのがわからない・・・
263 :
デフォルトの名無しさん:01/11/06 14:30
>>261 SendMessage は、ウィンドウにメッセージを送るAPIです。
SendMessage を使いたいということは、ウィンドウにメッセージを送りたいということです。
ということは、送りたいメッセージというのが、あってしかるべきでは?
254, 255さんありがとうございました。
お陰様でコンパイル、実行共にキチンと動作しました。
265 :
デフォルトの名無しさん:01/11/06 22:27
Visual Studio (VC++6.0)で、プロジェクトから1つのソースファイルを削除
したいんですけど、ファイル追加しかメニューにありません。どーすればいいでしょうか?
266 :
デフォルトの名無しさん:01/11/06 22:30
Posixスレッドの pthread_detach()に相当するVC++(Win32)の関数って何?
色々調べ単ですが、WaitForSingleObject() 系列しかなくてこれだと待機しちゃう
と思うんですが。
267 :
デフォルトの名無しさん:01/11/06 22:53
>>266 何をしたいの?スレッドの終了を待ちたくないってこと?
>>265 File Viewでファイル選択してDeleteキー押す。
269 :
デフォルトの名無しさん:01/11/06 23:27
>>267 どもです。その通りです。親スレッドからは切り離したい事情がありまして…
270 :
デフォルトの名無しさん:01/11/07 00:03
int型をCString型にするにはどうすればよいですか?
>>270 int i;
CString s;
s.Format("%d", i);
272 :
デフォルトの名無しさん:01/11/07 00:12
>>263 ありがとうございました
無事に解決できました
自分で
MESSAGE(WM_・・・,On・・・)
でハンドルを作らないといけなかったみたいです
273 :
デフォルトの名無しさん:01/11/07 00:21
274 :
デフォルトの名無しさん:01/11/07 01:08
>>269 何をしたいのかいまいちわからんけど、待機せずにスレッド終了を調べたいなら、GetExitCodeThread使うとか、タイムアウト0でWaitForSingleObjectやるとかいう方法はあるけど。
275 :
デフォルトの名無しさん:01/11/07 17:10
質問です
ダイアログの中に入れたエディットボックスにフォーカスを当てたくないときは
PrevDlgCtrl();
をメッセージEN_SETFOCUSに書けばいいのですが
ビューの中に入れたエディットボックスのフォーカスを飛ばす関数とかは無いですか?
自分でフォーカスを飛ばすという作業をやらないといけないですか?
分かる方いましたら ぜひ教えてください
WM_SETFOCUS
あとは自分で調べれ
277 :
デフォルトの名無しさん:01/11/07 17:22
>>276 とりあえず頑張ってみます
ありがとうございます
>>274 どもです。なるほど。
やりたいのは、ある仕事を受けたらそれを子スレッドにまかせて自分は他の仕事を
また受ける準備をするというルーチンを作りたいんです。
渡した仕事を子スレッドがやり終えるまで待ってから次の仕事を受けるというわけ
にはいきませんので。
280 :
デフォルトの名無しさん:01/11/08 15:47
質問です
エディットボックスで字の大きさよりも大きなボックスを用意すると
字がボックスの上の方に行っちゃいます
字をボックスの中心に表示させるにはどうすればいいのですか?
わかるかた よろしくお願いします
>>278 普通に子スレッド作って、
そのまま子スレッドを放ったらかしにしとけばいいんじゃない?
勝手に仕事やっててくれるよ。
終了を待つ必要もなければ。
>>280 枠だけでっかいのを用意しといて、
その真ん中あたりに枠なしエディットを置く。
・・・て、だめ?
283 :
デフォルトの名無しさん:01/11/08 17:30
>>282 それおもしろそうですね
トリッキーで!
今からやってみます
>>281 そうなのかもしれないのですが、スレッドリソースの解放とかきちっとしたかったので。
Windowsってそういうあたりきちっとやってます宣言してなくて(藁
ドキュメント一応よんだんですが言及してる個所がなかったんですよね。
Windows初心者でLinux使いの私としてはちゃんとやってるPOSIXスレッドに比べて、
ちょっとあれ?って感じです。
285 :
デフォルトの名無しさん:01/11/09 01:57
16*16 のアイコンを任意のファイルから所得し、
ビットマップを処理するアプリケーションを作っています。
が、ExtractIconEx() を使うと、ウインドウズのデザイン設定によっては
実際に返ってくるのが 18*18 のアイコンだったりします。
LoadImage() を使うと 16*16 アイコンを所得できるのですが、
これだと 複数アイコンを含んだファイルからの所得ができません。
どんな画面設定でも確実に 16*16 アイコンを所得する方法ってあるのでしょうか?
ファイルを直読みっていうのはナシで。
286 :
デフォルトの名無しさん:01/11/09 09:26
>>284 スレッド開始させてすぐスレッドハンドルを閉じればおっけー。
ハンドル閉じてもスレッドが終わるまではそのまま動く。
287 :
デフォルトの名無しさん:01/11/12 19:59
codeguruのコードって使用に許可が必要なのですか?
288 :
デフォルトの名無しさん:01/11/12 20:19
Permissionsのところ、訳してみたら
許可が必要っぽいんだけど。自信ない。
>>284 スレッド1つにつき、開放すべきハンドルは2つあるぞ。
気をつけろ。
こうしてリークが常態化するわけだ。
ドキュメントと「適切なサンプル」を読めよ。
292 :
デフォルトの名無しさん:01/11/15 10:26
double型で書き込まれたファイルを読み込んで
その数値を表示したいのですが
どうしたらよいでしょうか?
今はReadFileでbufに読み込んで
wsprintfで%lfで別のバッファーに書き込んで
TextOutで出力しようとしてるのですが
うまくいきません.char型は表示できます
bufを
double buf;
にして
ReadFileで読みなさい。
294 :
デフォルトの名無しさん:01/11/20 13:11
なるほど。
295 :
名無しさん:01/11/20 13:40
実行時にリンクされるダイナミックリンクライブラリと
プログラムを作る時点でリンクされるスタティックライブラリは
リンクされるタイミングが違うわけですが、
これによって何が異なってくるのでしょうか?
だれか教えてください。よろしくお願いします。
296 :
デフォルトの名無しさん:01/11/20 15:39
>>291 ドキュメント読んでもわからねーぞ
おせーてくれ
>>295 実行ファイルのサイズが小さくなる、かもしれない。
ライブラリがバージョンアップしても本体側は変更
しなくてもすむ、かもしれない。
ライブラリを呼んだつもりでウィルスを呼んでいた、
ということが起きる、かもしれない。
>>289 CreateProcess と混同してる?
デバッグウィンドウに出力される内容をファイルにも出力する方法ってありませんか?
コピー&ペーストで行うのではなくて全自動でログ出力してくれる機能です。
300 :
とりあえずやってみました:01/11/20 23:10
MFCを使ってとりあえず作ってみました。が、他のパソコンでやろうとするとエラーになります。DLLが見つかりません、
ということなんですがどうすればいいんですか?????
int型からCString型にするにはどうすればいいですか?
302 :
デフォルトの名無しさん:01/11/20 23:53
>>300 必要なMFCのDLLがないってことでしょう?
303 :
デフォルトの名無しさん:01/11/20 23:55
>>301 sprintfで・・・・・はできないな。
304 :
デフォルトの名無しさん:01/11/20 23:59
305 :
デフォルトの名無しさん:01/11/21 00:02
>>300 プロジェクト作成時に出るAppWizardでDLL付きか
MFCのスタティックライブラリ使用か選択がでるよ。
(ラーニング版はDLLのみ)
どっかのフォルダにあるMFC.DLLを他のパソコンに持っていきましょう。
>>301 CString cstring;
cstring.FORMAT("%d",int型の奴);
かな?
いまどきの環境でmfc42.dllがないとは考えにくい。
よって、デバッグ版を持っていったに3スレ
JavaScript は何処で聞いたらよいのでしょうか?
308 :
デフォルトの名無しさん:01/11/21 00:40
309 :
デフォルトの名無しさん:01/11/21 04:09
レジストリからREG_BINARY値を取得してその値を文字列に変換するには
どうすればよいのでしょうか?
OS、Win板でも同じ質問をしてみたのですが、板違いだと言われたので
ここに来てみました。
開発環境:VC++、Ver6.0、SP4、英語版でビルド
で作成したアプリケーションをWindows95、98、2000、ME上で使用しています。
OSの言語は英語、日本語、中国語(中国・台湾)で、英語版と日本語版では正しく
動作しているのですが、中国語版では不正な動きをしています。
リストボックスにアイテムをAddすると、データベースにデータが反映されているので
すが、データの表示がされていないのです。
今のところ原因が全くわからない状態です。
何が原因だと思われますか?
311 :
デフォルトの名無しさん:01/11/21 13:17
>>309 RegOpenKeyEx して RegQueryValueEx して wsprintf
313 :
デフォルトの名無しさん:01/11/21 13:53
>>310 まず、中国語版の VC で作成した中国語版のプログラムを、
中国語版の OS で動かすという、もっとも単純な場合から始めて
調べる必要があるように思います。
中国語版の OS には、別途、日本語版にもないような専用のサービスパック(?)を
あてないとダメ…とか、そういうことはないのでしょうか?
あと、IE のバージョンやサービスパックがどうなっているか…とか、
MSIME(っていうのかな?) のバージョン…とか、いろいろ考えられますね。
特に英語版の VC でビルドしたという点が気になります。
中国語のリソースを正しく扱えないようなコンポーネント、
たとえば IE のコントロールとかデータベースまわり(?)が使われている…とか。
171 :名無しさんの声 :01/10/09 16:13 ID:eamS2whU
ひろゆきは何をやっても絵になるよ
あのオーラは神に近いよ
173 :名無しさんの声 :01/10/10 21:16 ID:nvPoR0V6
>>171 そのオーラ?てのはスポーツ選手のそれとは違うだろ?
幼児愛好者や万引常習者と同じやつじゃない?
人に言えない罪悪を抱えた人間だけが放つ異様な空気というか
こういう奴って刑務所の野生児達には生理的に嫌われるんだよね
はやく西村刑務所入らないかなあ(ワラ
186 :名無しさんの声 :01/10/11 17:34 ID:tIF7M0rI
>>173 確かにスポーツ選手のように肉体を酷使して得た境地じゃないね
同性愛を隠して生きてる奴にああいう雰囲気の奴はいるが
ひろゆき氏はホモではないと思うが、ひろゆき氏の女性的な思考が
信者には神秘的に見えるのでは?
>>311、
>>313 回答ありがとうございます。
どこのサイトに行ってもなかなか回答が頂けな
くて困っていたんです。
早速中国語版の環境でビルドして試してみます。
それが一番手っ取り早いですよね・・・きっと。
316 :
デフォルトの名無しさん:01/11/21 19:46
317 :
デフォルトの名無しさん:01/11/24 11:17
現在、プログラム中でBGMをDIRECTSOUNDで鳴らしており、
DirectSoundNotifyオブジェクトを作り、WaitForMultipleObjectsで
シグナルを待つことによってストリーム再生をしています。
今まではこの方法でいけたのですがWindowsXPでこの方法を使うと
どうもBGMがうまく再生されません。
原因は他の効果音などのWAVを鳴らすと、このシグナルが何故か発生してしまい
BGMが次の部分でいってしまう、というものらしいです。
サウンドバッファを再生すると、別のサウンドバッファのシグナルが発生というのは
明らかにおかしいと思います。XPの仕様なのか、それともサウンドカードの仕様なのでしょうか?
ちなみにサウンドカードはSoundBlasterLive!で、ドライバはOS標準のLive!ドライバです。
>>317 WaitforSingleObkectは?
319 :
デフォルトの名無しさん:01/11/24 11:30
>>318 ストリーム再生なので、2箇所検出する必要があるんですよ。
前半を再生している間に後半の準備、後半の間に前半の準備、と。
320 :
デフォルトの名無しさん:01/11/24 11:52
それにWaitForMultipleObjectsだとしても
別バッファの情報が介入してくるのは変ですよね?
なんかそういうハナシを聞いた気がします。
DirectX のバグかなんか?だったような?
がんばって回避してください。
322 :
デフォルトの名無しさん:01/11/24 13:58
てことは、この方法ではストリーム再生をすることはできない
ってことになるんでしょうか?
シグナルなりが発生したときに、
本当に発生条件が満たされてるか再度チェックすれば
回避できるのではないかと。
チェックしたしたと言ってる所にバグがある確立85%(当社比)
325 :
デフォルトの名無しさん:01/11/24 20:58
>>323 なるほど!
しかし、どうやってチェックを?
正確な位置を使うためにNOTIFYを使っているのに
それ以外でうまくいくんでしょうか?
GetPosition とかいうメソッドがあったはずだけど(うろ覚え)、
シグナルが発生したときに、希望の位置に到達してるかどうか
改めて調べればいいんじゃない?
327 :
デフォルトの名無しさん:01/11/25 12:03
試してみましたが、どうもGetPositionでは正確に読み取れないらしく
ループごとに違った値がでてしまうようです。
幅を持たせてチェックするにしてもマシンごとに違うだろうし
この方法ではどうも不安定っぽいですね。
>327
あー、そのNotificationがやってきたときに、前半・後半の固定長の
バッファを更新しようとしているな。結論から言えば、それがよろしくない。
だいたい、DirectSoundNotifyにそれほどきっちりした精度を求めてはいけない。
簡単な話、使った分だけ補充すればいいんだよ。前に補充した位置を
覚えておけば、GetPosで帰ってきた値と比較して、幾ら使ったか判るだろ。
これでも判らなければ、ストリーム再生をサポートした
ソース付きライブラリのソースでも嫁。
329 :
初心者なんだけど・・:01/11/27 07:01
プロジェクトから拡張子.cpp/.hのソースファイルを削除する方法教えて下さい。
なんか移動できるけど消せないんです。あぁ。
Acrobat ReaderやWordみたく、水平スクロールバー横にボタンをさりげなく
設置するのはどうすればよいのでしょうか?
ExcelやVC++では、水平スクロールバーの横にタブがついてますが。
>>329 FileViewを開いて、消したいファイルを選択し、ツールバーの切り取りを押すか、
「編集」メニューの「削除」を選択すれば可能ではないでしょうか?
332 :
デフォルトの名無しさん:01/11/27 09:08
既存のファイルをプロジェクトに追加したときはClassViewって使えないんですか?
main()しか表示されません・・・
333 :
デフォルトの名無しさん:01/11/27 09:34
VC++のSTL使い物にならないってホントですか?
どこが問題なんでしょう?
SGIとかSTLportを使ったほうが良いんでしょうか?
質問ばかりでごめんなさい
>>333 ほんと。
1. 仕様が古い
2. 性能が悪い
3. バグがあった(最近のでは直ってるかも)
STLport 使いましょう。スタティックリンクもできるし、デバッグ用の機能も充実してるから、
わざわざ VC 標準の STL 使いつづける意味はないです。
335 :
デフォルトの名無しさん:01/11/27 13:40
画像のアップロードを誰にでも出来るような奴が欲しいのですが
(画像アップ機能付き掲示板の掲示板機能のないやつみたいな)
うまく検索できません。お勧めのとかないですか?
激しく板違い。
それとも、ISAPIなアプロダの開発でもするのか?
337 :
デフォルトの名無しさん:01/11/27 14:49
質問です
ファイルオープンで何個も同時に開けますか?
txtファイルとxlsファイルを同時に開くと暴走します・・・
>>337 システム的には何の問題もありません
暴走の原因はあなたのソフトのバグです
READY>
339 :
デフォルトの名無しさん:01/11/27 15:03
質問です。
タスクトレイに常駐するアプリを作ってるんですが、
トレイ上のアイコンにカーソルを乗せた時にでてくるポップアップの文字列を
値によって変化させたい時はどうしたらいいでしょうか?
340 :
デフォルトの名無しさん:01/11/27 15:04
>>338 やっぱりそうですよね
頑張って直してみます
>>334 どうもありがとうございますm(_ _)m
早速使ってみようと思います。
342 :
デフォルトの名無しさん:01/11/27 18:47
へ〜、VCのSTLって使えないんだ。
STLportって解凍してインクルードパスに含めるだけで使えるの?
>>342 > STLportって解凍してインクルードパスに含めるだけで使えるの?
ライブラリをコンパイルする必要があるけど、そんなものかな。
ヘッダ中で #pragma の魔法を使ってあるので、実行ファイルを作るときには適切なライブラリが
勝手にリンクされる。
コンパイルしてないのに動いた・・・
ということはVCのが呼ばれているのか。
関係ないけど、SGI iostreamって使う必要あるのかな?
WEBでもっと検索してから聞きに来い馬鹿
>>345 だいたい同意だが、STLport に関しては Web よりもまず付属のドキュメント読んで欲しい。
英語のドキュメントが読めるくらいのやつは
ここで管欄質問はしないものと思われ
管欄質問ってなに?
くだらんしつもん
あぁ、そう読むのか・・・理解した。
>>344 SGI iostreamを使わないならビルドしなくても良い
352 :
デフォルトの名無しさん:01/11/29 03:04
質問です。
Windows Xp 対応の統合開発環境ってMS製品以外でありますか?
Borland 製品は公式には非対応みたいなこと書かれていましたが…
レジストリに文字列をREG_BINARY、Unicodeで保存したいのですが
どのようにすればよいのでしょうか。
RegSetValueExで保存しようとしてもUnicodeで保存されてくれません。
win2k、VC6.0
354 :
デフォルトの名無しさん:01/11/29 14:08
COleDataSource・COleDropSourceとCOleDropTargetを使用してドラッグ&ドロップの処理を行うようにしています。
ドラッグ時にマウスカーソルの形状をエクスプローラー風にするにはどうしたらいいのでしょうか?
>>339 NOTIFYICONDATA
のszTip書き換えて
Shell_NotifyIcon()でNIM_MODIFYで更新すれ
356 :
デフォルトの名無しさん:01/11/29 15:53
サービスで動作させるアプリを作成したいのですが、
参考になるようなURLご存知の方、いらっしゃいませんか?
Googleでサーチしてもなかなか見つからなくて・・・。
357 :
基本を知らない男:01/11/29 17:56
VC6でMFC使ってダイアログベースのソフト制作しているのですが、
このソフト上からネットワークプリンタ(レーザー)に
適当な文章(TESTとか)を印刷して紙を吐き出させるには
どう書けばよいのでしょう?
できましたらサンプルソースなどよろしくお願いします。
文字装飾とかは後回しでイーです。
>>357 ウィザードのSDI(MDI)モードでつくったソースから印刷の部分をコピーするとか。
VCでダイアログベースでアプリウィザード使ってるんですが、
画像の処理(色数変換など)をしたいと思っていて、メインダイアログと、もう一つウィンドウを作っているのですが、
メインからウィンドウに画像(BMP)を表示させているのですが、それを加工するには
どこに加工するコードを追加すればいいのでしょうか?
それと参考になるようなHPがあれば教えてください。お願いします。
361 :
デフォルトの名無しさん:01/11/29 19:47
縦横比固定のウィンドウを作るには、
どうしたらいいんでしょうか・・・。
362 :
デフォルトの名無しさん:01/11/29 19:55
>>353 自分で MultiByteToWideChar で Unicode に変換しろ
>>354 今はエクスプローラ風になってないのか?
エクスプローラ風って、具体的にどういうカーソル形状だ?
>>359 いつ加工したいかによる。
例えばユーザがメニューを選択したときに加工したいなら、
メニューを作ってメニューのイベントハンドラに
加工するコードを書けば良い。
>>360 何の参考だ?
>>361 ウィンドウを最初に作るときに縦横比が固定になるようにして、
あとウィンドウサイズを変えられようとするとき
WM_WINDOWPOSCHANGING が送られるから、
ここで縦横比が固定になるようサイズを書き換える。
>>361 WM_MINMAXINFO を捕まえて、LPARAM でわたってくるウィンドウサイズを上書き。
>>362-363 ありがとうございます。
お二人のレスの内容からして、
どうやら縦横比固定というウィンドウスタイルの指定はできないようですね・・・。
では、レス参考にさせていただきます。
>362
ありがと やってみる。
参考ってのは画像の加工とか具体的にやってるVCのHP
>>356 SCM回りのMSDNのドキュメントを読んでから出直してきなさい。
市販の解説本もあるが、
MSDNと同じことしか書いてない。
う〜ん、読み込んで変数m_Aに割り当てた画像を加工する場合、
変数の指定はCBITMAPなんだけどそれをそのまま指定して式を書いたんじゃあエラーが出ます・・・
「代入演算子 'operator =' が、指定されたクラスに定義されていません。」
ってでるんだけど、どういういみかおしえてもらえませんか?
> それをそのまま指定して式を書いたんじゃあエラーが
その、書いてみた式ってのを見てみたい。
>>367 >>「代入演算子 'operator =' が、指定されたクラスに定義されていません。」
>>ってでるんだけど、どういういみかおしえてもらえませんか?
ぶっちゃけた話
「代入演算子 'operator =' が、指定されたクラスに定義されていません。」
って意味だと思うけど。
おいお前ら、教えてください。
CStringみたいなものを勉強がてら作っているのだが、
以下のソースの char*() の次のconstがないと、
strlen(EasyString)みたいに、const char*型の引数を
とる関数を呼び出せません。const char*をオーバーロード
してんだからそれでいいんじゃないのか?
CEasyString::operator const char*() const
{
return m_Str;
}
>>370 うん、出来るよ。それ自体は全然問題ない。
ただ、使い方に依る。
その EasyString のインスタンスが const の場合、
const 付きの operator const char* でないと呼び出せない。
例えば
struct A{
EasyString s;
}
const A* p;
ってのがあったとして、p->s は const になるから、
strlen(p->s) をやろうとしたとき、
const なしの operator const char* は呼べない。
なるほど。ありがとう。
373 :
デフォルトの名無しさん:01/11/30 01:02
今更だけど、ISAPIフィルタ作りたい。
良い資料/WEB等、無い???
作りたいのは、認証システム。
doc, xlsファイルとかだと、直にURLたたかれたら、ユーザチェック
できないでしょ?普通。
あ、win統合認証とかは使えない。
ユーザIDとパスワードたちは、DBに入ってるし。。。
>>362 現在エクスプローラーみたいな画面を作成しています。
左にTreeView側 右にListView側があります。
エクスプローラー風カーソル形状とは、
ListView側で項目選択してドラッグを開始すると変化する形状のことです。
又、そのままTreeView側ドラッグするとTreeViewの各項目が選択状態にするにはどうすればいいでしょうか?
超初心者ですみません。
VisualBasic分かる人教えてください。
問1.<A>に最も適する語句を記入せよ。
マウスのクリックやドラッグ、あるいはキーを押すといった事象の発生の事を
<A>という。
VBのプログラムは<A>に対応するプロシージャを記述することで行う。
問2.<A>に最も適する語句を記入せよ。
VBにはコマンドボタンやテキストボックスなど豊富な<A>が用意されている。
問3.<A>に最も適する語句を記入せよ。
プログラムの実行時にウィンドウとなるのが<A>であり、
この上にテキストボックスなどを貼り付けて画面のデザインを行う。
問4.<A>に最も適する語句を記入せよ。
オブジェクトの色・形・表示文字といった属性を設定するのはプロパティ、
オブジェクトの動作を表したものが<A>である。
問5.<A>に最も適する語句を記入せよ。
プログラムの追跡をするためにプログラムを一時中断するには、
コード中に<A>を設定する。
問7.一定の時間が経過するたびにコードを実行できるコントロールは何か。
問8.変数名 a を整数型で宣言する場合を記述せよ。
問9.コントロールのプログラム上での識別名を表すプロパティ名を記述せよ。
問10.ボタンの状態を表すプロパティ名を記述せよ。
1つでも良いです。どなたか教えて下さい。
すみません。スレ間違えました。
377 :
デフォルトの名無しさん:01/11/30 15:38
ラジオボタンを最初から選択されているようにするには
どうしたら良いですか?
378 :
デフォルトの名無しさん:01/11/30 16:28
>>374 >カーソル
OnDragOverをオーバーライドすればいいのでは?
379 :
デフォルトの名無しさん:01/11/30 16:29
380 :
デフォルトの名無しさん:01/11/30 17:29
ボタンをツールバーのボタンみたいに押しっぱなしに
することは出来ますか?
381 :
初心者12号:01/11/30 17:34
めちゃくちゃ初歩てきなことができません。。。教えてください!
int DispDate(char *cDate){
char cYear[2];
char cMonth[2];
char cDay[2];
strncpy(cYear, &cDate[0], 2);
strncpy(cMonth, &cDate[2], 2);
strncpy(cDay, &cDate[4], 2);
printf(cYear + "年" + cMonth + "月" + cDay + "日\n");
}
void main(void){
char cDateO[6];
cDateO = "011130";
DispDate(cDate);
}
うまくいきません。
cYear が「011130」、
cMonth が「1130」、
cDay が「30」
ってなっちゃいます。ネタじゃないです。本当にわかりません。
助けてください。
>>381 strncpyは、コピー元よりコピー先の方が小さいと
文字列の終端記号('\0')は付けないので、
char cYear[3]; とかにして cYear[2] = '\0'; しときなさい。
つーかそもそも
> printf(cYear + "年" + cMonth + "月" + cDay + "日\n");
> cDateO = "011130";
コンパイル通るんか?
>>381 int DispDate(const char date[])
{
return printf("%c%c%c%c年%c%c月%c%c日", date[0], date[1], date[2], date[3], date[4], date[5], date[6], date[7]);
}
で充分だと思うのだが。
>>383 もうちょいシンプルにしてみた
printf("%.4s年%.2s月%.2s日", date, date+4, date+6);
>>382 さん
[3]にしたら出来ました!添え字の最小値って0からじゃなかった
んすね?!
>>383 さん
そりゃあんまりです(ToT
>>384 さん
変数に切り刻んで入れたかったんです。そういうことも出来るんす
ね!
みなさんありがとうございました!
>>385 添え字はゼロからだけど、
C言語の文字列は最後に '\0' が付くので、
余分に1個いるんだよ
387 :
デフォルトの名無しさん:01/11/30 19:36
int DispDate(const char date[])
{
char year[5];
char mon[3];
char day[3];
sscanf(date, "%4s%2s%2s", year, mon, day);
return printf("%s年%s月%s日", year, mon, day);
}
変数に入れるならこんな感じだな。
>>386 さん
すみませんVB上がりで只今脱VB中のC勉強中なもので;
配列の最大値じゃなくって文字数の宣言だったんスね;
面目ないです。
> printf(cYear + "年" + cMonth + "月" + cDay + "日\n");
> cDateO = "011130";
これでバレバレですが;
printf("%s年%s月%s日", cYear, cMonth, cDay);
strcpy(cDateO, "011130");
っす!
>>387 さん
うぉ!こりゃ楽でいいす!
Cは奥がフカーイっす!
タスクスケジューラを一時停止するには、
batファイルになんとかけばいいのでしょうか?
9x系
NT
2Kでやりかた違うと言ったらどうする?
392 :
デフォルトの名無しさん:01/11/30 22:08
質問宜しいでしょうか。
リッチテキストボックス内のテキストを「。」の後で改行し、
別のテキストボックスに出力したいのですが、
どういう処理をすれば良いでしょうか?
こんにちは。私は山田です
↓
こんにちは。
私は山田です
393 :
デフォルトの名無しさん:01/11/30 22:10
こんにちは。\n私は山田です
394 :
デフォルトの名無しさん:01/11/30 22:11
設計の手法について、悩んでいます。
どういうアプローチで、コード前の設計状態を上手く起こせるものかに
ついて、以前より悩んでいたりします。
設計がヘボければ、コードにした時に痛い目を見ますので、
どうにかうまく、コード前段階の設計を起こせないものかと・・・。
こうやれば、設計手法は上手く良くとか、こんな本を読めば、
コード前の設計を、上手く起こせる・・・等ありましたら、
教えてほしいです。
396 :
デフォルトの名無しさん:01/11/30 23:54
>>380 チェックボタンを配置してプロパティでプッシュボタン型スタイルにする
スレ違いに思えるがマジレス。
GUIとかで悩んでいるなら、似たような構成のプログラムをいじる。
何がダメで、何がよいか、明確なポリシーをもてるようになるまで
様々なアプリをいじってみなさい。
それ以外の、もっと広い意味でのプログラム設計の話しだったら、
本を読むのも結構だけど、読むだけではなく、
読んで、設計をして、そしてレビューを行いなさい。
近くにいるもっともその辺に詳しい人に設計のレビューを行いなさい。
レビューしながら、いろんなことを聞いて、逃さずメモして、
再設計してまた、レビューを行いなさい。
ただし、レビューに使う資料は、どんなに増えても10ページ程度に納めときなさい。
字はあまり書かないでいいから、概念図をたくさん書きなさい。
XP以前の、ウォーターフォールっぽい開発をやるなら、
大体こんな感じです。
それと、図を書くときだけど
ワープロとかCASEツールとか、そんなもんは使わなくていいから
裏紙とかに、色ペンで書くようにしなさい。
書き損じたら、すぐ捨てて、新しくまた手書きで書き直しなさい。
書き直しがしやすい程度の、単純な図を書きなさい。
>>395 GUI だったら画面遷移図を書くといいよ。
エディットボックスでエンターキーを押すと、
プログラムが終了してしまうのはなぜですか?
その回避方法のヒントもキボンヌぅ
>>400 Enterキーを押すとOKボタンが押されてしまうからでは?
そういうわけでOnOKをオーバーライドしてベースクラスの呼び出しを
コメントアウトするのが手っ取り早いです。
void CxxxDlg::OnOK()
{
// TODO: この位置にその他の検証用のコードを追加してください
//CDialog::OnOK();
}
OKボタン削除したんですが、
置いとくほうがいいのでしょうか?
逆に聞く。
お前のプログラムはOKボタンをおいとかなきぃけない理由があるのか?
前にもボタンを削除したがっていたやつがいたな…
>>402 も一回最初からやってできるようになりました!
ありがとうございました
407 :
デフォルトの名無しさん:01/12/02 00:15
>>400 OKボタンのプロパティで、
「標準ボタンにする」だかなんだかのチェックをはずせば。
自爆ボタン削除したんですが、
置いとくほうがいいのでしょうか?
逆に聞く。
お前のメカは自爆ボタンをおいとかなきぃけない理由があるのか?
ポチっとなかよ!
自爆ボタンの無い機械などヘタレです。
>>411 実際問題、相手の手に渡って解析されるぐらいなら壊れた方がマシ、という発想で作ら
れた機械は多いと思うが。兵器とか、IC カードとかさ。
でもまぁ、まっとうな OS の上で動くプログラムだと、デバッグ用 API が強力だから、解
析されるのを完全に妨げるのは難しいよな。特に Win32 だと NuMega のカーネルモー
ドデバッガとか使われると、もうどうしようもない。
413 :
デフォルトの名無しさん:01/12/02 17:43
PeekMessageでループまわして、メッセージがない時
10ミリ秒間隔程でInvalidateRectして一定のアニメーションを
描画するようにしてます。
で、プログラム中にPlaySoundでwaveを鳴らしたら、
音の出始めは問題は無いんですが、
そのwaveの音が終わる瞬間に描画処理が一瞬止まるんです…。
一瞬の間、描画がなされないんです。
音声再生処理を別スレッドにしてみても同様でした。
どうしたらよいのでしょうか…。
・WM_PAINTでアニメーションするのを止めればいいんではないでしょうか?
・DirectSound周りを使えばいいんではないでしょうか
>>413 WM_TIMERかマルチメディアタイマ
416 :
デフォルトの名無しさん:01/12/03 02:01
VCで生成したファイルに登録情報やプロダクトIDって含まれてるんでしょうか?
ちょっと気持ち悪いんですけど…
417 :
デフォルトの名無しさん:01/12/03 02:29
>>416 聞かなくてもビルドすれば分かるんじゃない?
それともこれから買うつもりなの?
いや、バイナリエディタとかで見ても自分には仕込まれてるかどうかわからないので…
別のVCで同じものをビルドして比較すればいいんでしょうけど。
簡単にわかるような所には書かれてないと思うんですけど、
>>420 そんなに心配なら「ユーザ登録しない」って手もあるぞ。
>>420 いえ、別に。
あなたがキモチワルイと思うならVC++を使わないという選択肢もあります。
423 :
デフォルトの名無しさん:01/12/03 07:13
今日電車でさー酔っぱらいがフラフラとやってきてヤな予感したんだけどさ
案の定オレのトナリに座って30秒。
やりやがったよ、ゲロだらけ。もー最悪。
とりあえず VC++ 死ね!!!!!!!!!!!!!
424 :
デフォルトの名無しさん:01/12/03 08:21
Ruby死ね!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
425 :
デフォルトの名無しさん:01/12/05 11:44
リソースエディタで配置したボタンのラベルをビットマップ
もしくはアイコンにするにはどうしたら良いですか?
SetBitmapとかSetIconとか
427 :
デフォルトの名無しさん:01/12/05 13:35
IEのバージョンはどうやって調べるんだい?
428 :
デフォルトの名無しさん:01/12/05 14:09
int i,j;
for(j=0;j<512;j++){
for(i=0;i<512;i++){
pDC->SetPixel(i,j,Dot{i][j]);
}
}
として画像を表示してるんだけど、時間がかかる。
もっといい方法ないすか?
429 :
デフォルトの名無しさん:01/12/05 14:57
430 :
デフォルトの名無しさん:01/12/05 16:30
COleDataSource・COleDropTargetでドラック&ドロップを行っています。
COleDropTargetを設定しているViewでドロップを行うとOnDropがコールされますが、
COleDropTargetを設定していないViewでドロップを行ったのはどーやって判断すればいいですか?
COleDropTargetを設定とは?
m_dropTarget.Register( this )を行っているViewです。
433 :
デフォルトの名無しさん:01/12/05 18:36
プログラムからメッセージを送るとか、ウィンドゥズから
呼び出されるとか、タスクがどーのこーのとか・・・
そういうOSとプログラムのやりとりがかなり分かりません。
分かり易く解説してるHPがあれば教えて下さい・・・。
gege
>>433 「猫でもわかるプログラミング」というサイトを一応推薦しておく。
URLは自分で探して
文字列検索又は、比較でワイルドカードを含む形で一致しているかわかる関数ってありますか?
437 :
デフォルトの名無しさん:01/12/08 01:17
1.正規表現ライブラリを使う。この際 '* -> .*' , '? -> .'という変換を
行い、ワイルドカードを正規表現化する。
2.たしか、やねうらおがそんなのどっかでつくってような。
439 :
デフォルトの名無しさん:01/12/09 14:24
CString型の文字列からタブで区切られた数字をint型の配列に
入れたいのですが、
CString型からトークンを切り出すような関数はあるでしょうか?
charだとstrtokになると思うのですが、
CString型から切り出すにはどうすればいいですか?
CString foo;
char *p = strtok(foo.GetBuffer(), "\t");
while (p != NULL)
{
/* 処理 */
p = strtok(NULL, "\t");
}
foo.ReleaseBuffer();
>>440 なるほど。試してみます。
Thanx!
442 :
デフォルトの名無しさん:01/12/13 13:07
CTreeCtrlでROOT ITEMが複数あった場合、GetRootItem()を行ったら場合、
取得できるROOTはどれですか?指定したROOT ITMEを取得する方法はありますでしょうか?
443 :
デフォルトの名無しさん:01/12/14 14:04
ルートが複数ってどんなツリーだ?
444 :
デフォルトの名無しさん:01/12/17 11:49
今までにあったこともない事態に陥ったのですが、質問いいでしょうか?
何故かDEBUGではエラーにならずに
RELEASEで実行するとAccess Violationとなってしまうのです。
古いソースを上書きしてなんとか回避しましたが、
原因が何もわからないので気味が悪いです。
こういうことってどのようなことが原因でおこるのでしょうか?
446 :
デフォルトの名無しさん:01/12/17 12:20
>>445 すばやい回答感謝です。
必ずDEBUGではOK、RELEASEではダメということは
DEBUGでは0に初期化してくれるということなんでしょうか?
DEBUGの場合スタックが0xCC、ヒープが0xCDで初期化される。
他の原因はヘルプでも引いてみるか検索すれ。わりとよくある話だ。
448 :
基本を知らない男:01/12/17 15:21
すいません、ご教授願います。
今、ミューテックスの勉強をしているのですが、
シグナル開放待ちがよくわかりません。
以下のようなサンプルを作ってみました。
自分を呼び出す回帰型関数ですが、(実際にはこれはバグ)
動作の理想として、2回目のWaitForSingleObject()から
もどって来ずにフリーズする事を希望しています。
(ミューテックスが開放されていないから)
ですが実際には何度もループしてしまいます。
(ミューテックスが効いていない)
どうすれば、2度目のWaitForSingleObject()で
待ってくれるようになるでしょうか?
void mutex_test()
{
HANDLE mutex;
mutex=CreateMutex(NULL,FALSE,"Test");
WaitForSingleObject(mutex,INFINITE);
mutex_test();
ReleaseMutex(mutex);
CloseHandle(mutex);
}
兄チャマ、APIの返値はちゃんとチェキしないといけないデス。
450 :
デフォルトの名無しさん:01/12/17 16:33
>>447 なるほど…勉強になりました。
ありがとうございました!
オープンしているファイルのファイル情報の取得方法を知りたいです。
どのようにすればよいでしょうか?
具体的にはワイルドカードでファイルをオープンして
(例えば、test????.txtでファイルを開く)
実際に開いたファイルのパス名やファイル名などを取得したいのです。
よろしくお願いします。
452 :
デフォルトの名無しさん:01/12/19 23:02
ワイルドカードでファイルをオープンなんてできない
>>451 ワイルドカードでファイルがオープンできるなんて裏ワザあるの
かと思って、一瞬驚いたぞ。
FindFirstFileとかのことだろどうせ。
455 :
悩んでます:01/12/19 23:34
質問させていただきます。初心者ではありますが、かなり真剣です。
とある事情からWin32APIの「SystemParametersInfo」という
関数を使う必要が出てきました。具体的にはその関数の1番目の
引数を「SPI_GETSHOWIMEUI」に設定するのですが、いざビルドした所
エラーになりました。(エラーはSPI_GETSHOWIMEUIは定義されていない)
しかしMSDN Online Japanのサイトでもしっかりと記述してあるし
定義されていないわけがないのですが、なぜかそう出ます。
includeしているのはWindows.hのみです。
Visual C++6.0とDirectX7.0を使用してます。
他に何かファイルをincludeする必要でもあるのでしょうか?
一応他の関連スレでも聞く予定ですが、もし分かる方がいらっしゃれば
どなたかご教授お願いします。
456 :
デフォルトの名無しさん:01/12/19 23:39
>456
すみません。grepとはどういうことですか?
460 :
デフォルトの名無しさん:01/12/19 23:52
>>455 ヘッダ見た感じ、
#define _WIN32_WINNT 0x0400 か
#define _WIN32_WINDOWS 0x0410 が必要。
たぶんWin95では使えないんじゃないのか?その定数。
>>458 検索しろ
grepの意味は分かりました。
一応ファイルの中を覗いてSPI_GETSHOWIMEUIたるものは
発見したのですが、どうも
「#if (_WIN32_WINNT >= 0x0400)||(_WIN32_WINDOWS > 0x0400)」
ではねられているようです。これは何を指すのでしょうか?
>457
WINVER 0x0500です。version5.0となってます。
これが関係しているのですか?
>460
一応OSはWin98SEです。MSDN Online でも
SPI_GETSHOWIMEUIはWin98orWin2000となっていたので
使用可能なはずですが・・・。
>460=462
本当にありがとうございます。解決しました。
検索はしてるのですが・・・。今後もう少し気をつけます。
464 :
ワカヴァマーク:01/12/20 10:12
関数の作り方がよくわかりません〜(ToT)/
exp(-x^2)
の関数を-3.0<x<3.0の範囲で0.5刻みで出力したいんですけど〜
C++の標準クラスだという string クラスを使うにはどうすればいいですか。
#include <string>
として
string str;
とやっても、stringは定義されていない識別子です、と言われます。
466 :
デフォルトの名無しさん:01/12/20 13:18
>>465 ただの string ではダメ。
std::string とフルネーム記述するか、
unsing namespace std; で、std:: の省略を宣言する必要あり。
ありがとうございます。大感謝っす!
あぁ、MSDNでもようやく該当個所見つけました。
よく見たつもりでしたが、あまかったみたいです・・・
MSDN では答えのキーワード(std とか namespce とか)
があらかじめ判ると、該当箇所が検索できるようになっています。
>464
#include <vector>
#include <algorithm>
#include <iostream>
#include <math.h>
template<class T>
class Range
{public:
T begin, end;
Range( T s, T e ) : begin(s), end(e){}
template< class FUNC>
FUNC step( T step , FUNC fn){
for(T i = begin; i < end; i+=step ) fn( i );
return fn;
}
};
template<class T>
class f_expr{
public:
std::vector<T> result;
T operator()( T x )
{ T val = exp( -x*x ); result.push_back(val); return val;}
};
int main()
{
std::vector<double> result = Range<double>(-3.0, 3.0).step(0.5, f_expr<double>() ).result;
std::copy( result.begin(), result.end(), std::ostream_iterator<double>( std::cout,"\n") );
return 0;
}
471 :
tanabota:02/01/01 17:40
プログラムのド素人ですが、思わぬところでVC++6.0が
手に入ってしまいました。
どういう事ができるのかな、と思い過去レス読んだら
「Winアプリで作れないものはない!」ってことなんですが
実際、趣味でやってる方々はどんなもの作って楽しんでいるのか気になります。
やっぱりゲーム?それとも、自分が使うためのツールとか?
参考までに「こんなことやってる」って教えていただけると幸いです。
>思わぬところで
この割れ野郎!!!
In article
>>471, tanabota/471 wrote:
> プログラムのド素人ですが、思わぬところでVC++6.0が
> 手に入ってしまいました。
ちゃんと買いましょう。
474 :
デフォルトの名無しさん:02/01/01 19:16
挫折してもJavaに流れてくるのは止めよう。
また一人M$の手先が加わった。
>>471 VC++にはシリアル番号と対応するユニークなIDがリンク時に
アプリケーションに埋めこまれる機能があります。
よって不正な手段で入手したVC++はすぐにMSにバレてしまいますので
ご利用の際は十分注意した方がよいと思います。
478 :
デフォルトの名無しさん:02/01/02 06:18
>>477 MSがすべてのアプリケーションをいちいち調べているわけでもあるまいし。
そういう程度の低い脅しはやめてくれ。
まあでもコピーは犯罪だっつーのは明白だから、ちょっと使ってみて気に入ったら買えってこった。
>>471
>>478 ネタにマジレスすんなよ・・・お前アフォか?
>ちょっと使ってみて気に入ったら買えってこった
完全にシェアウェア感覚だなw
481 :
デフォルトの名無しさん:02/01/02 09:09
すんません、awkおよびperlで、
123 345 567 $ this is comment
987 654 321 $ another comment
......
ていうかんじのテキストデータファイルがあるとして、
各行の$以降を削除して数字データだけにしたいとき
どうすればいいのですか?
482 :
デフォルトの名無しさん:02/01/02 09:18
>478
試食は試食品だけにしろ。売り物のビニール破って食うなアソポソタソ
>>481 ここはVCのスレだから答えられない
新しいスレッドを作った方がいいよ
484 :
デフォルトの名無しさん:02/01/02 09:38
485 :
デフォルトの名無しさん:02/01/07 19:53
初心者揚げ
486 :
デフォルトの名無しさん:02/01/10 02:53
現在MFCでSDKアプリ作ってますが
ヴュー内を静的分割しようと考えてます
CSplitterWndで分割して分割したビューにCView1, CView2を
セットはできたのですが描画が上手くいきません
再描画処理したいんですけど
スプリットバーを動かしてるとき、または動かした後に
プロシージャに送られてくる(?)メッセージ(WM_???)が分かりません
それとヴュー内にダイアログエディタで作成したダイアログを
埋め込むことってできるんでしょうか?
なんかアタッチっていうのでできそうな気はするんですが
両方ともMSDNでいろいろ調べてみましたが分かりません
助言、よろしくお願いします
>>486 CViewならOnDrawに書けばいいはずだが。
後半は、CFormView。
スクリーンセーバー実行時にプログラムの一部を停止させたいのですが
スクリーンセーバー起動時に送られてくるメッセージは
switch(message){
case WM_SYSCOMMAND:
if(wParam == SC_SCREENSAVE){
...
// hwndはこのときデスクトップのもの
}
ですので...の部分に停止したいプログラムのフラグを入れることはできますが
スクリーンセーバー終了時に送られてくるメッセージが分かりません
hwnd = デスクトップのもの
メッセージ >> WM_DESTROY
だと思ったのですが違いました。。。
490 :
デフォルトの名無しさん:02/01/10 06:10
MFC使ったことあるのですが、プログラムしているというより、パズルを
しているとしか思えなかったのですが、そんな僕は逝った方がよろしいでしょうか?
491 :
デフォルトの名無しさん:02/01/10 15:42
メンバ関数を持つクラスと、メンバ関数を持たないクラス、メモリ消費量は同じですか?
492 :
デフォルトの名無しさん:02/01/11 00:07
WM_SYSCOMMANDってウィンドウがフォーカスしてないと
スクリーンセーバー開始メッセージ飛んでこない(SC_SCREENSAVE
困ったなぁ・・・・・・
ScreenSaverProc、DefScreenSaverProcにもメッセージ来ないです
こうなったらプロシージャに飛んでくるメッセージを
一定期間(スクリーンセーバー開始前から終了後数秒間
すべて取得して
そのメッセージをテキストに吐き出させて調べるしかないですかね
493 :
デフォルトの名無しさん:02/01/11 00:55
bmpをjpgに変化するにはどうすればいいんだ?
>>490 それを楽しいと思う(or思い込む)ことができないなら、
逝った方が幸せかもしれない。
俺? 俺は幸せだよ(遠い目)。
>492
はぁ、spy++の立場はどうなるんでしょうかね。
496 :
デフォルトの名無しさん:02/01/12 01:06
>>495 そういう便利なツールあったんですね
ありがとう
497 :
デフォルトの名無しさん:02/01/12 01:07
>>489 MAGURO ONLINE は初心者サイトでは頻繁に紹介されるけど
なぜか2ちゃんでは駄サイトって言われてるな。
2ちゃんねらは自分を初心者だと思ってないからな
500 :
デフォルトの名無しさん:02/01/13 02:20
VCで教えてください。
例えば以下のような構造体を定義します。
struct aaa {
unsigned int a:8;
unsigned int b:8;
unsigned short c:16;
}
こうすると、Linux上でgccでコンパイルすると詰めてくれて sizeof(aaa)が4バイトに
なるのですが、VC(v5)でコンパイルすると、バイトアラインメントのせいでsizeof(aaa)が8
バイトになります。VCでもgccの時と同じように詰めて欲しいのですが、良い方法無いですか?
501 :
1バイトは血の一滴:02/01/13 02:38
泣けるぜ
>>500 オプション指定ではずせば?
探せば4バイト境界に配置とかあるはず。VCは使ったこと無いので
詳しくは他の方に。
#if 0
#endif
ってどういう意味なんですか?
コメントの変わりに使えるって聞いたけどわかりません。
>502
プロジェクトの設定にて、バイトアラインメントの指定が出てて色々かえて
みたのですが、うまく変わらないんですよ。
>>503 #if (評価)
(内容
#endif
(評価)が真なら内容が有効になる
(評価)が偽なら内容が無効になる
という意味です。
>>500 アライメント1バイトにしてもだめだった?
510 :
デフォルトの名無しさん:02/01/13 03:15
こばんわー。
ビジュアルベーシックを使い始めています。
えーっと、PictureBox自体を回転させようと考えているのですが。
PictureBoxは斜めに表示できないという話を聞きました、
やっぱり不可能なことなのですか?
>>507 はい。色々試した中でそれもやってみたはずですが、確かうまくいきませんでした。
>>506 >>509 ありがとうございます。試して見ます。
512 :
デフォルトの名無しさん:02/01/13 03:30
>510
VBのスレで質問してね。
一番簡単なのは、数学の回転公式にしたがって、1点ずつ移動させる。
時間かかるけど、勉強になる。
513 :
デフォルトの名無しさん:02/01/13 03:44
>>512 あら!普通の初心者スレかと思いました?
VCって書いてあったね。
514 :
デフォルトの名無しさん:02/01/13 04:05
>>500 VCの場合
struct aaa {
unsigned short a:8;
unsigned short b:8;
unsigned short c:16;
} ;
で、4バイトになります。
515 :
デフォルトの名無しさん:02/01/13 17:31
既出だとは思いますが教えてください。
ExeファイルをCソースコードへの逆コンパイラのおすすめを教えてください。
お願いします
516 :
宿題処理中:02/01/13 17:57
C++の授業で分からないところがあります。
------------------------------------
#include <stdio.h>
[@] triangle(double,double);
void main(void)
{
double area;
area=[A](5.3,10.0);
printf("Area : %f",area);
}
double triangle([B] base,double [C])
{
double area;
area=base*height/2;
return [D];
}
-------------------------------
上の@〜Dの答えを考えてみました。
@ double
A triangle
B double
C height
D area
あっているのでしょうか・・?
>>516 VCと関係ないんじゃない?
「宿題みてあげるっ」スレで聞いたら?
In article
>>516, 宿題処理中/516 wrote:
> あっているのでしょうか・・?
あってますよ。
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
520 :
宿題処理中:02/01/13 19:50
>>517 スレッド一覧でCtrl+Fで「宿題」って検索したんですがマッチしなかったもので・・
>>518 ありがとう御座います。無事終わりました。思っていたより早く終わってよかった・・
521 :
デフォルトの名無しさん:02/01/14 00:12
まさか・・・・・
522 :
デフォルトの名無しさん:02/01/14 01:25
ちょいとアホな質問かもしれませんが、
Visual C++ 6.0で、WindowsXPで動くプログラム
を作成することはできますか??
Windows9x系のプログラムってXPでけっこう動かない
のがあるんですよね?そのへんどうなんでしょうか・・・。
>>519 ありがとうございました。さっそく使ってみました
しかしながらアセンブラ読めないんですが・・・<<スミマセン
出力されたアセンブラを皆さんはCソースにどうやって変換するのですか?
それともアセンブラを読んじゃうのですか?
524 :
デフォルトの名無しさん:02/01/14 01:57
>523
痛いな。
EXEをソースに変換できるなら、誰でも簡単にパクリソフトを作れちゃう。
>>523 > 出力されたアセンブラを皆さんはCソースにどうやって変換するのですか?
だから、変換できないんだって。
少なくともシンボル名(変数名)なんかの情報は EXE には残らないし、制御構造も最適化の結果として
原形をとどめない形に展開されることが多い。C のソースから EXE には変換できても、逆は情報が欠
落してしまうので不可能。
アセンブラを読むしかない。そもそもファイルを解析する目的は何? 場合によっては、単に逆アセンブ
ルするよりも少しはましな方法が出せるかも知れんぞ。
>>523 逆汗する必要があるんだったら、必死こいて読むよ。
慣れてくるとCのソースがおぼろげに見えてくるようになる。
でもその前に、>525みたく別の手段がないか考えるね。
527 :
デフォルトの名無しさん:02/01/14 17:35
メモリダンプツールってどうやって作りますか?
プロセスIDを取得して・・・そこからまーたく足がかりが消えました。
528 :
デフォルトの名無しさん:02/01/14 17:38
529 :
デフォルトの名無しさん:02/01/14 17:46
BSTR同士を連結するのってどうやりますか?
CString同士なら+演算子でできるんで、今はキャストして連結してます(←ダサイ)。
>>529 _bstr_t を使えば operator+() 定義されてるぞ。
531 :
デフォルトの名無しさん:02/01/14 17:50
>>529 CStringを知っていて、
それをしらないやつは、DQNだ。氏ね
ReadProcessMemoryなるものをみつけました。
なんとかなりそうです。ありがとうございました。
画面の色深度を取得するにはどうしたらいいんだ?
HDC hDC=GetDC(NULL);
double p=(double)(GetDeviceCaps(hDC,PLANES)*2);
double b=(double)(GetDeviceCaps(hDC,BITSPIXEL));
double dep=1;
for(int i=0;i<b;i++){
dep*=p;
}
ではだめなの?
double p=(double)(GetDeviceCaps(hDC,PLANES)*2);
が0になっちゃうんですが。
534 :
デフォルトの名無しさん:02/01/15 06:39
今フリーのコンパイラ使っててDOSのプログラムしか作れないんだけど
ウィンドウズの奴を作るためにはVCとか買うしかないの?
Borland-Cで作れる。
>>534 gcc(Mingw
BorlandC++
Delphi
後はフリーのコンパイラの過去スレがくさるほどあるんでそれをみて
>533
hdc=CreateIC("DISPLAY",NULL,NULL,NULL);
bit=GetDeviceCaps(hdc,BITSPIXEL);
DeleteDC(hdc);
538 :
デフォルトの名無しさん:02/01/15 11:02
質問するスレがあるのに気づきませんでした。
余計なスレッド立ててしまってすみません。
改めてこちらで質問させてもらいます。
Cを使って画像処理しています。
たとえば処理1→処理2を一括して行った後に出てきた結果と
処理1の結果に改めて処理2を行った後の結果で
違ってきてしまいます。
処理1、2はそれぞれ全く同じ関数です。
どなたか分かる方いましたらお願いします。
( ´ ・∀・`) へー
ローカル変数が怪しい?
541 :
デフォルトの名無しさん:02/01/19 05:16
当方ずっとアセンブラやってましたが、
ある日突然VCをやれと言われて困ってます。
そこで質問があるのですが、
現在アクティブなウィンドウなウィンドウのハンドルを得るには
どうしたらよいのでしょうか。
また、あるダイアログの座標を知りたいのですが、
どうやればよいのでしょうか。
よろしくお願いします。
542 :
デフォルトの名無しさん:02/01/19 06:05
デバッガの使い方ってどうやって勉強すれば良いんでしょうか?
>>543どうもです。
デバッグ専門の本が出てるんですね・・・
早速、本屋にでも行ってみます
545 :
デフォルトの名無しさん:02/01/19 23:31
>>542ついでにアセンブラも勉強すればなおよし。
546 :
デフォルトの名無しさん:02/01/20 04:36
>>538それの文章だけじゃなんともいえないが、
画像処理なら、実はどこかのメモリを潰していたとか
考えられないか?
547 :
デフォルトの名無しさん:02/01/20 05:53
MFCってこれから始めるのは止めた方が良いのかな?
548 :
デフォルトの名無しさん:02/01/20 07:37
>>538二つの結果がどういう風に違うのか、教えてください。
549 :
デフォルトの名無しさん :02/01/20 22:03
スタティックテキストをフォーム(CFormView)に貼り付けて、
実行時にスタティックテキストの内容を変更したいのですが、
どうすればよろしいでしょうか?
>>549MSDNに書いてない?
でもスティックいうんだからなぁ
無理なんじゃない
うーん・・・・
MFCでスタティックテキスト放りこんでも
メンバ変数として出ないな
getdlgitemでとるのかな
俺もよく分からん
でもスティックいうん(以下略)
SetWindowTextでいけるよ。
jpg画像を読み込んでビットマップのハンドルにくっつけたい(?)んですけど
pngはlibpng使って自分で
HBitmap CPng::x_Load(LPCTSTR filepath){ ... }
みたいなの作ってうまくいってますが
jpgはネットでライブラリ検索(libjpeg)しても見つからず途方にくれてます
(そういうサイトもなかなか見つかりません)
現在はOleloadpicture()とかいう関数使ってなんとか画像表示できますが
やはりビットマップのハンドルにくっつけられないと
画像直接操作できないもので・・・
助言お願いします
意味不明。
libjpegが見つからないって事か?
使い方がわからね、って事か?
hBitmapに読み込むソースクレクレ、って事か?
>>549スタティックテキストにユニークなIDをつけてやればClassWizardに表示
されるので、メンバ変数を割り当てることができます。
例えば、ClassWizardでそのスタティックコントロールにCStatic型で
m_static_1などのメンバ変数を割り当てて、
m_static_1.SetWindowText(_T("ほげほげ"));
とすればできると思います。
>>550-555 スタティックテキストについて教えてくれて、ありがとうございました。
>555さんの説明でうまくできました。大感謝です!
557 :
デフォルトの名無しさん:02/01/21 23:23
リリース.exeの作り方が分かりません。デバッグフォルダに
入っている.exeがそうなんですか?
ビルド->アクティブな構成の設定。
>558
ありがとうございます。
あるディレクトリ内にある、特定の文字列を含んだファイルを
全て自動的にロードする、というプログラムはどう組んだらよろしいのでしょうか?
例えば、
ABC000.dat、ABC001.dat,abc002.dat…
などのファイルが存在し、ディレクトリ内の
abc●●●.datを全てロードすると言う感じで。
よろしくお願いします。
561 :
デフォルトの名無しさん:02/01/26 03:01
すみません質問があります。
任意のピクセルのRGB値を取得したくて
GetPixel関数を使ってみたのですが、
戻り値がCOLORREF型 RGB(r、g、b)となりますが
このr,g,bそれぞれの値を取り出す方法が見つかりません。
お願いします。
COLOREF rgb=GetPixel(,,,);
BYTE r = rgb >> 16;
BYTE g = rgb >> 8;
BYTE b = rgb ;
でよかったかな。逆かな?
GetRValue
GetGValue
GetBValue
564 :
デフォルトの名無しさん:02/01/26 03:21
>562
できました!!
ありがとうございます。
565 :
デフォルトの名無しさん:02/01/26 03:23
…と思ったら…まだまだできてないみたいです。
>562
逆。それに rgbにマスクかけないと NGでしょう。
BYTE r = (rgb & 0x000000FF);
BYTE g = (rgb & 0x0000FF00) >> 8;
BYTE b = (rgb & 0x00FF0000)
>>16;
マクロ使った方が早い。
BYTE r = GetRValue(rgb);
BYTE g = GetGRValue(rgb);
BYTE b = GetBValue(rgb);
>rgbにマスクかけないと NGでしょう。
何で?
あ、BYTEだからマスク要らないか。スマソ
今VC6 MFC SDIでプログラムを作ってます。
ウィンドウを2つに分けて左にドライブの一覧を表示してるのですが、
このドライブ一覧でフォルダなどを選択したときに、
そのパスを右(ダイアログをフォームにはりつけてる)の、
スタティックテキストの部分に表示するにはどうしたら良いのでしょう?
左はCTreeCtrlの派生クラスで右はCFormViewの派生クラスです。
入門者なので分らない事だらけですが、どうかお願いします。
ちなみにドライブの一覧は表示できてます。
571 :
デフォルトの名無しさん:02/01/26 13:49
>>569 StaticのIDをユニークにして書き換える。
>>571 スマソ、説明不足。
その書換える処理をどのクラスで、
どういう方法で書換えるのかが分らないんです。
573 :
デフォルトの名無しさん:02/01/26 19:05
すみません質問があります。
現在ウインドウ内に表示されているビットマップの
デバイスコンハンドルを取得するのはGetDC関数を使った方が
いいのでしょうか。BeginPaint関数では失敗してしまいます。
よろしくお願いします。
>>573 ビットマップのデバイスコンテキスト・・・?
575 :
デフォルトの名無しさん:02/01/26 19:27
すみません
×デバイスコンハンドル
○デバイスコンテキストハンドル
CreateCompatibleDCして、そのBitmapをSelectObject.
厨房的な発言だと思われますが、助言をしてくださいませ
絵画処理はWM_PAINTでしなければいけませんよね?
BeginPaint(hWnd, &ps);
TextOut(hDC, 0, 0, "こんにちは", 6);
EndPaint(hWnd, &ps);
のようにして
しかし、マウスが押されたときに文字を表示するようにするにはどうすればいいんでしょうか?
>絵画処理はWM_PAINTでしなければいけませんよね?
そんなことはない。
押されたときにGetDCして描画とか。
どーしてもWM_PAINTでしたいなら、フラグたてて、InvalidateRectとか。
578さんレスありがとうございます。
BeginPaintの代わりにほかのメッセージの時は
GetDCを使うんですね。
ちょいと風変わりな質問です。
このまえ知人からVisual C++ 6.0Pro(CD2枚のみで説明書なし)を譲り受けた
んです。
でインストールしたんですが、Helpが見れません。で、ちょっと調べた
ところ、VC++6.0Proにはもう2枚CDがついてるそうで・・・。
これってHelpが見れないことに関係ありますか?インストーラーからは
MSDNとやらをインストールするようにいわれるのですが、MSDNとは?
ちなみにVC++6.0ProのCDは1枚は使わなかったんですがこれはなんに使う
のですかね・・・。インストールは1枚ですんでしまって。
581 :
デフォルトの名無しさん:02/01/27 15:03
>>571 IDをユニークにするってどういう意味ですか?
検索で調べても答えが出てこないです…。
>>582 スタティックテキストのIDが、IDC_STATICになっている
だろうから、これを何か別のIDにかえてくださいませ
>>583 どうもです。激しく理解しました。
というか、その後にどうやってそのIDの
スタティックテキスト部分をを書換えるのかが( ゚д゚)シリタィ
SetDlgItemText
>>581 レスありがとうございます。
そちらのURLではOnlineでMSDNを使うということですか?
できれば自分のPCにインストールしたいのです。
コンパイルして下の方にエラーリストが出ると思うのですが、
そこにカーソル合わせてF1を押すと、エラーに関連したHelp
が見れるようにしたいのです。
その場合は購入するということになりますよね。
MSDNっていくらぐらいするのでしょうか。また種類がいくつか
あるみたいですが、VC++6.0Proで使う上ではどれが良いのでしょうか。
>>586 そのF1うんぬんのためにはMSDNをインストールする必要があって、
その「インストール可能なMSDN」は、CDの3枚目と4枚目にある。
ライセンス上、MSのソフトの譲渡は完全な形でないといけないはずだから、
その譲渡方法(3、4枚目がない)がまずい、というのがそもそも問題だと思うけど。
ちなみに、「単体発売されてるMSDN」ってのは、
上で言う「インストール可能なMSDN」とは意味が違って、
開発関連の情報&ツール類をごっそりひっくるめた開発セットなので、
ものによってはVCどころかOSごと含まれてたりする。
業務とかで開発するんでもなければ買える代物ではない。値段も相応だし。
>>587 レスどもです。
そうですか・・・3枚目と4枚目はないということらしいので、
こりゃまずいんですね・・・。
とりあえずあきらめることにします。
589 :
デフォルトの名無しさん:02/01/27 23:58
現在VC++でDIBを使い画像を表示しているのですが、
その画面上にシールみたいな奴
(周囲を四角で囲って中に情報を書き込む)を作りたいのですが、
どのようにしたらよろしいでしょうか?
四角を作るだけなら簡単ですが、中に文字をかくとなると…?
590 :
デフォルトの名無しさん:02/01/28 00:51
>>588 MSDN Library だけ買うという手もあるYO!
漏れもそろそろ買い換えたい(2年前のMSDNなんて使い物にならない・・)
PlatformSDKを落としてきてインストールすれば
APIに関しては最新のが手にはいるのでは?
592 :
デフォルトの名無しさん:02/01/28 00:55
593 :
デフォルトの名無しさん:02/01/28 07:57
初心者的質問ですがお願いします。
ビットマップハンドルを取得して
GetPixelで情報を取得しようと考えているのですが
リソースにあるビットマップはSelectObjectで
表示できますが、
OPENFILENAME構造体をGetFileName関数でオープンして
リソースにないビットマップをウインドウ内に表示した
場合のビットマップのハンドルを取得する方法が
どうしても見つかりません。
直接ビット配列を読み込んだ方がいいのでしょうか?
よろしくお願いします。
594 :
デフォルトの名無しさん:02/01/28 11:11
ダイアログに設置したコンボボックスだけど
手を加えないでプルダルンすると1列しか表示されないんだけど
複数列表示させるにはどうすればいいの?
リソースエディタ上で、コンボボクースの|▼|を押すと、
設定できる矩形領域が変わる。
>>595 マジでありがとう
一回わかると簡単だね
597 :
デフォルトの名無しさん:02/01/28 18:05
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDM_DIALOG:
DialogBoxParam(hInstance, "IDD_DIALOG", hWnd, MyDlgProc, lParam);
break;
default:
break;
}
****************************************************
BOOL CALLBACK MyDlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg) {
case WM_INITDIALOG:
return FALSE;
case WM_COMMAND:
switch (LOWORD(wp)) {
case IDOK:
EndDialog(hDlgWnd, IDOK);
break;
case IDCANCEL:
EndDialog(hDlgWnd, IDCANCEL);
break;
default:
return FALSE;
}
default:
return FALSE;
}
return TRUE;
}
エラーなしでビルド実行できるけどダイアログが表示できません。
なしてでしょう。たすけてー
598 :
デフォルトの名無しさん:02/01/28 18:12
>593
ビットマップ構造体に変数を入れたりしなくちゃいけないんだよねぇ、
あとでも、IPictre->Load();とかなかったかな、
ぜんぜん楽だよなぁ、ロードしてIPicture->renderとか
やればいいから。どうしてもハンドルにしたかったら
一回renderで表示してからhdcから
CopyImageとかでコピーしてもいいしなぁ
どっちもSDKに入ってるYO。
>597
リソースファイル見ないと何とも言えんが、
"IDD_DIALOG" ではなく MAKEINTRESOURCE(IDD_DIALOG)
っぽい匂いがする。
>>593 猫でもわかるプログラミングの170章あたりではどうでしょうか。
後は、LoadImageを使うとか。
>>599 できました!
でもMAKEINTRESOURCEってなんですか?
resource.hにIDD_DIALOGをつくるもの?
ヘルプ見ても英語で・・・おねがいします。
>ヘルプ見ても英語で・・・おねがいします。
氏ね。
あぁ!最高。"IDD_DIALOG"には、
IDD_DIALOGじゃなくて、
(ダイアログリソースアイデンティファイアなんてあったの?)
そもそもダイアログに識別「番号」はなかったと思うんだけど、
ダイアログ「名」(テンプレート名?)を入れるんだよ。
ダイアログ名が「MYDIALOG」とかだったら、
つーか、ダイアログのスクリプトが、
MYDIALOG DIALOG DISCARDABLE
FONT ...とかなってるはずだけど、
そのMYDIALOG(つーか、"MYDIALOG")にすればいいんじゃないの?
つーか、いい。
あぁ、でもVC++ってそうなんだ?そっか。
MAKEINTRESOURCEは、英語、make int resource です。
IDD_DIALOGは数字で、それをリソース名に変える、っていう
命令(マクロ)。つーか、どのみちリソース名も数字って、あり?
ごめんねぇーーーーー(笑)
>>590 でも高いんでしょ?
VC++6.0Proについているのは
MSDNライブラリVisual Studio 6.0
というものらしいですね。
2年前のは使い物にならないということですが、コンパイラも2年前の
ままでなんでは?
>>604 コンパイラは2年前のものでも、それで作るソフトは
Win2KとかMeとかXPで動かすわけで。
606 :
デフォルトの名無しさん:02/01/28 20:57
ツリービューのイメージ(アイコン)を、
リソースからではなくBMPファイルから設定する方法が分かりません。
どなた様かお教え頂けませんか??
>>606 CreateIconとかCreateIconIndirectあたり使えない?
608 :
デフォルトの名無しさん:02/01/28 22:17
ホルダーにパスワード付けて他の人に見られないようにしたいんだけどどうやって設定するの?
OSはWinMEです。
609 :
デフォルトの名無しさん:02/01/28 22:19
訂正
ホルダー→フォルダ
初心者でスマン
VC++6.0Proで使えるインストール可能な最新のMSDNライブラリとなると
どれになりますか?なんか種類がいっぱいあるみたいなんですが。
>608
WinMEにフォルダをパスワードで保護する
汎用的・効果的な方法はありません。
>610
最新のMSDNを買えば、VC.NETも手に入るのでは?
>612
MSサイトのは、たとえば「getprocaddr」の説明を
知ろうととか思ったときに(゚д゚)マズー
>>613 そうじゃなくて
> VC++6.0Proで使えるインストール可能な最新のMSDNライブラリとなると
> どれになりますか?
これに関してMSサイトで調べればいいんじゃないの、ってこと。
>612
ああ、そういう意味ね。スマソ。
>610
CDは、年4回の発行?
MSDNサブスクリプション(1年無料のヤツ)では、MSDN Library 2001/oct が
最後。今月、最新版が届くはずだったが、「2001/octからの差分が無い」との
ことで、次のリリースは2月らしい。
今はVC+MSDN-Onlineで我慢して、VC.NETが出たらそれを買って
MSDNライブラリ無料登録、でどうよ。
ライブラリサブスクリプションは店頭販売されないみたいだし、
オペレーティングシステムサブスクリプションは高いだろ。
www.msj.co.jp/msdn/newsubfaq.htm
618 :
デフォルトの名無しさん:02/01/29 18:11
593です。遅レスですがようやくできました。
598さん、600さんありがとうございましたm(_ _)m
619 :
デフォルトの名無しさん:02/01/31 17:25
誰かccomboboxに入力された文字の取得方法教えてけれ〜。
>619
GetWindowText を使ってはいけない宗教的理由でもあるのか?
621 :
デフォルトの名無しさん:02/01/31 17:39
サンクス。GetWindowTextを調べてみまっす。
622 :
デフォルトの名無しさん:02/01/31 21:45
623 :
デフォルトの名無しさん:02/01/31 22:46
初心者的質問ですが
2の6乗などの計算を求めるのにpow関数を使えばいいのですが
ここで指数が−2.3などの実数である場合はどうしたらよいでしょうか。
よろしくお願いします。
>623
double pow( double x, double y ) だよ?
初心者以前の者ですが
VCをおぼえたいのですが
C言語の前知識なしでVCからはじめられるんでしょうか?
626 :
デフォルトの名無しさん:02/02/01 20:15
>>625 そりゃきついな。
C言語というかC++言語の知識はいるだろ。
C++やるにはC言語の知識があった方が良いという
人もいる(この辺は議論が分かれるところ)。
というか市販されてるC++解説書のほとんどが
C言語の知識を前提とした書き方してるからね。
>>626 レスどもです。
C言語前提ですか・・・
とりあえずCの適当な解説書でも買ってきます。
628 :
login:Penguin:02/02/01 22:48
イベントで
Becky2を起動して
特定のアドレスに
メールを送信する
というプログラムを書きたいのですが、
アドバイスお願いします。
629 :
デフォルトの名無しさん:02/02/04 00:03
現在、リストボックスの様に、
画面上に複数の文字列が並んでいるところで
ある文字列を並べ替えたい位置までドラッグすることによって
文字列の順番を変えるというプログラムを至急組みたいのですが、
(例えば、IEの「お気に入り」を並べ替えるような感じで)
どのようにすればいいか、見当がつきません。
かなり大まかな質問ですが、よろしくお願いします。
至急組みたいならリストコントロール使うべきだよなぁ…
634 :
デフォルトの名無しさん:02/02/04 02:12
至急といいつつ、明日試しますという罠
>>629 MFCならCDragListBoxっていう中途半端なやつがあるけどな。
636 :
デフォルトの名無しさん:02/02/04 13:25
2つの変数から1つの変数を返したいのですが、
x=1、y=2だったらz=4を返すみたいな感じです。
zが100種類あるのでif文を使うこともできません。
どうかご指摘お願いします。
>>636 > z=4を返すみたいな感じです。
「みたいな感じ」じゃサパーリ判らんよ、と指摘。
>>636 すいません。言ってる事の意味がわかりません。
わかりにくくてすみません。
if((x==1.500)&&(y==20))
z=2.07;
if((x==1.505)&&(y==60))
z=3.46;
if文で書くとこんな感じです。
zの値がたくさんあるため、if文が多くなってしまいます。
もしかして
1. x と y の組み合わせで z が決まる
2. この組み合わせが 100 通りほどあるので、if を並べるのは現実的でない
ってこと?
>640
はい。そうなります。
カブッタ…
けど VC++ の話じゃなく、C だなぁ。
#define numberof(v) ((sizeof(v) / sizeof(*(v)))
struct {
double x, y, z;
} table[] = {
{1.5, 20, 2.07},
{1.505, 60, 3.46},
:
:
};
for (int i=0; i<numberof(table); i++)
if (x == table[i].x && y == table[i].y)
return table[i].z;
あ、タンマ!
double 直接 == で見ちゃ駄目だ。
>637
ありがとうございます。やってみます。
>643
了解です。
…できました。しかしながらYの値は5種類しかなくて…
すみません少し混乱してきてしまいました。
646 :
デフォルトの名無しさん:02/02/04 17:45
ファイルの削除ってどうやるんでしょうか・・・・?
作ったり読んだりはifstream,ofstreamでできるんですが・・・・
>>646 「ファイル削除 関数」とか「ファイル削除 API」で検索して見れ。
deletefile
649 :
デフォルトの名無しさん:02/02/04 20:38
外部参照が未解決ってどーいうことですか?
何やっても解決しない…
VCでウインドウプロシージャとWinMainとダイアログプロシージャを
別ソースにしてるんですが、ウインドウプロシージャのコンパイルのときに
上記のエラーがでます。DIALOG.Hにダイアログプロシージャを
externしてるんですが…
>外部参照が未解決ってどーいうことですか?
一体、どんな外部参照が未解決なのか。
よりにもよって一番重要な部分が抜けているという罠
651 :
デフォルトの名無しさん:02/02/04 20:55
えーと、主なファイルは
dialog.cpp winmain.cpp winproc.cppと、それぞれのヘッダです。
モードレスダイアログを作ろうとして、そのプロシージャ本体は dialog.cpp
にあって、それをwinproc.cpp(ウインドウプロシージャのあるファイル)
でクリエイトしてるんです。で、そのファイルでエラーがでるんです。
ダイアログのプロシージャは dialog.h にexternしてあり、そのヘッダを
winproc.cpp でインクルードしてます。
一体、どんな外部参照が未解決なのか。
よりにもよって一番重要な部分がいまだに抜けているという罠
653 :
デフォルトの名無しさん:02/02/04 21:24
WinProc.obj : error LNK2001: 外部シンボル ""int __stdcall DialogProc(struct HWND__ *,unsigned int,unsigned int,long)"
(?DialogProc@@YGHPAUHWND__@@IIJ@Z)" は未解決です
Debug/test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
なんてのが出てます。
知識がないので、なにを伝えればいいのかわからなという罠。
これで駄目なら、おれは駄目人間として勉強し直します。
CALLBACKが抜けてる、多分。
CALLBACKありました・・・
プロがソースみたら、なーんだあれがないじゃん、それじゃーだめだよ、
となるのだろうか・・・
鬱だ。勉強しなおしてきます。
656 :
デフォルトの名無しさん:02/02/06 08:04
拡張子がcのとき、コンパイルに通ったのですが
拡張子をcppにしたら、
HDC hdc,idc,jdc;
hdc=LoadImage(hInst,szFileName,IMAGE_BITMAP,0, 0, LR_LOADFROMFILE);
jdc=SelectObject(idc,hdc);
のところでエラーが出てしまいます。
初心者的質問ですがよろしくお願いします。
LoadImageの戻り値やSelectObjectの戻り値と引数はHDCじゃ無いよん。
それにしてもidcっていったい・・・
658 :
デフォルトの名無しさん:02/02/06 08:29
>657
HGDIOBJを使ったらできました。ありがとうございました。
しかし疑問が残ります。
Cだと実行までできたものがC++になると…
なぜなのでしょう…
CPPのほうが型チェックが厳しいんだよ。
っていうか通っちゃうCのほうがおかしい気がするけど。
660 :
デフォルトの名無しさん:02/02/06 08:34
>659
ありがとうございます。
Cで通って油断してたのが間違いですね…。
勉強してきます。
661 :
デフォルトの名無しさん:02/02/06 08:36
>>659 Cでも
#define STRICT
とかするとひっかかるかもよ。
>>653 きっとプロジェクトにファイルが入っていない。
鬱陀、、、
ファイルを読みこんでリストボックスに表示させて変更したいものを選択して
エディットボックスで編集するプログラムをつくったんだけど10日もかかってしまった。
VCさわったことなかったんだけどこんなちょっとのプログラムで10日とは。
氏嚢、、、
664 :
デフォルトの名無しさん:02/02/07 00:15
こんばんわ、まったくVC++初心者のものです。
CStringからcharに直すのはどうすればよいのでしょうか?
CStringとcharには何の関連性も無いから変換できないっしょ。
char*ならできるけど。
CString str;
char c;
c = (char)str;
CString a(_T("あいうえお"));
TCHAR fromCString[100];
::lstrcpy(□, (□)□);
問1.□にあてはまる単語は何か?
問2.上の変換を行う際、注意しなければならないことを挙げよ。
>>667 ( ´D`)<キャストはいらないと思うのれす。
669 :
デフォルトの名無しさん:02/02/07 01:00
>>666さん
ありがとうございます。
しかし、
'type cast' : 'class CString' から 'char' に変換することはできません。
この変換を実行可能なユーザー定義変換演算子がないか、
または演算子を呼び出せません。
と出てしまうのですがやはり無理なのでしょうか?
やはり俺が正しかったか(ニヤソ
>>669 あんた何したいの?
char ch = CString("ははは");
仮にこれがコンパイルとおったとしてchに何が入ってほしいわけ?
>>669 #define char CString
CString str;
char c;
c = (char)str;
char c = str[0];
……なんてわけないよな。
char s[] = "CString";
strcpy(s, "char");
CString s("これでいい?")
char c = *(char*)&s;
CString s("これはどう?");
char *c;
c = new char[sizeof(CString)];
::memcpy(c, (char*)&s, sizeof(CString));
666=676
また名前間違えた。スマソ。
CString s( "文字列" );
char *c;
int siz;
::SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)s );
siz = ::SendMessage( hWnd, WM_GETTEXTLENGTH, 0, 0 );
c = new char[ siz + 1 ];
::SendMessage( hWnd, WM_GETTEXT, siz + 1, (LPARAM)c );
>>678 それはCStringをchar*にしてるよね。
669はCStringをcharにしたいんだよ。
文字列全部取りたいのか1文字だけ取りたいのかわからんの…。
>>680 多分例の超圧縮アルゴリズムで文字列全体を1バイトに詰め込みたいってことじゃないかな。
CStringからcharに「直す」って言ってるものな。
おそらくIDEのエディタ上で Ctrl+H って押して
(中略)
「単語単位で探す」にチェックを付けとかないと
イタい目を見るYO!
色々調べてみましたがどうしても分からないので質問させていただきます。
>>135さんも書いておられますが、WinXPにVS6がインストールできません
CDが自動実行されて、何の画面も出る前に
「問題が発生したため、vs60wiz.exe を終了します。 ご不便をおかけして申し訳ありません。」
の画面が出ます。
詳細は
「AppName: vs60wiz.exe AppVer: 6.0.0.8167 ModName: vs60wiz.exe
ModVer: 6.0.0.8167 Offset: 000087f1」
ってな内容みたいです。
同じ現象の方、また解決された方がいらっしゃいましたらアドバイスを頂きたいです。
お願い致します。
フォーム使って
DialogBox1 DialogBox2
ListBox..1 ListBox..2
って感じのプログラムを作っているんですが、
ダイアログボックス1にフォーカスがあるときにキーの↓を押したら
リストボックスにフォーカスを移して1番上のリストを選択状態にしたいのですが、、、
仮想キーを取得してそれを使っていろいろやって見たんですがうまくいきません。
なにかいいほうほうはないでしょうか?
WM_SETFOCUS→LB_SETCURSELでどう?
PreTranslateMessageで↓キーを検出してるんだけど
下を押すと何故かリストボックスの1番上がずっと選択状態になってしまう。
作り方が腐ってるからしかたないんだけど、、、
>>686 ためしてみます
ありがとう。
便乗というかなんというか、、、
エディットボックスでエンターを押すと警告音(ビープ音)がなるんですが
ならなくする方法はありますか?
たぶんエディットボックスの設定なんだろうけど。
ちなみにエディットボックスは1行です。
1行じゃないといけないんですが。
たしかWM_CHARかWM_KEYDOWNでVK_RETURNをコロせばよかったような。
>>689 そのVK_RETURNをつかってしょりしてまふ。
どうしたものか。
とりあえずありがとう
VB初心者です。
VBの標準exeでフラッシュファイル(swf)をのせるのって簡単ですか?
692 :
デフォルトの名無しさん:02/02/08 00:48
すいません。
まちがえてVCのところに書いちゃいました。
693 :
デフォルトの名無しさん:02/02/09 18:11
VCって何?
VC++ってなに?
694 :
デフォルトの名無しさん:02/02/11 21:31
VC++を始めて2日目の超初心者です。C言語に触るのも初めてです。
cout<<"1"<<endl<<"2";
printf("3\n");
ってやると、1,3,2の順番で表示されるのはなぜでしょう?
cout<<"1"<<endl<<"2"<<endl;
printf("3\n");
ってやると1,2,3の順番で表示されるんですが、理由がわかりません。
>>694 嘘付け
ちゃんと
1
23
て表示されたぞ
ウワァァン
文字列にかな文字と漢字(2バイト文字)が入っているかどうか
判断したいんですけどよくわかりません。
関数名だけでもおながいします。
ちなみにCString型とchar型両方判断しないといけません。
おねがいします。
混ぜるな危険。
>>696 そんなのないと思われ。
コードをチェックして、1バイト文字の範囲に入ってないなら、という
判断をすべきかと。どんな範囲が1バイト文字の範囲かは…
Unicodeなら0x0〜0x7fだったかな。他は知らん。
IsDBCSLeadByteあたりで検索かけるとそれなりの結果が出てくるかなぁ、と。
filename = myDLG.GetPathName();
CStdioFile fin(filename,CFile::modeRead);
fLength=fin.GetLength();
filenameには500MBのファイルを指定します。
CStdioFile fin(filename,CFile::modeRead);を処理した時点で
メモリは使われて(確保)しまうのでしょうか?
fLength=fin.GetLength();
↑でファイルサイズのチェックをかけてから処理をはじめたいのですが、、、
>>701 自己レス
んなこた〜ないとおもうんですけど。
>filenameには500MBのファイルを指定します。
>CStdioFile fin(filename,CFile::modeRead);を処理した時点で
>メモリは使われて(確保)しまうのでしょうか?
もしそうなら、ファイルが10GBとかだと大変ですね。
>>701 C言語風にもっと簡単にファイルサイズを調べる方法はないでしょうか?
FindFirstFileで帰ってきたハンドルをつかって
ファイルサイズを調べたいのですが関数は何を使ったらいいのでしょうか?
(゚д゚)ハァ?
FindFirstFileの第二引数、
lpFindFileDataのnFileSizeHighとnFileSizeLowが
ファイルサイズなのではないのかい?
static BOOL PASCAL GetStatus(
LPCTSTR lpszFileName,
CFileStatus& rStatus
);
は使わないのか?
FindFirstFile(filename,&data);
data.nFileSizeLow;
とりあえず動きました。
ありがとうございました。
嘘じゃないです。環境はVC++6.0、Win98です。
Win32 Console Applicationとかいうので作りました。
でも1,2,3の順番で表示されるのが正しいってわかっただけでも
ホッとしました。ありがとうです。>695
711 :
デフォルトの名無しさん:02/02/12 06:05
>>711 犯罪教唆はばれたら懲役ものですよ?いいんですか?
>でも1,2,3の順番で表示されるのが正しいってわかっただけでも
正しくない。
>713
り?そうなの?とにかく「そうなる理由」が知りたいんだけど。
>>714 cout と printf を混ぜるな。
どっちも呼ばれた瞬間に出力するとは限らない(バッファに
溜めてたりする)ので、結果がどうなるかは神のみぞ知る。
>>694 coutとprintfを混ぜてもいいんだけど、
上記のコードどおりに出力したけりゃバッファに溜めるごとにフラッシュすべき。
ちなみにendlはフラッシュするね。
>>715 ライブラリを実装したやつも知っている(w
718 :
デフォルトの名無しさん:02/02/12 11:53
初心者的質問ですが
GetPixelでRGBの値を取得してそれぞれ値を変えてSetPixelしたのですが、
画像が変わりません。これはどうしてなのでしょうか?
お願い致します。
なるほど、バッファに入れてたのか、、。
ありがとうございました、感謝です。>715,716
720 :
デフォルトの名無しさん:02/02/12 20:13
VC初めて一週間で逝き詰まり…で質問です.
CreateWindow("BUTTON", 〜
CreateWindow("EDIT", 〜
でエディットボックスやらコマンドボタンやら作ったんですけど,
TABでフォーカスが移動しないんです.
第三引数は
WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|WS_TABSTOP
とかにしてるんですけど.
TABを押したのをプログラム側で制御しなきゃなの?
あと,一行エディットボックスで改行キーが押されたのを
検知するのはどうすればいいのでしょうか?
>720
そのコントロールはどこに作った?
ダイアログ以外だったら、自分でダイアログマネージャを呼んで
TABキー等の処理をしてもらわなくちゃいけない。
具体的にはメッセージループの中で IsDialogMessage を呼ぶ。
while(GetMessage(...)) {
if (!IsDialogMessage(...)) {
TranslateMessage(...);
DispatchMessage(...);
}
}
こんな感じで。
>>721 おおー,できたできた!サンキューです!!
ダイアログかそうでないかで結構処理が違うんすね.
#この数時間は一体…て良くある事やけど
ついでと言っちゃなんなんですけど,もう2ついいすか?
その1.
CreateWindow("BUTTON"〜
の第三引数に,
BS_DEFPUSHBUTTON
を付けてるのに,フォーカスを持ってないときは
リターンを押しても反応しません.
これもダイアログに作ったときだけ効くフラグなんですか?
その2.
エディットボックスにフォーカスが移ったときに
全部選択した状態にしたいんで,
EN_SETFOCUSを貰ったときにEM_SETSELで処理してんですけど,
マウスでクリックするとEM_SETSELは働いてるけど
結局その後クリックしたとこだけ選択されてしまいます.
VBだとこんな感じでうまく行ったんだけどな.
皆さんどうやって解決してるのでしょうか?
720です.
すんませんが気になってたので…もう1ついいですか?
WM_SETFONTでフォントを設定するとき,
SendMessageの第三引数にCreateFontを直接
SendMessage(hWnd, WM_SETFONT, (WPARAM)CreateFont(〜), MAKELPARAM(TRUE, 0));
みたく指定するのはマズいですか?
誰もそうしてないみたいなんですけど….
724 :
デフォルトの名無しさん:02/02/12 21:07
getkeystate()関数がいまいちわからないんですが。
なにか例などをだしていただけないでしょうか?
おねがいします
725 :
デフォルトの名無しさん:02/02/12 21:08
gcc+STLで、complex使うにはなにかリンクしなければならないのでしょうか?
リンクエラーが結構でてしまいます。
適当に-Iオプションいじったら解決しました。スマソ。
ってスレ違いじゃん!ますますスマソ。
>724
使い方がわからんかったら使わないのがいいと思います。
>722
その1
効かない原因は色々考えられる。DEFPUSHBUTTONな人が複数いる、
プッシュボタンにフォーカスがある、誰かがENTERを食っている等々。
これ以上は処理の詳細を見ないと何とも言えない。
その2
個人的には、慎重に位置決めしてクリックしたのに全選択されてしまうと、
もう一度編集したい所をクリックし直さないといけないので不便だと
思うのだが……。
どうしてもVBと同じにしたいんだったら、EM_SETSELをPostMessageで
お届けすればいけると思われ。
>723
CreateFontした人は最後に責任を持ってDeleteObjectしないといけないから。
>>729 >効かない原因は色々考えられる
うーむ,取り敢えず全部違うっぽいのだけれども….
駄目と言う訳ではないんですね.もちょっといじってみますわ.
>EM_SETSELをPostMessageでお届けすればいけると思われ。
ほっほー!成る程ねぇー!!
サンキューです.SendMessageとPostMessageは
こうやって使い分けるんですね.
>723
CreateFontした人は最後に責任を持ってDeleteObjectしないといけないから。
ふむ…ダイレクトに使ったからって勝手にDeleteObject
される訳ではないんですね.
今日はいくつか賢くなりました.ありがとうございましたです.
>>694 coutとprintfを混在させたい場合は
ios::sync_with_stdio
を呼びませう。
詳しくはヘルプ等で
2バイト文字、というか半角英数文字かそうでないか判断したいんですが、
だれか例を出してください。
CString型、char型両方とも判断しないといけません。
急なんでお願いします。
734 :
デフォルトの名無しさん:02/02/13 00:47
SJISなら0x20〜0x7E→半角英数でいいんでないの?
>733
>700
736 :
デフォルトの名無しさん:02/02/13 00:54
>>743 "十"の2byte目は 0x5C だし。
板違いではあるけれども.
>>736 うーむ,S-JISは2バイト目が悩ましいんだよね.
>>733 0x81〜0x9F/0xE0〜0xEF
をハケーソしたらそれはS-JISの1バイト目,
んでその次のバイトは無視,で急は凌げるのでは?
VCでゲームを作るのに、マウスカーソルの値を取得し、
そこにビットマップを書き込み、Sleepで時間処理をして
少し場所を変えて再線画する
というプログラムを組みたいんですが、マウスカーソルの値を使って
BITMAPを線画する方法とSleepを使った再線画の両方のやりかたが
よくわかりません。BITMAPをただ表示するだけならできるんですが、
時間によってBITMAPを消してまた違うところに書き直すのが
全くわかりません。初心者ですいませんがよろしくお願いします。
>739
とりあえずは、InvalidateRect使ってWM_PAINT内で再描画、で良いのでは?
またわからないんで質問です。
C***View::OnDraw(CDC* pDC)の内でマウスポイントの値を使って
BITMAPを書きたいんですが、値の取得がわかりません。
だれかお願いします
>>740さん
初心者まるだしでスイマセン。
どうもありがとうございました。調べてその方法でやってみます。
>>741 どのタイミングのマウスポイントが知りたいのかわからないけど、
OnLButtonDown(左クリックした座標)などをオーバーライドする。
そんなかで座標を保存。
Viewが一つならView内で普通にオーバーライドすればよい。
今度はGetCursorPosで'GetCursorPos' : 1 番目の引数を
'struct tagPOINTS *' から 'struct tagPOINT *' に変換できません。
というエラーが発生してしまいました。
理由がわかる方がいましたら教えてください。
お願いします。
'struct tagPOINTS *'
'struct tagPOINT *'
タイプミスじゃないの?
745 :
デフォルトの名無しさん:02/02/14 18:30
ファイルからビットマップを読みこんで画像を
ウインドウ内に表示させました。
その後Getpixelで@ピクセルの情報を取得するところまでは
上手くいったのですが、Setpixelをしてもウインドウ内の画像が
変わりません。Setpixel関数そのものは失敗していません。
この場合どのようにしたらウインドウ内のピクセルの値を
変える事ができるでしょうか?
>745
ちゃんとWM_PAINTの中でやってるか?
SetPixelしても画面に反映されないようにする書き方は8万4千通りほどある。
今どうやってるのかもっと具体的に示してくれないと、どれに該当するか特定できないぞ。
それから、もしビットマップの表示を描き換えるのが目的だったら、
CreateDIBSectionとか使った方がいいよ。
747 :
デフォルトの名無しさん:02/02/15 16:13
VC++で関数のプロトタイプ宣言をしなくてもコンパイルできるようにする設定ありませんか?
UNIXからもってきたソースをコンパイルしようと思ったら宣言がないって怒られます。
宣言すればいいのですが大量にあるのでできれば設定で回避できたらよいのですが。
>747
main関数をソースの一番下に持ってくとかじゃダメなの?
>747
cl /Zg
>>748 ありがとうございます。
原形をくずさないようにしたいと思います。
>>749 ありがとうございます。できました。
あと、警告レベルを2にすると出なくなったんですが
これではまずいでしょうか?
751 :
VCの初心者:02/02/17 19:23
質問させてください.
VCでプログラムでEdit Boxを作って走らせると,
右クリックした場合コンテキストメニューが出ますよね?
これはデフォルトのコンテキストメニューってことなんだと思いますが,
このなかのメニューアイテムにアクセスするほうほうってあるんでしょうか?
一部のアイテムをDisableにしたりしたいんですけど...
それとも,最初っから作らなきゃだめ?
752 :
デフォルトの名無しさん:02/02/17 19:24
753 :
デフォルトの名無しさん:02/02/17 20:55
とてつもなく初歩的な質問ですがお願いします。
sinθやcosθの値から、その角度を求める標準関数ってあるのでしょうか?
どうにも見つからなくて……。
asin とか acos ってなかったっけ<VC
>>754 あ、これだったのですか…。アークサインと言う言葉が高校まででは
聞き慣れない言葉だったので、てっきりこれじゃないのかと思いこんでました。
関数名が分かれば(御陰様で)何とかなりそうです。レスありがとうございました!
756 :
デフォルトの名無しさん:02/02/17 22:28
SetPixelVなどの描画関数でウインドウに描画した画像を保存するには
どうしたらいいでしょうか?
ビットデータを配列に入れてビットマップファイルを作る…
以外にいい方法がありましたらご指摘お願いします。
>756
DIBセクションを作ってメモリDCに選択して、ウィンドウの表示内容を
メモリDCに転送して、しかる後にDIBセクションの中身をファイルに
書き出す……というのが正統な手順だけれど、「ビットデータを配列に
入れて」っていうのに比べて余計な手間が増えただけだな。
ただ、どうせビットマップ作るのなら、SetPixelVなんか使わないで
最初からビットマップで描画するようにした方が100倍速いぞ。
758 :
デフォルトの名無しさん:02/02/21 18:53
MessageBoxの表示位置を画面の中央ではなく
プログラムから指定したいのですが、可能でしょうか?
どなた様か御教授よろしくお願いします。
コモンダイアログっていうんですかね?
ファイルダイアログ(開くとか保存とか)でフォルダしか指定できないようにするにはどうしたらいいのでしょうか?
760 :
デフォルトの名無しさん:02/02/25 00:15
VC6.0使ってるんですけど、ヘルプのMSDNのコレクションが無いんです。
再インストールすることも出来ないし(ROMないので・・・
どうしたらいいか、ご存じの方いませんか?
オンラインヘルプとかってどこかにないのですかね?
ふつう、そういう用途には、SHBrowseForFolder を
使うとおもうのデスよ
762 :
デフォルトの名無しさん:02/02/25 01:02
>761
SHBrowseForFolderは フォルダへのショートカットをフォルダとして
認識してくれないのが難点。だから、ファイルダイアログを使いたい。
というわけで、ファイルダイアログでフォルダを選択する方法、俺も知りたい。
//今は 「指定したいフォルダに移動してください」とかいってお茶を濁しているが(´Д`;
っていうか、今思いついたんだけど、
フォルダダイアログをカズタマイズして、IDC_COMBO_FOLDER を捕まえて、
うまく処理すれば、ファイルダイアログでフォルダ選択できるかも。
(´Д`;
×「IDC_COMBO_FOLDER を捕まえて」
○「CDN_FOLDERCHANGE を捕まえて」
>>760 >オンラインヘルプとかってどこかにないのですかね?
>>762 >漏れの知りうる限り全く無い
ワロタ。製品版ちゃんと買おうね、ってことだわ。
リストボックスの項目をアルファベット順にソートしてやりたいんですが
ソートの命令をどうやって出したらイイでしょうか。
ボタンを押したらソートするというのをつくりたいのですが。
kage
> 出して入れる
(;´Д`) ハアハア
>>763 マジメにやると、カナーリ大変。
CFileDialog のサブクラス作ってハクらないといけない。
割と需要はあるはずなんだけどねぇ…
>>767 CListBox?
試してないけど、ボタン押したタイミングで
リストのスタイル LBS_SORT をセットしてからリセットするとか。
CListBox *lst;
// CWnd でも可。
lst->ModifyStyle(0, LBS_SORT);
lst->ModifyStyle(LBS_SORT, 0);
774 :
デフォルトの名無しさん:02/02/25 11:57
>>763 OnFileNameOKとGetFolderPath()を使うと何とかなるですよ。
あとHideControl。
775 :
サンコンさん:02/02/25 18:46
いま卒業研究をやっていまして、質問があります。
ダイアログベースで、親ダイアログのエディットボックスにファイルパスを
入れて、子ダイアログのエディットボックスにファイルの内容を表示して、
入力不可にするには親ダイアログのボタンにどのようなコーディングをすれ
ば、よいのでしょうか?教えて下さい。宜しくお願い致します。
>>775 取り合えずエディットボックスは無視して、目当てのファイルのパス+ファイル名へのポインタ
char *fileName; を親ダイアログに準備して、
子ダイアログクラスにも同様のポインタを準備する。ここまでが準備。
ンで、親ダイアログのOn?????(該当するボタン)の処理内で、
子ダイアログクラスのDoModal()直前辺りに、子ダイアログのポインタにアドを代入してやりゃ
子ダイアログにパス+ファイル名を通達出来るべ?
とどめに子ダイアログクラスのOnInitDialogで、得られたファイルをオープンして
貼り付けたCEdit?に内容を書き込んでやりゃいいさ。
>>766 教えていただきまして、ありがとうございます。親切で感激しています。
フィットネスインストラクターをしていて筋肉マニアですので、筋肉や栄養の事で
質問がありましたらドンドンして下さい。本当にありがとうございました。
779 :
デフォルトの名無しさん:02/02/26 10:16
キャプチャカードのビデオ端子に接続した
デジカメの映像を動画でキャプチャするプログラムを作成したいのですが、
少し調べたところDirectShowを利用する方法は見つかりました。
DirectShowを利用しない方法はございますでしょうか。
OSはWin2000、VS6を使用してます。
VfWつかうとか?
なんでDirectShowがいやなのかはわからないけど。
781 :
デフォルトの名無しさん:02/02/26 19:23
プロパティとメンバ変数って何が違うの?
なにもかも
783 :
デフォルトの名無しさん:02/02/26 20:58
>>782 そうなんですか。
ではスレ立てて聞くのが良いみたいですね。
とりあえず11時にムとマに立てて、ソレでだめなら
2chの外で聞きます。
781,783を撤回します。
申し訳ありませんでした
786 :
デフォルトの名無しさん:02/02/27 00:00
VC .net Pro が待ち遠しい・・・
夏ぐらいかな?
あのう、CListViewのReport形式っていったらわかりますかね?
エクスプローラみたいな表示形式。
それでソートをしてやりたいんですけど、
ソートだけに使う列を作ってソートをしたいんですけど、
列まるごと不可視にすることはできましたでしょうか?
>787
幅を0に。
LVITEMのlParamとかを利用する方向の方が健全だと思うけど。
>>788 それもそうだ(汗)
ありがとうごぜーますだ。
MFCダイアログベース?プログラムです。
CAaaaaDlg::OnInitDialog(){
(略)
//IDにIDC_LISTAを設定したListControlをダイアログ(リソース)に貼り付けました。
CListCtrl *pList=(CListCtrl*)GetDlgItem(IDC_LISTA);
//ここでレポート形式を指定
}
レポート report形式はどうやって指定したらいいのでしょうか。
プロパティで「レポート」選択するだけだろ…
勘弁してくれよ…
正直すまんかった
ListViewコントロールで文字の色を変更したいんですけど、
そのリストビュー全部変更することしかできないのでしょうか?
1行ごとにいろかえとかしたいんですが。
パラレルポートからデータを出力するプログラムを作っています。
outp( 0x378 , data );
としてるのですが、出力先アドレスに変なアドレスがわたってしまった場合(0x1f0 0x010など)
最悪の場合どんなことが起こり得ますか?
ちなみにVC++6でかいてます。
NT系だと一般保護違反になるので、95/98/Meを対象にしてください。
>>794 最悪かどーかしらんが、鼻から悪魔が出てくる。
最悪はドライバが死んで青画面だろ。
プリンタから煙がでたら、PL法も視野に
いれられるので、ある意味最悪ではない
CListCtrlの自作サブクラスで、ラベルエディット終了以外の時に
LVN_ENDLABELEDITを投げてハンドリングしたいんですがうまくいきません。
ハンドラはClassWizerdを使って作ったので間違いないと思うのですが、メッ
セージ発行がおかしいのでしょうか。どなたかHelp Me
メッセージの発行は
GetParent()->SendMessage(LVN_ENDLABELEDIT)
もしくは
this->SendMessage(LVN_ENDLABELEDIT)
とやってますが、親ウィンドウ、子ウィンドウともに反応なし、ただの屍のようで
す
すみません。教えてください。
VBとか他の4GLとかで外部関数(DLL)インターフェースを持つ言語で作ったWinのアプリからMAPIを使用してMicrosoftのMailerから受信したMailを見たいのですが、
(さらにはASPとかからも見る必要もあるかも)
OutlookのMailの本文を取得するとencodeがかかったリソースのまま取得してしまいます。
MSFCのインタフェース(DLL)で、encodeタイプを指定したら2バイトコードに変換してくれるようなものってご存知ないですか?(decoder?)
ちょっと調べてみたのですが、分かりませんでした・・・
よろしくお願いしますっっっ
クラスのメンバ関数を書き加えたのですが,インテリセンスが更新されません。
インテリセンスの情報を更新する方法ってあるのでしょうか?
>799
つーか、マルチやめれ
>>798 LVN_ENDLABELEDITはWM_NOTIFYを使って送るよって
ヘルプにもちゃんと書いてもらったのにのにのにのに……
803 :
デフォルトの名無しさん:02/02/28 23:20
場違いかもしれないけど
VC++のソース・ヘッダの整形
指定した#ifdef #ifndefの削除
がでWindowsでできるフリーのお勧めソフト教えてください。
あと、VC++のソースからクラスチャート作ってくれる
フリーのソフトってありますか?
804 :
デフォルトの名無しさん:02/02/28 23:20
>>800 以下のファイルをプロジェクトから一旦削除してClassWizard立ちあげなおして
やると回復するみたい。ホントは全部消さなくてもいけると思うけど、どのファイルが
アタリか折れにもわかんない。いつも下記ファイルを一旦全部消してる。
(ちなみに消してもまた勝手に生成されるけど)
プロジェクト名.aps
プロジェクト名.ncp
プロジェクト名.opt
プロジェクト名.plg
プロジェクト名.clw
>>803 > VC++のソース・ヘッダの整形
ツール→カスタマイズ→カテゴリ→全てのコマンド→SelectionFormat
をツールバーにドロップして、出来たボタンをポチっとな。
> あと、VC++のソースからクラスチャート作ってくれる
クラスチャートってのが何のことかよくわからんが、doxygenとか?
807 :
デフォルトの名無しさん:02/02/28 23:48
>>805 ありがとー
scpp すごくよさそうですね
VC++のソース・ヘッダの整形に関しては、できればコマンドラインでやりたいんですが
Cygwinのindentってやつがいまいち機能不足で、もっとこまやかな設定ができるのを探しています
>クラスチャートってのが何のことかよくわからんが、doxygenとか?
やっぱりそれしかないんですかね
>>802 そうとは知りませんでした。すんまそん
アハァ(*´-`)=3
あのぅ、
お礼欲しい人いませんか?
レイプは許せません。
本物のレイプをはじめてみました。(リアルプレイヤーで)
場所はスキー場でお化粧をしてスキーウェアを着た女の人に男二人が襲いかかっていました。
女の方が激しく抵抗する上にスキーウェアを着ているので男の方も苦戦していました。
服が脱げないので男が二人掛りでフェラを強要しようとしますがうまくいきません。
すると突然映像が切れて場面が変わりました。
たぶんカメラを持った人も手伝って何かしたのだと思います。
女の人は完全に裸にされていてものすごくおとなしくなっていました。
そして頭をつかまれて無理やりフェラをさせられていました。
女の人はのどの奥に突っ込まれるので「おえっおえっ」として苦しそうですが
頭をつかんで無理やりフェラをさせている男の方は「吐け!ほら吐け!吐いたほうがこっちは気持ちいいんじゃ!」
と言いながらのどにぐいぐい入れるので女のほうは息もさせてもらえずに苦しんでいました。
もうひとりの男はそれを見てずっと笑っていました。
しばらくそれが続くと女がむせるだけだったのがつまらなかったのか態勢を変えさせました。
はじめあれだけ激しく抵抗していた女の人はほとんど抜け殻のようになっていて男に「もう腰も立たんか!」
などと笑われながら人形のように扱われて四つんばいにさせられました。
その後はバックから突かれたのですがはじめの様子からは想像もできなほど女の人は無抵抗で男がピストンしても無反応のままでした。
僕は本当に絶望した人がどんな表情をするのかを本当に見ました。
女の人は絶望という表現がこれ以上適当な表情はないと思えるようなこわばって呆然としたあきらめの表情をしていました。
この女の人が反応したのは最後男が面白がって「中だししてやるから俺そっくりな子を生めや!」といったとき
「それだけは勘弁してください」というようなうめきをしただけでした。
本当にはじめに抵抗していた様子からは想像もつかない変貌ぶりでした。
ただ全裸にされただけでああなるとは思えないです。
完全に抜け殻としか言い様のない脱力とどんなテレビにも見たことがない絶望の表情をしていました。
男達が去った後も女の人は四つんばいのままぴくりとも動かなかったです。
カメラは呆然とした女の人のすぐ側に寄ってその様子をあたかも貴重な映像であるかのようにしばらくアップで撮っていました。
けれどそのカメラにも女の人は無反応でした。
この二人の男は行為の間じゅう「一生の思い出にしてやる」だの
「おまえも遠くまで来たかいがあってよかったな」などとくだらないことをずっと
女の人に向かってしゃべりつづけながら下品な笑いをずっと浴びせていました。
さすがにこのビデオは見ていて気分が悪かったです。
今までうそレイプものはいくつか見てきましたが本当のレイプがこんなに悲惨で下劣なものだとは思いもしなかったです。
本当に絶望した人間がどんな表情をするのか、レイプという傷を負った女性がどんな状態になるのか、
僕ははじめて本当に知りました。絶対にレイプは許せません。
「えーことあったのう」と下品に笑いながら去っていったあの二人の男を見つけ出して
この女の人の前で殺すか性器を引き千切ってやりたいです。
レイプをする人間は最低です。相手の気持ちなど微塵も考えていません。
レイプは女の人を最大限に踏みにじる史上最低の行為です。
僕は3回抜きました。
偽者帰れ。ザイールに帰れ
816 :
通りすがり:02/03/03 05:34
817 :
デフォルトの名無しさん:02/03/03 13:20
DOSで言うところの”system”みたいな、プロセスを実行するAPI関数教えてプリーズ
system, ShellExecute, CreateProcess
AGE
アフォのせいでスレが氏んj
CString ss;
824 :
くれうトンさん:02/03/07 08:27
SQLを実行させようと思いまして下記の様にコーディングしましたが、
"\'m_Com1\'" を読み取ってくれません。シングルコーテーションの中では
なくて、’’も含めて読み取りたいのです。どなたか教えて下さい。
m_Com1はメンバ変数です。全体のコードはこれでいいのでしょうか?
CString strSql = "Select timem,exp,tostn from jikoku where ";
if(m_Com1 == ""){
strSql+= "Stn = " + "\'m_Com1\'" + " AND ";
}else if(m_Com2 == ""){
strSql+= "Goto = " + "\'m_Com2\'" + " AND ";
}else if(m_Com3 == ""){
strSql+= "Day = " + "\'m_Com2\'" + " AND ";
}
strSql+= "Timeh = " +m_ji;
m_Recordset.Open(CRecordset::dynaset,_T(strSql));
UpdateData(true);
m_Recordset.Requery();
825 :
デフォルトの名無しさん:02/03/07 08:28
いいかげんパルチポストやめれ
VCDファイルってどうやってみるの?
827 :
デフォルトの名無しさん:02/03/07 23:58
CEditのサブクラスを動的に作成して、適当なタイミングで破棄したいので
すが、単にDestroyWindowで破棄すると、リリースビルドではエラーが出てし
まいます。原因とか解決策ご存知の方、教えてください
>827
UnSubclassWindow()かな?
>>828 すみません、原因発覚したのですが結局解決できません。
アフォなことやってまして、CEditのサブクラスの方で「EN_KILLFOCUS」
なげてやって、親ウィンドウでそれを受け取るとDestroyWindowやっ
てました。サブクラスのほうのメモリは解放されてしまうのでメッセ
ージを処理した後戻りようがないですね(´Д`;)
さて、どうしたらよいものか・・・・
解決です。お騒がせしました。ところでOnKeyDownって、VK_REUTN 受け取れな
いんですかね?とりあえずPreTranslateMessageで受けてるんですが
>830
ダイアログの場合、Enterキーが押されるとダイアログマネージャが親切に
IDOK(かデフォルトプッシュボタン)に置き換えてくれます。
でも、エディットボックスだったらES_WANTRETURNを指定すればいいのでは
……って複数行じゃないと効果ないんだっけ。じゃあ、かわりにエディットの
OnGetDlgCodeでDLGC_WANTALLKEYSを返してやればいいはず。
ところでイクラちゃんのお母さんの名前ってなんだっけ?
タエコ
タイコじゃないの?
海シリーズにならんとおかしいと思う。
835 :
デフォルトの名無しさん:02/03/08 08:58
>>831 Thx!本を見ると、OnKeyDownでは受けれなくてOnKeyUpでしか受けれらない
キーがあるって書いてあるけど、そういうことでしたか。納得しました。
まぁ、とりあえずPreTranslateMessageで受けてあげても問題ないですよ
ね?
アハァ(*´-`)y-~~~メッセージ処理奥がふかいなぁ・・・
>>835 ジャンプボタンを無効にするより素直にフラグ使えYO!
タブコントロールにいろんなコントロールを配置したいのですが、異なった
タブ用のコントロールを配置すると重なってしまうので編集しにくいのです
が何かよい方法ありますか?適当に配置しておいてMoveWindowで動かすしか
無いですかね?
839 :
デフォルトの名無しさん:02/03/12 01:16
超初心者です。
現在6.0を使っているのですが、
メニューバーに、チェックマークをつけたり
はずしたりといったことをしたいのですが、
どうすればよろしいでしょうか?
840 :
デフォルトの名無しさん:02/03/12 01:48
分数を扱うクラスを作ろうとして、演算子をフレンドとしてオーバーロードさせようとしたら
内部コンパイラエラーがおこってしまいました。
(VC++6.0、c1001)
class Bunsuu{
int bunshi;
int bunbo;
public:
friend Bunsuu operator+(Bunsuu hoge, int piyo);
}
Bunsuu operator+(Bunsuu hoge, int piyo)
{
//bunshi.bunboにアクセス
..
}
ここで、bunshi,bunboもpublicにしてフレンドをはずしてみると
問題なく通ってしまいました。
ヘルプを見ると最適化オプションとの相互作用が原因とあるのですが、
どのオプションをはずすとどういう影響があるのかわかりません。
また、原因究明のため/Bdオプションを付けてコンパイルしろとあるのですが、
オプションの追加がうまく行きません。
オプションの設定について教えてもらえないでしょうか。
>>838 ダイアログをコントロールで作成してその上に配置すれ。
>>839 ヘルプ読め。もしくはGoogle検索すれ。
>>840 問題なかったけど(VC6SP5)。
それと、参照で受けれ。
モーダルダイアログって、親ウィンドウ(CView)にメッセージ送れないん
ですか?あらゆる方法で送ろうと試みたんですがうまくいきません。もし
送れるのなら方法を教えていただけませんか?
844 :
デフォルトの名無しさん:02/03/13 09:43
外部シンボルが未解決というエラーが出ました。
あちこちで調べたら
プロジェクト>>プロジェクトへ追加>>ファイル
を選んで、ライブラリファイルを追加しなさいと書いてあったのですが,
ライブラリファイルが見つからないのです。
どうしたらいいでしょうか。
あと、コールバックって何ですか?
教えてください。
ライブラリファイルはコンパイル時に出力フォルダに作られるんでは?
>コールバック
関数を呼び出すときに、呼び出し側のプロセスで用意した関数を
先方から呼び出してもらうようにすること。
用意した関数の先頭アドレスをコールバック関数の引数に含める
845さんお答えありがとうございます。
出力ファイルって何ですか?
プロジェクト内には、
Debug Release Res
の3つのフォルダーしかなくて、いづれも中は空です。
当方VCの6.0を使用してます。
また、外部シンボル、外部参照エラーの対処法として
Cランタイムライブラリを使用するかどうかは、STLの実装に依存します。「プロジェクトの設定」の「プリプロセッサの定義」から、_ATL_MIN_CRTを削除してください。現在、SGIのSTL v3.3もサポートしています。
・・・こんなことを書いてあるWebがあったのですが、
_ATL_MIN_CRT
なんて最初からありません。
全くの初心者なのですが,
なんとかソースファイルのエラーはなくなりました。
あとは、実行時エラーと言うわけのわからないものが壁になってるのです。
助けてください・・・。
VCの入ってるフォルダ\lib\atl.lib
を追加すりゃいいんじゃねーの?
追加できました!
が、問題は解決されません。
とほほ。
単にlibが無いってだけじゃないの?
なんていう名前のライブラリが無いのよ?
****G01.LIB
とのことですが、見つかりません。
まったくわからんな。まずは、
>外部シンボルが未解決というエラーが出ました。
どの外部シンボルなのか。
>...を選んで、ライブラリファイルを追加しなさい
はその状況に対して正しい対処法なのか、
あたりからはじめようか。
>>852 おそらく
「外部シンボル 未解決 エラー」
あたりで検索してたまたまそのページがヒットしたんだろうな。
まずはそのエラーメッセージをここにコピペすれ
俺が思うに、単にWin32APIの何かを使おうとしたけど
libが無いだけじゃないかと。
SDKをDLすれば解決するのではないかと。
この初心者ぶりからいくと、ある関数を.hには宣言したものの、
.cppには実装してないだけとか。
>>842 問題は名前空間にあったようです。
#include<iostream>
using namespace std;
を
#include<iostream.h>
に変更したらエラーが回避されました。
名前空間について勉強してみます。
デストラクタがない場合でも参照で受けた方がいいのでしょうか?
引数に変更を加えたくないので参照で受けた場合は関数内でローカルなオブジェクトを
宣言することになり、自動的かどうかの違いしかないと思うのですが。
>>851-856 プロジェクト 'FD_date - Win32 Release' 用の中間ファイルおよび出力ファイルを削除しています。
--------------------構成: FD_date - Win32 Release--------------------
リソースをコンパイル中...
コンパイル中...
StdAfx.cpp
コンパイル中...
ChildFrm.cpp
date.cpp
N:\C\FD_date\date.cpp(41) : warning C4390: ';' : 制御が空の文が見つかりました。意図した記述でしょうか?
N:\C\FD_date\date.cpp(44) : warning C4390: ';' : 制御が空の文が見つかりました。意図した記述でしょうか?
FD_date.cpp
FD_dateDoc.cpp
FD_dateView.cpp
MainFrm.cpp
コードを生成中...
リンク中...
date.obj : error LNK2001: 外部シンボル ""int __cdecl exit(void)" (?exit@@YAHXZ)" は未解決です
Release/FD_date.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
FD_date.exe - エラー 2、警告 2
・・・これがエラー文です。
お恥ずかしい。
そのexitはどのファイルにあるの?
date.cppにexitが無いんじゃないの?
>>859 ソースファイルしかいじってないのですが。
ファイル名はdate.cppです。
>>860 最初に宣言もしてるんですが。
#include <stdio.h>
int exit();
void main(void)
{
ちょっと待て。MFC使ってるんだろ?
根本的に間違ってると思われ。
Win32 Console Application
でワークスペース作りましたが。
これは、MFCではないのではないですか?
エラーメッセージに
StdAfx.cpp
ChildFrm.cpp
date.cpp
FD_date.cpp
FD_dateDoc.cpp
FD_dateView.cpp
MainFrm.cpp
があるからMFCAppWizardでアプリを作ってると思ったんだが。
>>844 == 863
MFC == Microsoft Foundation Class
Class とは C++ で追加された仕様。
貴方がやってるのはただの C と思われる
# C++ でもできないことは無いが(w
>863
int exit();の本体はどこかに実装してあるのか?
俺が思うに、MFCAppWizardでMDIアプリを選択し、
そのプロジェクトにdate.cppを追加して、そこに
Cのコンソールプログラムを書こうとしてるのでは。
みなさんのおっしゃってることは
全然わからないのですが、
>>865 どうやら私はC++を使ってただのCをやろうとしてるみたいです。
それは問題ないのでしょうか?
>>867 最初はそうしてました。
でも、Win32 Console Application
を使ったんです。
>int exit();
おとなしくstdlib.hをincludeするか、
extern "C" int exit();
と宣言するか、どっちかにしとけ。
ソースは何行? 30行くらいならここにコピペしてみ?
ネタっぽい。
>>869 extern "C" int exit();
→こいつで、一発でしたよ!
ありがとうございます。
873 :
デフォルトの名無しさん:02/03/14 09:43
教えて下さい。
98で動作していたプログラムをXPで動作させると
いきなりエラーになってしまいます。
初心者ながら調べてみると、malloc関数を実行中に
0x77f536f7 の命令が 0x00...000 のメモリを参照した...
written できない...
というメッセージが表示されます。
mallocはwhile文中で何回も呼んでいます。
確保するサイズは、7,74,2,3,4,2,2,2,6,6,6,...
と合計しても140バイト程度です。
malloc実行後NULLチェックもしています。
なぜでしょうか?
875 :
デフォルトの名無しさん:02/03/15 01:04
ガイシュツだったらすみません。
VC++のダイアログエディタのタブオーダーの設定で、例えばコントロールが50個
ある場合に49番目と50番目の順番を入れ替えたいときはどうしたらいいんでしょうか?
現在は1番目から順番にクリックするか、スクリプトをテキストエディタで編集
していますが、途中から順番を設定する方法があれば教えてください。
>875
48番目のやつをCtrlだかShiftだか押しながらクリックする。
マニュアルにも書いてあったと思うけど。
877 :
デフォルトの名無しさん:02/03/16 12:19
自作クラス(Generic)をクラスウィザードから作成しました。
そしてコンパイルすると、
LINK : warning LNK4089: "ADVAPI32.dll" へのすべての参照は
/OPT:REF によって廃棄されます
というワーニングがでます。
クラスの新規作成(作成しただけで、中身はいじっていない)
のですが、どうしたらこのワーニングきえるでしょうか??
>>877 「使ってないからリンクしねーよ」という意味だから気にするな。
どうしても気になるならリンクするライブラリからadvapi32.libを外せ。
>>878 ありがとうございます。
しばらく気にしないでいこうとおもいます。
それにしても、今まではこんんたワーニングでなかったのに...
なんでだろ。
880 :
デフォルトの名無しさん:02/03/22 14:58
はじめまして
WindowsXPつかってます
昔垢とりそふとなどがありましたがああいうものを作りたいと思ってます
そこで思うのですが*仮にここでなら*"書き込む"というところを押したようにしたいのですが知恵が浮かびません
ソースコードを見ると"SUBMIT"が対応しているようなのですがどうやって取得してよいかわかりません
ご存知の硬い増したらよろしくお願いいたします
C言語でやりたいと思ってますのでVC++6.0とVC++.NETどちらかでお願いいたします
VARIANT型ってなんだべ?
charをVARIANT型にする方法、intをVARIANT型にする方法、
教えてくださいまし。
だぁれも相手にしてくんないけど、なんとなく解決でけた。
にしても、MSWinsockControlをVCで使うための情報が
ここまで少ないとはおもわなんだ。つかれた・・・・・・
883 :
デフォルトの名無しさん:02/04/11 18:19
そうか
ふつうの人は、MFCのC*Socket系を使うし、もっと
マトモなひとは、WinSock生(/独自ライブラリ)で使うし。
>884さま
よくわかんないけど、その場合って、データ受信でイベント起動できるの?(簡単に。)
友達からIBMのノートパソコンをもらったのですが、ロックがかかってて何もできません。
どうしたらよいのでしょうか?詳しい方、よろしくお願いします。
>>887 ロックってなんやねん。
板違いなんじゃねーの?
>887
友達にパスワード聞きなさい…てかCMOSクリアで行けないかな?
友達も忘れてたらIBMに聞いてみることですなsage
最近STLを使い始めたのですがVC6++だと
listのsortに比較関数を入れてもC2664のエラーが
でてしまうのですが、普通の方法ではlistをソートする
のは不可能なのでしょうか?
比較関数オブジェクトぢゃないの?
>892
そうです。すみませぬ。色々しらべたらSTLPortなるものを
つかうと回避できるということなので、これから調べるです。
スレ汚してすみませんでした。
894 :
デフォルトの名無しさん:02/04/18 13:01
C++超初心者です。
DOS窓のBASICでゲームは作ったことあるので、
だいたいのフローチャートというかアルゴリズムは理解しています。
CIN COUT IF くらいでの簡単なプログラムは組めます。
目標はVC++でウィンドウズ用アプリで
シューティングとかパズルゲームを作りたいのですが、
まずどこから手をつけたらいいのかわかりません。
VCの解説書とかサイトってのは基本手にまず、C++のソースを
理解しているものとして書いてありますよね。
まずはC++の黒画面で表計算くらいできるようになってからVCでしょうか。
なにか良いサイトはありますか?
まずは、参考書よりも解かりやすく、C++のプログラミングがわかる
サイトを知りたいです。intってなに?とかchaeて?とか
までわかるところ。
896 :
デフォルトの名無しさん:02/04/18 19:23
プログラムとしてリドローするにはどうすればいいですか?
>>896 RedrawWindow()かUpdateWindow()のことか?
898 :
Cygwin命 ◆uCULWjUI :02/04/18 20:34
Cygwinにネットワークツールをインストールしたいんですが
どうやったらいいかとりあえず使用コマンドを使えるようにしたいので
お勧めのサイトもしくは本などあったら教えて下さい
>>898 ネットワークツールって、具体的になんなの?
901 :
デフォルトの名無しさん:02/04/24 01:45
コンソールアプリケーションで、テキストを読み込んで処理した後
またテキストファイルに出力するプログラムを作りました。
それでプログラムの終了時に、出力したテキストを自動的にメモ帳で開くようにしたいのですが
上手く出来ません
とりあえずsystem("出力ファイル名.txt")とやればメモ帳を起動してファイルを開けれると
いうところまではわかったのですが、これだとメモ帳を終了させるまで元のプログラムが
止まったままになってしまいます。
メモ帳を起動した後、メモ帳を閉じなくても元のプログラムを動作させるには
どうしたらよいのでしょうか。
CreateProcess
903 :
デフォルトの名無しさん:02/04/24 10:49
円周率πはどうやって使うのでしょうか。
<math.h>インクルードして「pi」とか「π」って書いても
コンパイルエラーでます。
904さんありがとうございます。
>>903 #define M_PI acos(-1)
なんてのも。
>>901 ShellExecute( NULL, "open", "出力ファイル名.txt", NULL, NULL, SW_SHOWNORMAL );
もしくは
ShellExecute( NULL, NULL, "出力ファイル名.txt", NULL, NULL, SW_SHOWNORMAL );
では、だめなの?
メモ帳とは限らないけど、拡張子txtに関連付けられたアプリで開いてくれるはず。
908 :
デフォルトの名無しさん:02/04/25 17:40
APIなんですが、カーソルをウィンドウからうまく出さないようにする方法はありませんかね?
無理矢理やろうとしても、どうしても一瞬ウインドウから出ちゃって・・・。
ClipCursor
910 :
デフォルトの名無しさん:02/04/25 18:42
もしスレ違いだったらごめんなさい。
HPの掲示板が荒らされまくって困っています。
書き込んでいる人間のIPアドレスを知る方法がわかる方がいらっしゃったら
教えていただけないでしょうか?
もしくは書き込み不能にできる手段はありますでしょうか?
されるがままで困ってます。
よろしくお願いします。
>>907 ありがとうございます。
それで上手くいきました。
913 :
デフォルトの名無しさん:02/04/25 20:03
>>911 初心者に御親切ありがとうございました。
さっそく聞いてきます。
914 :
デフォルトの名無しさん:02/04/27 20:18
STLPortにしておけ。
SGI版を名前の通り各コンパイラ向けにPortingしているものだから
916 :
デフォルトの名無しさん:02/04/27 21:41
>>916 ありがとうございました。無事ビルドできました
917 :
デフォルトの名無しさん:02/04/28 02:01
>>909 そんな便利な関数があったのですね・・・ありがとうございます。
で、このClipCursorですが、これをすると、
非アクティブ時もカーソルの移動範囲が制限されてしまうのですが・・・。
ちなみに、
if(GetForegroundWindow()==hwnd) ClipCursor(&rec);
とやってみましたが、うまくいきません・・・。
とってつけたようなうろ覚え知識だから、何か間違ってるかな・・・。
919 :
デフォルトの名無しさん:02/04/28 14:55
>>918 case WM_ACTIVATE:
ClipCursor(&rec);
とやってみましたが上手くいきません・・・。
ところで、何度も申し訳ないのですが、
非アクティブになったら、というウインドウメッセージはありますか?
WM_ACTIVATEのLOWORD(wParam)が、WA_INACTIVEなら非アクティブ
それ以外ならアクティブ。
これ以上はMSDNを見てくれ
>>920 全ての謎は解けた・・・・
どうもでした。
923 :
デフォルトの名無しさん:02/04/28 15:36
解像度を得るにはどうすればいいですかね?
GetSystemMetrics
GetDeviceCaps
なんでポインタにも型宣言が必要なんでしょうか
>>926 そのポインタの先の値を操作する時に、型がわからないと困るから。
928 :
デフォルトの名無しさん:02/04/28 20:11
そろそろスレ移行の時期かね?
929 :
デフォルトの名無しさん:02/04/28 21:09
Borland C++Builderで、SHGetPathFromIDList()を使おうと思って、
#include <Shlobj.h>
したのですが、
[C++ エラー] SHLOBJ.h(1762): E2238 'FVSHOWINFO' の宣言が複数見つかった
[C++ エラー] SHLOBJ.h(1936): E2238 'FOLDERSETTINGS' の宣言が複数見つかった
[C++ エラー] SHLOBJ.h(3717): E2238 'DESKBANDINFO' の宣言が複数見つかった
[C++ エラー] SHLOBJ.h(4808): E2238 'SHELLFLAGSTATE' の宣言が複数見つかった
などといわれてしまいます。
いったいなぜなんでしょうか? また、どうすれば治るのでしょうか?
教えてください。よろしくお願いします。
スレ違いです。
スマソ
931 :
デフォルトの名無しさん:02/05/01 12:12
VC6で、::operator newに独自の物を使っているせいか、
streambufを使用するとWinMain後に例外が出ます。
でないようにするにはどうしたらいいですか?
独自の物を使わない
newやdelete、特にnewは内部で非常に複雑な処理をしている。
その処理を知ったら、上書きしたいなどとは思わなくなるだろう。
〜実践C++プログラミングより、うろ覚えな引用〜
複雑か?
new : メモリを確保->コンストラクタ起動
コンストラクタの例外を捕捉したら解放して、そのまま例外を送出
成功ならポインタを返す
delete: デストラクタを起動->メモリを解放
これだけじゃん。
935 :
デフォルトの名無しさん:02/05/01 13:54
じゃあんたが
>>929 のしゅくだいをつくってやれ
>>933 処理を知ったからこそ上書きしたいと思ったという例がModernにあるーよ。
なんにせよ931は情報が不足しすぎて最適な答えを返すのは無理だわな。
937 :
デフォルトの名無しさん:02/05/04 17:18
class myclass{
vector<string> mydata;
public;
void MyPushBack(const char* s){
mydata.push_back(string(s)):
}
}
void aaa()
{
myclass m;
m.MyPushBack("ウマー");
とやったあとには、m.mydata[0]には
無効なオブジェクトが入ってるということでいいんでしょうか?
有効なオブジェクトだけど?
クラスのブロックの後ろに;がなーいよ。とツッコミ。
もしかしてローカル変数入れてるんじゃ・・・と不安になりましたが
違うんですね。
>>937 >mydata.push_back(string(s)):
この時点では、s="ウマー"; となって、stringの一時オブジェクトが
作られる。そのあと、push_back()はコピーコンストラクタで
「値のコピー」を行って、m.mydata[0]に有効なオブジェクトが入る。
そのあと一時オブジェクトであるstrin(s)は消えるんだけど、
m.mydata[0]はstring(s)とは無関係な、有効なオブジェクトが残る。
ヘタな説明ですまそ。これで理解してくれれば嬉しいが。
コンパイラの質問ってここで聞いていいんですか??
板違いだったらすみませんが質問ですが
VC 6.0と.NETともにデバッグしようとすると
かなりの確立でVCがフリーズします。
Win2000,XP両方発生します。
具体的にはF5押すとエディタがデバッグの画面に切り替わり
その後フリーズします。その際他のウィンドウとかも
巻き込まれます。タスクマネージャーは立ち上がらないのですが
1分ほど時間が経ってから閉じるボタンを押すと
「応答がない」のダイアログがでて何とか終了できます。
終了すると他のウィンドウなどは元に戻ります。
調べられる限り調べたのですがだめでした。
ちなみにノートンは切ってありますし、
オーバークロックもしておらず
オプションのデバッグ項目はデフォルトで使用しています。
ご存知の方おられましたら教えてもらえないでしょうか?
板違いだったら教えてください。
よろしくお願いします。
Win2kではたまに、XPではかなりの高確率で
デバッグ及びビルド開始時に失敗するね<VC6
.NETはよくしらん
>>944 VC6出たときから今までほぼ毎日使ってるが
そんな現象には一度も遭遇したことがない。
ちなみにOSはWin2K
>>945 ビルドボタン押したときに、ファイルを保存していますのまま数秒たった後に、不正終了しない?
>946
漏れはならんなぁ。
Spy++で死にそうになることはあったw
948 :
デフォルトの名無しさん:02/05/05 01:13
メモリDCにテキスト描画して
それをウィンドウのDCに転送したいんですができませんかね?
...
HDC hdc, memdc;
SelectObject(memdc, hbm); // hbmには640*480の任意の画像
hdc = GetDC(hwnd);
memdc = CreateCompatibleDC(hdc);
TextOut(memdc, 300, 200, "hello, world!", 13);
// ここでmemdc → dc に転送したい
...
ビットマップはBitBltで転送できるんですけどテキストが・・・
TextOut(hdc, 300, 200, "hello, world!", 13);ならもちろん表示されるんですが
やはりWM_Paintで処理するしかないのかな・・・
あ、hdcにもビットマップセレクトされていてサイズは640*480です
念の為
>>あ、hdcにもビットマップセレクトされていてサイズは640*480です
>>念の為
間違えました(爆
hwndのクライアント領域のサイズが640*480です
memDCにSelectObjectするビットマップがないような気が・・・
memdcと互換のHBITMAP<かDIB>をクリエートする。
>memdc = CreateCompatibleDC(hdc);
HBITMAP hbmpSave = (HBITMAP)SelectObject(memdc,memdcと互換のHBITMAP<かDIB> );
>TextOut(memdc, 300, 200, "hello, world!", 13);
SelectObject( memdc, hbmpSave );
>>943 うちも玉ーになります.
SB Live! か、geforce の
どちらか入ってませんか?
>>952 SB Live!挿してます。
付いてたドライバー関連のソフトウェアも
いくつか入ってます。
これが原因とは考えたことありませんでしたが
関係あるんですか?
とりあえず明日アンインストしようと思ってますが。。
>>953 SB Live!というかcreative製品のドライバって昔っから出来が悪いですよね。
実は .net beta 時にうちでも問題起きて、msさんに質問したんですよ。
そしたら、ms製ドライバでは再現しないって事になりまして。
確かに落ちるのがSB Live!のdevldr32でした。
最近ではマシンが固まるとSB Live!付属とおもわれるdevldr32を殺すと
マシンが復活します。
>>954 ありました、devldr32.exe
具体的な解決策としては
SBのドライバー関連全て削除して
始めから入ってるドライバーに差し替えたら
直りますか?
ちなみに今直接問題のファイルリネームしたら(->devldr32.bak)
勝手にexeファイル作成されてました(笑)
今作業中なので明日、やってみたいと思います。
なんか勘違いしてたら訂正お願いします。
どこ探しても対処見つからなかったので
かなりうれしいです。
956 :
デフォルトの名無しさん:02/05/05 20:36
超厨な質問スマソ。
Main_Proc()のflgAに格納されている値を
別の関数Sub_Procで参照、または代入するのにはどうすればいいの?
えっと結果から報告します。
ダメでした。
Liveのドライバー、ユーティリティ関係
全て消しても固まります。
その後、ドライバーをUPDateしましたが同じでした。
状況が似てたのでこれは、と思ったのですが
残念です。
他の方法ご存知の方おられたら教えてもらえないでしょうか?
シェルの作成についての課題なのですが、
MyshellはCshellと違って、Cで実行できていたコマンドや機能のうち
働かないものがある。これらを調べ、どのような機能が実行できないか、
なぜできないか、どのような機能を追加すればいいか?
例えば次のが実行できない
エイリアス、ヒストリー、ワイルドカード、ファイルへのリダイレクト、
shellプログラミング、ディレクトリー操作(popd、pushdなど)
これらから4つほど(エイリアス、ヒストリーは必須)をmyshellに追加せよ。
という課題です。助けてください、お願いします。できればソースを、、。
myshellです
#include<stdio.h>
#define MAXARGS 10 /* 許されるコマンドの引数の最大の数 */
#define LINELENGTH 80 /* コマンドラインの最大文字数 */
#define CONTINUE 1
#define EXITCOM 0
main(int argc,char* argv[])
{
char linebuf[LINELENGTH];
int hist;
for(hist=1; ;hist++){
printf("myshell[%d] ",hist);
gets(linebuf);
if(exec_one_command(linebuf)==EXITCOM) break;
}
}
char *skipspace(char* s)
{
while(*s==' ') s++;
return s;
}
続きです
int getcl(char* line,char* argmv[])
{
int argnum=0;
do{
line=skipspace(line);
if(*line=='\0'){
argmv[argnum]=NULL;
return argnum;
}
argmv[argnum++]=line;
while(*line!='\0' && *line!=' ') line++;
if(*line=='\0'){
argmv[argnum]=NULL; return argnum;
}
*line='\0'; line++;
}while(1);
}
int exec_one_command(char linebuf[])
{
int argnum, status;
char *argmv[MAXARGS];
argnum=getcl(linebuf,argmv);
if(argnum==0) return CONTINUE;
if(strcmp(argmv[0],"exit")==0){
return EXITCOM;
}
if(fork()==0){
execvp(argmv[0],argmv);
printf("Error at execvp\n");
exit();
}
wait(&status);
return CONTINUE;
}
ageます。よろしくお願いします
>>958 課題ってのは?
学校のレポートのこと?
>>951 まさにその通りでした
ありがとうございます
もう一度確認してみたらSelectObject(memdc, hbm);実行する前に
TextOutしてました
そりゃ、テキスト描画されないわな・・・
967 :
デフォルトの名無しさん:02/05/08 21:49
コンボボックスを無効にしたり、有効にしたりしたいんだけど、メッソッドで
やればいいんでしょうか??
EnableWindowだっけ?
そっだっよ
はやっ。
やってみます。
産休。
続きです。
有効/無効はできたのですが、グループ化してあるオブジェクトの場合には
最初のコントロールIDのメンバのオブジェクトが有効/無効になりますよね?
グループの後ろのほうのオブジェクトを有効/無効にしたいのですが、どうすれば
いいんでしょうか?
メンバ変数に登録するコントロールIDはメッセージマップのオブジェクトIDすべて
でてこないのはなぜなんでしょう?
初心者ですいません。
コントロールのIDからCWndを得れば?
それをやるには?(_o_)
もしかして、DoDataExchangeでDDX_Controlを直接手書きで作るってことですかね?
やってみます。
目的どおりに動きました。
産休っ
976 :
デフォルトの名無しさん:02/05/10 03:37
ActiveXのオブジェクトには、ボリュームで使われるような左右につまんでまわすボタンってないんでしょうか?
977 :
デフォルトの名無しさん:02/05/10 03:39
VC辛いぽ(ToT)
まじすか。ないすか。
誰か作んないすか?みんなどうしてるすか?
イメージリストの使い方わかんねぇ
980 :
デフォルトの名無しさん:02/05/11 19:28
スライダーのハンドルに、BN_CLICKEDが欲しいのだけど、Class Wizzardで
でてきません。どうして?
Vc++ V.5だから??
>>981 980ですよね?
MM_OUTOFMEMORYしか表示されないんですよ。
なんでだろう〜♪
コントロールウィンドウのものではなく、ActiveXのSlider ControlV6を
使用してできそうなことがわかりました。
984 :
デフォルトの名無しさん:02/05/11 20:12
SDIで新規作成したときにできるテキスト欄?はリッチエディット何ですか?
文字表示したり弄ったりするのに何をキーワードに検索すりゃいいっすか。
スライダーって、下が0、上がMAXとかってできますか?
>>984 まるで違う。
ただグラフィックとして文字などを表示することができるだけ。