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


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

★初心者にVisual C++を教えるスレ★ Part4
501 名前:デフォルトの名無しさん :03/03/09 12:45
>>498
デフォルトで右下に表示されてまつが。



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

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

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

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

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

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

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

>>505
>>494

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

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

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

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

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

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

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

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

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

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

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

デフォルト OnOK

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



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

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

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

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

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

end1をendlに変えてみなさい

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

よろしくお願いします。

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

>>571
危ないのですか?
上に書いた通りの話だったのでシロかもと思っていたのですが…。

簡単に検索してみたところ、確かにきなくさい話もあるみたいですね。
ttp://n76cd-01p05.ppp11.odn.ad.jp/old/06750.html

何のバグかは不明ですが、STLにバグがあるのは間違いないようですね。
(具体的な記述のあるらしい英文の方はまだ確認できていません。
ベクトルを大きくするときに失敗する、と書いてあるようでかなり怪しそうですが…)
ttp://www.mtl.t.u-tokyo.ac.jp/~nminoru/pc/mfc.html

573 名前:デフォルトの名無しさん :03/03/10 23:15
.NETでは直っているのだろうが
ttp://www.dinkumware.com/vc_fixes.html


574 名前:あいぼん :03/03/11 01:53
VC++で作成したファイルの逆コンパイルの仕方が知りたいです。

575 名前:初心者 :03/03/11 07:10
#define DECLARE_HANDLE(x) typedef WORD x って定義されてますよね。
ハンドル型はDECLARE_HANDLEマクロを使ってWORDの別名定義にされてる。
なのにどうしてsizeof(HANDLE)の結果は4バイトになるか、解かる方いませんでしょうか..

576 名前:デフォルトの名無しさん :03/03/11 08:28
winnt.h:

#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif


577 名前:デフォルトの名無しさん :03/03/11 08:51
マウスの座標を教えてください

578 名前:デフォルトの名無しさん :03/03/11 10:20
マウスは常に動かしているので何とも言えません

579 名前:デフォルトの名無しさん :03/03/11 10:32
>>574
ナニしたいか知らんが、クラック目的なら割れサイト回ってソフトICE使え。

580 名前:デフォルトの名無しさん :03/03/11 11:06
マウスの座標を取得する方法を教えてください

581 名前:GetCursorPos :03/03/11 11:16
>>580
578に尋ねろ



582 名前:デフォルトの名無しさん :03/03/11 11:25
>>581
ありがとうございます
こんなに人に優しくされたのははじめてです・゚・(ノД`)・゚・

583 名前:デフォルトの名無しさん :03/03/11 15:24
コンソールアプリてなんでしょ?
MFCとかテンプレの基本的な差別ができません。
解説されてる所ないでしょうか。

584 名前:デフォルトの名無しさん :03/03/11 15:56
差別はいけません

585 名前:デフォルトの名無しさん :03/03/11 16:04
無差別格闘流

586 名前:デフォルトの名無しさん :03/03/11 18:56
>>580
何をしたときのマウスの座標を聞いたほうが。
いごかしたとき、とかおさえつけたときとか。

587 名前:デフォルトの名無しさん :03/03/11 19:13
マウスの囲碁化?

588 名前:デフォルトの名無しさん :03/03/11 20:29
>>586
おちつけ
そして日本語で書いてくれ

589 名前:デフォルトの名無しさん :03/03/11 20:32
外国の方からアドバイスが寄せられたようです

590 名前:デフォルトの名無しさん :03/03/11 20:56
>>586
>おさえつけたとき
ワラタ

591 名前:デフォルトの名無しさん :03/03/11 21:37
>>586
ワラタ

592 名前:デフォルトの名無しさん :03/03/11 22:57
double型をMessageBox(?)で表示する場合のコーディングを教えて
下さい。

593 名前:デフォルトの名無しさん :03/03/11 23:01
char szText[100];
double lfValue = 3.141592;
sprintf(szText, "%lf", fValue);
MessageBox(szText);
(未確認)

594 名前:デフォルトの名無しさん :03/03/11 23:36
MFCなら CString::Format() だね

595 名前:デフォルトの名無しさん :03/03/11 23:38
デスクトップを親ウィンドウにして作ったモードレスダイアログを
タスクバーから消す方法ある?

596 名前:デフォルトの名無しさん :03/03/11 23:55
>>595
&= ~WS_EX_APPWINDOW

597 名前:デフォルトの名無しさん :03/03/12 00:09
WS_EX_〜は拡張ウィンドウスタイルですか・・・
明日試してみます。サンクス。

598 名前:あいぼん :03/03/12 00:42
>>579
勉強目的でソースが知りたいんです。

599 名前:デフォルトの名無しさん :03/03/12 00:43
http://kotubunet.hp.infoseek.co.jp/king.htm

600 名前:デフォルトの名無しさん :03/03/12 00:53
C++ .NET用の入門書として
何かいいものあれば教えてくれませんか?

http://www.amazon.co.jp/exec/obidos/ASIN/479731768X/qid=1047397176/sr=1-1/ref=sr_1_2_1/249-5797932-5526724
を本屋でパラパラ見た限りでは、あまり使えなさそうでした。
用途は新入社員用の入門テキストです。
VC6用の本なら山ほどあるんですけどね。

601 名前:デフォルトの名無しさん :03/03/12 01:27
マルチうぜ
推薦図書スレ逝け
こんな奴に教えられる新入社員かわいそ

602 名前:デフォルトの名無しさん :03/03/12 01:32
>>600
http://www.microsoft.com/japan/info/press/JPN_ViewMsPress.asp?Book_id=879&list_id=1

603 名前:デフォルトの名無しさん :03/03/12 07:30
M$の例の24冊なんてどう?

604 名前:デフォルトの名無しさん :03/03/12 17:14
char a[10];
strcpy(a, "abcdefghi\0");
としますよね。
それで、
a == "defghi\0"
という風にaの最初を3つ分ずらすにはどうするのでしょうか?

605 名前:デフォルトの名無しさん :03/03/12 17:44
>>604
std::copy(a+3, a+strlen(a)+1, a);

606 名前:デフォルトの名無しさん :03/03/12 17:51
>>604
文字列の最後のnulは自動で付くから自分で付ける必要はない

607 名前:デフォルトの名無しさん :03/03/12 18:05
&a[3]

608 名前:デフォルトの名無しさん :03/03/12 18:50
for(int i=0;i<7;i++) a[i]=a[i+3];


609 名前:デフォルトの名無しさん :03/03/12 19:10
ありがとうございます。

610 名前:デフォルトの名無しさん :03/03/12 21:21
stdクラスって何だ。
どういう思想または理由で存在しているのだ。
簡潔に教えれ。

611 名前:デフォルトの名無しさん :03/03/12 21:28
そんなクラスはない

612 名前:デフォルトの名無しさん :03/03/12 22:15
VCで常駐プログラムを作ったんだけど、
時々exe自体が壊れてしまい、起動しなくなることがあります。
理由の見当がつくかたおしえてください。
2000台に1台の割合くらいで発生しているようだ。
OSはたぶん95系だと思う。

613 名前:デフォルトの名無しさん :03/03/12 22:25
本当にくだらなさすぎる&的外れっぽい質問なんですが・・・・・

MSのVC++とBorlandのC++builder

この両者に違いはありますか?
前者にはヴィジュアルのVがついてますがどっちも同じように見えます。
ぶっちゃけ、ボタン置いたりしてプログラム書く辺り同じような気がするのですが。
大学で後者を使ってますが、家でもやりたいのでどちらを買うか迷ってます。

恥ずかしい質問ですがネタではありませんので・・・よろしければお答えください。

614 名前:デフォルトの名無しさん :03/03/12 22:27
ずれてるし∧||∧

できれば使い慣れた(そこまで使いこなせないけど)後者を使いたいのですが
VC++とC++って違うものなのかそこのところさっぱり分からず困ってしまいました。


615 名前:デフォルトの名無しさん :03/03/12 22:47
>>614
恐らくスレ違いでしょうが、評判を聞くとBCCの方が上なようです。
(ANSI C++への準拠がBCCの方が上らしい。)

当方VC++しか触ったことがありませんが
VC++でも特に不自由ないです。

全然、参考になりませんな。スマソ。

616 名前:デフォルトの名無しさん :03/03/12 22:50
stdクラスはないんか。
んでは噂に聞いたテンプレートか。
テンプレートって便利ー?

617 名前:デフォルトの名無しさん :03/03/12 22:51
>>613
VC++はVBほど簡単じゃない(全然Visualじゃない)ですが、
C++BuilderはVB並に簡単です。

618 名前:デフォルトの名無しさん :03/03/12 22:52
>>616
stdは名前空間です

619 名前:デフォルトの名無しさん :03/03/12 22:58
Builderの方が、いろんなコンポーネントなど簡単に実装できます。Delphiライクです。
欠点はexeのサイズが異常にでかくなる(当然スタチィックリンクでの配布の話)ことと、
シェアが圧倒的に少ないのでソース再配布時にネックになるかも知れないこと。
VCはいろいろ面倒です。でも一般企業ではほぼVC使ってると思います。


620 名前:デフォルトの名無しさん :03/03/12 22:59
スタチィックはねーだろ、とセルフ突っ込み。

621 名前:デフォルトの名無しさん :03/03/12 23:17
「性的結合」と100人中72.8人は思っただろうな…
でも、書いちゃうやつはおれひとり〜

622 名前:614 :03/03/12 23:21
レスくれた方々、こんなくだらない質問に答えてくださって本当にありがとうございます。・゚・(ノД`)・゚・。
将来はSE志望なので、慣れるまで大変そうだけど頑張ってVC++で勉強したいと思います。

623 名前:デフォルトの名無しさん :03/03/13 12:02
オフスクリーンがうまくいかないんで、誰か教えてください。
まず、CStatic の派生クラスを作ってそのクラスの中で
裏画面を作成 → 表画面に転送ってな感じにしようと思ってるんだけど、
うまくいかないよー。 プログラムは以下!
// DrawGraph.h
class CDrawGraph : public CStatic
{
private:
HDC hMemDC,h;
HBITMAP hBmp,hOldBmp;
HPEN hPen,hOldPen;
HBRUSH hBrush,hOldBrush;
HRGN hRgn;
RECT rect ;
COLORREF m_PenColor , m_BackColor;
public:
SIZE m_Size ;

624 名前:続き :03/03/13 12:03

// DrawGraph.cpp
BOOL CDrawGraph::CreateGraph(RECT rect2) {
rect = rect2 ;
hMemDC = CreateCompatibleDC(NULL); // HDC のハンドル取得
hBmp = CreateCompatibleBitmap(hMemDC,m_Size.cx,m_Size.cy);// ビットマップの作成
hOldBmp = (HBITMAP)SelectObject(hMemDC,hBmp);
hPen = CreatePen(PS_SOLID,1,RGB(0,255,0));//ペンの作成
hOldPen = (HPEN)SelectObject(hMemDC,hPen);
hBrush = CreateSolidBrush(RGB(255,0,0));//ブラシの作成
hOldBrush = (HBRUSH)SelectObject(hMemDC,hBrush);
hRgn = CreateRectRgn(0,0,rect.right,rect.bottom);
SelectObject(hMemDC,hRgn );
if(IntersectClipRect(hMemDC,0,0,rect.right,rect.bottom) == ERROR)
MessageBox("失敗");
int iRes = FillRgn(hMemDC,hRgn,hBrush);
if(iRes == 0)
MessageBox("失敗");
if(FillRect(hMemDC,&rect,hBrush) == FALSE) // 背景を塗る つもり
MessageBox("失敗");
return(FALSE);
}
BOOL CDrawGraph::ToDraw(double dblData) {
CClientDC DC(this);
BitBlt(DC,0,0,rect.right,rect.bottom,hMemDC,0,0,SRCCOPY);
SelectObject(hMemDC,hOldPen); //ペンを戻す これは必要?
SelectObject(hMemDC,hOldBmp); //ビットマップを戻す これは必要?
return(FALSE);
}


625 名前:続き :03/03/13 12:04
んで、呼び出し方
//-------------------------------------
// main.h
//------------------------------
#include"DrawGraph.h"
DrawGraph m_Graph;
//-------------------------------------
// main.cpp
//------------------------------
DDX_Control(pDX, IDC_GRAPH, m_Graph );

void Cmain::main()
{
RECT rect ;
m_Graph.GetClientRect(&rect);
m_Graph.CreateGraph(rect);
m_Graph.ToDraw(100); //引数は将来拡張のため
}
void CMainteCurve::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case S_TIMER:
m_Graph.ToDraw(100);

break;
}
CDialog::OnTimer(nIDEvent);
}
こんな感じ。
だれかわかる人教えて!

626 名前:修正 :03/03/13 14:18
>>624の5行目くらいの
hBmp = CreateCompatibleBitmap(hMemDC,m_Size.cx,m_Size.cy);// ビットマップの作成

hBmp = CreateCompatibleBitmap(hMemDC,rect.right,rect.bottom);// ビットマップの作成

にかえてちょ。
m_Sizeは使ってなかったよ・・・。

これでよろしく!


627 名前:デフォルトの名無しさん :03/03/13 14:57
rectなのに幅を出さないで座標を指定しているようだが、
左上は0,0固定なのか?

628 名前:デフォルトの名無しさん :03/03/13 15:21
昔、DOSのソフトを作っていたのですが、WindowsプログラムでもFileの読み書き(アスキー)は
fstreamでするのですか?

629 名前:デフォルトの名無しさん :03/03/13 15:36
何を使うかは勝手なので好きなようにやればいい

630 名前:DirectX beginner :03/03/13 15:39
DirectXでゲームを作っているのですが
音を多重再生させるために音ごとにスレッドを立ち上げ
それぞれで ::CoCreateInstanceで
DirectSound8インスタンスを作ろうかと思っています。
(一つのアプリがいくつもスレッドを立ち上げそれぞれで
DirectX インスタンスを作成することになります)

こうするとプログラムが簡単になるのですが
この方針は問題ありますでしょうか?
ご指南よろしくおねがいします。

631 名前:デフォルトの名無しさん :03/03/13 15:42
>>627
ん?どゆこと?

一応左上は0,0固定です。

幅は出す方法あるの?

632 名前:デフォルトの名無しさん :03/03/13 15:45
↓話にならん。帰れ。

633 名前:デフォルトの名無しさん :03/03/13 16:02
↑俺のこと???

634 名前:デフォルトの名無しさん :03/03/13 16:02
↑そうお前だ。

635 名前:デフォルトの名無しさん :03/03/13 16:04
ぬるぽ

636 名前:デフォルトの名無しさん :03/03/13 16:08
>>623
単純に絵の出すプログラムじゃないの?
いや、OnPaint()に対応していないし、
OnTimerはいつセットしているの?
Main()で一発描くだけだと、一瞬描かれて
消去されているかもよ。

637 名前:デフォルトの名無しさん :03/03/13 16:12
HINSTANCE hInstance;
hInstance = (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
↑ダイアログプロシージャで上の行がエラー(警告)になります。

エラー(警告)内容:
   warning C4312: '型キャスト' : 'LONG' からより大きいサイズの 'HINSTANCE' へ変換します。

警告といっても気になるので、どこを修正すればいいでしょうか?
・・・これだけの情報では足りないでしょうか?

638 名前:デフォルトの名無しさん :03/03/13 16:19
>>636
FillRectで書いた四角を表示したいんです。
んで、OnPaintだと処理が遅くなるので使わないことにしてます。

OnTimerですが、実際にはmain()の一番下で呼んでいますが、
ここに書くの忘れました。すみません。

SetTimer(S_TIMER , 100 , 0);

S_TIMER は 1 です。

この状態で、DCに直接書けば当然書けます。

よろしくお願いします。

639 名前:デフォルトの名無しさん :03/03/13 16:31
>>637
ほらよ
#pragma warning(disable:4312)

640 名前:デフォルトの名無しさん :03/03/13 16:42
>>639
なんか強制的ですが、たしかになくなりました。
ありがとうございました。

641 名前:デフォルトの名無しさん :03/03/13 16:49
>>636
m_Graph.CreateGraph(rect);
でビットマップ作成した後、
WindowのMapModeとかView,Windowを変更してないよね。
とりあえず、速度は無視してOnPaintでBitBltを使って描けるか試してみたら。
あと、TopとLeftを0,0と仮定しているけど大丈夫だよね、変えてないよね。

642 名前:事故解決 :03/03/13 16:49
なんかhMemDC = CreateCompatibleDC(DC); // HDC のハンドル取得
hBmp = CreateCompatibleBitmap(DC,m_Size.cx,m_Size.cy);// ビットマップの作成
hOldBmp = (HBITMAP)SelectObject(hMemDC,hBmp);
hPen = CreatePen(PS_SOLID,1,RGB(0,255,0));//ペンの作成
hOldPen = (HPEN)SelectObject(hMemDC,hPen);
hBrush = CreateSolidBrush(RGB(255,0,0));//ブラシの作成
hOldBrush = (HBRUSH)SelectObject(hMemDC,hBrush);
hRgn = CreateRectRgn(0,0,rect.right,rect.bottom);
SelectObject(hMemDC,hRgn );
if(IntersectClipRect(hMemDC,0,0,rect.right,rect.bottom) == ERROR)
MessageBox("失敗");
int iRes = FillRgn(hMemDC,hRgn,hBrush);
if(iRes == 0)
MessageBox("失敗");
if(FillRect(hMemDC,&rect,hBrush) == FALSE) // 背景を塗る つもり
MessageBox("失敗");
(ちょこっと改造)を
BOOL CDrawGraph::ToDraw(double dblData) {
CClientDC DC(this);
の下に入れたらできたよ。
でも動きがちょっと不安定。

643 名前:デフォルトの名無しさん :03/03/13 17:38
リストビューコントロールにエクスプローラのようにファイル一覧を
表示させる方法がわかりません。
リストボックスならDirでできるようですが...

644 名前:デフォルトの名無しさん :03/03/13 18:35
ピクチャーコントロールにビットマップ(リソース上)を表示するにはどうすればいいですか?

645 名前:デフォルトの名無しさん :03/03/13 18:57
>>643
もしかして勝手にやってくれると思ってる?

646 名前:デフォルトの名無しさん :03/03/13 19:04
プロパティシートにアクセラレータつけて、
コントロールに普通の(Ctrl+とかじゃない)ASCIIキーを割り付けたいんだけど、
フォーカスがエディットコントロールとかにあるときはアクセラレータが効かずに入力できる
ようにしたいんです。
一応、こんなコーディングで出来たんですが、もっとスマートな方法ありますか?
BOOL CMySheet::PreTranslateMessage(MSG* pMsg)
{
CWnd* pFocus;
if((pFocus = GetFocus())) {
int nId = pFocus->GetDlgCtrlID();
if( nId != IDC_EDIT1 &&
nId != IDC_EDIT2 &&
nId != IDC_EDIT3 &&
nId != IDC_EDIT4 ) {
if(TranslateAccelerator(*this, m_hAccel, pMsg)) return true;
}
}
return CPropertySheet::PreTranslateMessage(pMsg);
}


647 名前:643 :03/03/13 19:37
>>645
自動でないことはわかっています。
それをする関数がわからないのです。

648 名前:デフォルトの名無しさん :03/03/13 20:23
>>647
そんな関数なんてあるのか?

649 名前:デフォルトの名無しさん :03/03/13 20:59
#include <iostream>
using namespace std;
int main()
{
cout << abc

return 0;
}
VC++.netでビルドすると
error C2065 定義されていない識別子
error C2593 operator 曖昧
error C2143 構文エラー
となってしまうのですが、何が足りないのでしょうか。

650 名前:デフォルトの名無しさん :03/03/13 21:01
;

651 名前:デフォルトの名無しさん :03/03/13 21:07
abcって何者だよ?

652 名前:デフォルトの名無しさん :03/03/13 21:20
>>649
g++では通るな

653 名前:649 :03/03/13 21:20
すいません。間違えました。
#include <iostream>
using namespace std;
int main()
{
cout << "abc";





return 0;
}
error LINK 2019 未解決の外部シンボル
fatal error LINK 1120 外部参照が未解決です。
と出て本文にはフォーカスがかかれないのですが、どういうエラーなのでしょうか?

654 名前:649 :03/03/13 21:21
すいません。フォーカスがかからないの打ち間違えです。

655 名前:デフォルトの名無しさん :03/03/13 21:23
リンクエラー
必用なライブラリをリンクしていないとか

656 名前:デフォルトの名無しさん :03/03/13 21:53

フォーカスがかかれないってどういう意味?
キーボードフォーカス?



657 名前:デフォルトの名無しさん :03/03/13 22:06
MFCアプリウィザードで基本クラスをCFormViewで作成しますた。
これを実行すると、クライアント領域がへこんでいまつ。
へこまないようにするにはどうやるのでつか?

658 名前:デフォルトの名無しさん :03/03/13 22:37
>>643
IShellView

659 名前:デフォルトの名無しさん :03/03/13 22:57
>>657
説明するの面倒だから見て。
ttp://techtips.belution.com/ja/vc/0059/

660 名前:デフォルトの名無しさん :03/03/14 00:55
>>未解決の外部シンボル

関数の名前を打ち間違えていることが圧倒的に多い。

661 名前:デフォルトの名無しさん :03/03/14 01:03
>>660
マルチを相手にする事は無い。しかも割れっぽいし。

662 名前:デフォルトの名無しさん :03/03/14 01:08
割れ?

663 名前:デフォルトの名無しさん :03/03/14 09:53
>>646もおねがいしますよぅ。

664 名前:デフォルトの名無しさん :03/03/14 10:32
質問!!
VC++で、在中させて、例えばメール欄に1と打つと
sageと自動的に出てくるようなプログラムを作りたいのですが…
文字をキーボード入力から出力させるインクルードファイルと
識別子がよくわかりません!!
教えてください〜!

665 名前:デフォルトの名無しさん :03/03/14 10:37
>在中させて
>在中させて
>在中させて

666 名前:デフォルトの名無しさん :03/03/14 12:00
常駐させて全てのウィンドウに適用させんの?
そんなんじゃまくせーだろ。
つーかそれデバイスレベルの問題だし、質問の意味がワケワカメ。

667 名前:664 :03/03/14 12:30
すみません、ど素人なもので(゚д゚;)
自分的にはキーボードマクロのようなものが作りたいわけなのです…。
自分の決めた文字列をうつと、その文字列が来ると用意しておいた、
自分の打ちこみたい文字列を読みこんで、エディットボックスに、
それを表示させたいのですが…。


668 名前:デフォルトの名無しさん :03/03/14 12:40
仮名漢に単語登録するのではいかんのか?

669 名前:664 :03/03/14 14:25
自分で作ってみたかったんれす(;д;)
プログラマ素人から一皮むけたいのれす(;д;)

670 名前:デフォルトの名無しさん :03/03/14 16:24
>>669
Windows アプリの駆動方式を丸呑みに把握しろ。
そうすれば素人からは脱却したと言えるし、そもそも 664 のような質問を人に
しなくなる。

671 名前:デフォルトの名無しさん :03/03/14 19:03
>>664
色々考えてみたんだが、方針としてはエディットコントロールを
サブクラス化すればいいんかねぇ。

具体的には、SetClassLong() で、エディットコントロールのウインドウ
プロシージャのアドレスを独自のプロシージャにフックすれば
いいのかな?



672 名前:デフォルトの名無しさん :03/03/14 19:55
>>669
人から聞いてやっている奴が一皮剥けるかよ( ´,_ゝ`)プッ

673 名前:デフォルトの名無しさん :03/03/15 00:19
>>672
まだ自分で素人といってるんだから長い目で見てやれよ。
これをきっかけにプログラミングの楽しさを知って天才プログラマーになるかもしれんやんけ。

674 名前:デフォルトの名無しさん :03/03/15 02:13
--====・====--    --====・====--

675 名前:デフォルトの名無しさん :03/03/15 03:14
恥ずかしながら、変なところではまってしまいましたので、質問です (VisualC++6.0)

VC++でダイアログベースのクラスをClassWizardで作って保存して、やれやれと思ったらクラス名の先頭に”C”を付けるのを
忘れていることに気が付きました・・・
いつもなら、クラス追加前に保存しているので、また修正前からやり直すことが出きるのですが、今日に限って一気に修正し
てクラス追加後に保存しちゃったので後戻りできませんでした

その後、ソース中のクラス名に手動で”C”を追加したものの、ClassWizardで見るとクラス名に”C”が付いていません・・・
どうすれば、ClassWizardで表示されるクラス名を修正することができるのでしょうか

676 名前:デフォルトの名無しさん :03/03/15 03:23
>>675
その習慣ヤメレバ?
ファイル名とクラス名は同じにする

677 名前:デフォルトの名無しさん :03/03/15 03:28
>>675
*.clwを消す

678 名前:675 :03/03/15 03:38
>>677
サンクスです
それでクラス情報が全て消えるようですね ぐぐって、ついさっき知りました

ここのサイトも参考になりました AAA→CAAA一括置換後、ClassWizard開くという方法でも修正できるらしい・・・!?
ttp://www.page.sannet.ne.jp/mtoga/lang/cv/bih-m_04.htm

>>676
クラス名にはCを付けよと言われてるので・・・ ClassWizardでクラス作成する時に限って”C”を良く付け忘れます

679 名前:デフォルトの名無しさん :03/03/15 03:56
ハンガリー人の書き方ってまだ根強く残ってるのか・・・
たとえばCascadeって言う名前のクラスをClassWizardで作って
ファイル名がascadeとかになった時には腹が立った。
(設定画面でちゃんとファイル名の欄も変えればできるけど)
それ以来ClassWizardでクラス作ることなくなったなあ
あの暗号のようなIncludeGuardもうっとうしいし

680 名前:デフォルトの名無しさん :03/03/15 04:00
>>679
自作のWizard使え

681 名前:デフォルトの名無しさん :03/03/15 04:15
うって変わってVC.NETはシンプルなコード吐いてくれる
MSも方針転換かな

682 名前:デフォルトの名無しさん :03/03/15 04:20
>>681
悪くいうと、あちこち機能が削られてる。

683 名前:デフォルトの名無しさん :03/03/15 10:56
C言語はjavaやらと違ってハンガリアン使うメリットあんまりないよな。
関数宣言の仮引数が多少見やすいくらいだ。
てゆーかMFCとかで採用してる型名を先頭につけるだけ、
ってのは本物のハンガリアンとは違うんだろうが・・・

684 名前:デフォルトの名無しさん :03/03/15 11:11
アジア人ならモンゴリアンだろ

685 名前:デフォルトの名無しさん :03/03/15 11:55
CreateWindowEx でWS_VISIBLEを指定して作成し、
後からVISIBLEを消す(コントロールを消す)にはどうすればよいのでしょう?
何となく、SendMessageな感じですが使い方が。

686 名前:デフォルトの名無しさん :03/03/15 12:57
>>685
SetWindowLongはどうですか?


687 名前:デフォルトの名無しさん :03/03/15 12:59
ShowWindow(SW_HIDE)で消えないの?
いや知らんけど。

688 名前:デフォルトの名無しさん :03/03/15 13:35
SetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE) & ~WS_VISIBLE)

689 名前:デフォルトの名無しさん :03/03/15 14:38
ありがとうございます。
消すことはうまくいきました。
ところが、
#define IDC_EDIT_RIGHT WM_USER+1

HWND hwnd;
hwnd= ::GetDlgItem(hDlg, IDC_EDIT_RIGHT);
CreateWindowEx(..);
これがうまくいきません。
CreateWindowExで作ったコントロールはこの方法では取得できないのでしょうか?



690 名前:デフォルトの名無しさん :03/03/15 14:51
カンケーないけど。

#define IDC_EDIT_RIGHT WM_USER+1
↑なぜIDにWM_USERが出てくるの?w


691 名前:デフォルトの名無しさん :03/03/15 14:54
>>689
GetDlggItemの返り値がNULLになるの?



692 名前:デフォルトの名無しさん :03/03/15 14:55
>>689
CreateWindowEx で作ったってことは、ID指定のところで
IDC_EDIT_RIGHT を指定して作成したのでしょうか?



693 名前:デフォルトの名無しさん :03/03/15 14:56
そうです。指定して作ったのですが、NULLが帰るのです。

694 名前:デフォルトの名無しさん :03/03/15 15:04

同じ意味ですが、

hwnd = GetWindowLong(hDlg, GWL_ID);

ではどうですか?



695 名前:デフォルトの名無しさん :03/03/15 15:06
>>694
あ、これはちょっとナシ。(w


696 名前:デフォルトの名無しさん :03/03/15 15:21
とりあえず CreateWindowEx の記述をコピペしてみたら
どうでしょうか?



697 名前:デフォルトの名無しさん :03/03/15 16:23
CreateWindowEx(0, "EDIT", "",
WS_VISIBLE | WS_CHILD | WS_VSCROLL | PBS_SMOOTH | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN,
170, 40, 265, 100, hDlg, (HMENU)IDC_EDIT_RIGHT, NULL, NULL);

698 名前:デフォルトの名無しさん :03/03/15 16:36
>>689
> #define IDC_EDIT_RIGHT WM_USER+1
どうでもいいことだけど、なんか違和感がある。

699 名前:698 :03/03/15 16:37
あ、激しく外出か。スマソ。

700 名前:デフォルトの名無しさん :03/03/15 16:58
>>697
実際に試してみようかと思ったけど、面倒でやめた。(w
MFC AppのプロジェクトだとMFCすぐ使えるんだけど、
Win32 Appのプロジェクトで使うのに、何をinclude したら
いいのかわからんかった。(汗
MessageBoxでリンカエラー出るし・・。

MSDNちゃんと読めば書いてあるのかな?



701 名前:デフォルトの名無しさん :03/03/15 17:12
>>697
MFCプロジェクトで試してみましたが、ちゃんとハンドルが
返って来るみたいですよ。
子IDは 1234 で試してみました。
子IDを数値にして試してみてはどうでしょう?


702 名前:デフォルトの名無しさん :03/03/15 17:51
ほんとだ!定数だと動きますね。
WM_USERって何なんでしょう?

703 名前:デフォルトの名無しさん :03/03/15 18:59
>>702
#define IDC_EDIT_RIGHT (WM_USER+1)
こうしないと駄目なんじゃないの?


704 名前:デフォルトの名無しさん :03/03/15 19:06
なるほど

705 名前:デフォルトの名無しさん :03/03/15 19:09
>>701ですが。

>>703
当たりっぽい。

#define SUB_WINDOW_ID (WM_USER+1)
これは問題なし

#define SUB_WINDOW_ID WM_USER+1
これはダメ

でした。

カッコがいるみたいですね。どっちも
エラーはでないけど、後者はどういう風に
解釈されるんだろ?



706 名前:デフォルトの名無しさん :03/03/15 19:21
マクロは置き換えだからな。
交換法則が成り立つ場合は、いいがそうでない場合はとんでもない結果に
なることがある。…っと C の基本をもっともらしく言ってみるテスツ。

707 名前:デフォルトの名無しさん :03/03/15 19:36
もはや算数です

708 名前:デフォルトの名無しさん :03/03/15 20:06
>>705
SUB_WINDOW_ID * 2
とした場合に(ありえないけど)
WM_USER + 1 * 2
と展開されてしまうので、( )をつけるのは常識だと思っていたのだが。

709 名前:デフォルトの名無しさん :03/03/15 20:11
というかいまどき定数にdefineを使うな、と。

710 名前:デフォルトの名無しさん :03/03/15 20:21
じゃあconst?

711 名前:デフォルトの名無しさん :03/03/15 20:29
InternetAPI で、FTPクライアントを作成しています。Winsockは使っていません。
特定のファイルのパーミッションを知りたいのですが、方法がわかりません。
InternetAPIの中にそういうAPIかなにかがあるのでしょうか?
もし無い場合、FtpCommandでなんとかならないでしょうか?



712 名前:デフォルトの名無しさん :03/03/15 20:33
IDならdefineでいいでしょ。

どうでもいいことだけどWM_USERはユーザ定義メッセージに使う値だからね。
IDとメッセージとごっちゃになってるだろ。
たぶん基本的に混乱してると思うよ。

713 名前:デフォルトの名無しさん :03/03/15 20:33
>>711
FTPプロトコルでわかるはずだが・・・

714 名前:デフォルトの名無しさん :03/03/15 20:35
>>711
RFCを読むことをオススメします

715 名前:デフォルトの名無しさん :03/03/15 20:38
RFCなんて素人が読んでわかるものじゃない。
そんなもの読まないように。
基本的なFTPコマンドを解説サイトなどで調べればわかる。
あとはMFCのFTPクラスにまかせっきりで大体のことは出来る。

この板は好んで難しいこと言いたがるヤツいるから惑わされないようにね。

716 名前:デフォルトの名無しさん :03/03/15 20:56
俺は玄人だが、読んでも分からなかった<(`^´)>

717 名前:デフォルトの名無しさん :03/03/15 20:58
オモシ

718 名前:デフォルトの名無しさん :03/03/15 20:59
定数はdefineではなくconstで定義すべき

719 名前:デフォルトの名無しさん :03/03/15 21:00
>>718
const信者死ね

720 名前:デフォルトの名無しさん :03/03/15 21:02
>>714
RFCにはlsで出力される形式については記述されていない
よってパーミッションを得る方法はRFCを読んでも無駄
読んでいないのがバレバレな無知をさらす暇があったら
お前がRFCを読め

721 名前:デフォルトの名無しさん :03/03/15 21:03
>>720
こりゃ一本取られましたな。ははは・・・・
死ね(怨)

722 名前:デフォルトの名無しさん :03/03/15 21:18
春祭りですか?

723 名前:デフォルトの名無しさん :03/03/15 21:20
RFCを読むことをオススメします


724 名前:デフォルトの名無しさん :03/03/15 22:05
>>718
C++になってから、よく言われるけど、どうも
まだ慣れないんだよね。^^;

>>719
なんか注意点・欠点なんかあります?



725 名前:デフォルトの名無しさん :03/03/16 00:08
constってメモリ食うのか?一応変数だからさ。どうなのよ?

726 名前:デフォルトの名無しさん :03/03/16 00:14
どんな定義をしようとどこかのメモリーを食わなければ存在できない
どこにとられるかは処理系依存

727 名前:デフォルトの名無しさん :03/03/16 00:26
普通に考えて、constは一箇所、defineは出現箇所分メモリ食うんでないの。

728 名前:デフォルトの名無しさん :03/03/16 00:27
#define VER "0.04e"の代わりとして、

const char* VER = "0.04e";
const char[] VER = "0.04e";

どっちが(・∀・)イイ?

729 名前:デフォルトの名無しさん :03/03/16 00:27
>>727
コンパイラが勝手に最適化するんじゃないの?

730 名前:デフォルトの名無しさん :03/03/16 00:52
ツールダイアログのエディットボックスで
リターンキーを押した時の処理を追加したいのですが
やり方がわかりませぬ.おせえぇて

731 名前:デフォルトの名無しさん :03/03/16 00:52
>>729
constはわからんけど、defineを最適化ですか?
つーと、1箇所にメモリを確保してポインタで参照してくれる???
副作用でそうだけどなー、たとえば、変な所で値を置き換えられたりして。。。
constは、書き換え禁止だからそんなことは無いけど。

732 名前:質問 :03/03/16 00:58
簡易株価チャートを作ってみたいのですが、ヤフー等からデータを取込んだりする方法は
どこで学んだら(調べたら)いいのですか?

733 名前:デフォルトの名無しさん :03/03/16 01:29
文字列が半角の数字だけで構成されているかどうかを調べるいい方法
ないですか?

734 名前:デフォルトの名無しさん :03/03/16 01:31
「フフフフ」ってなんですか?VC++のバグでしょうかね?
VC++6.0ですSPは当ててませんが 当てると直りますかね?

735 名前:デフォルトの名無しさん :03/03/16 01:32
>>732
まずソケットを使ってインターネットからHTMLファイルを
ダウンロードして見れ。できたらまた戻ってこい。


736 名前:デフォルトの名無しさん :03/03/16 01:33
>>731
むしろ逆。
#define の場合、文字列リテラルを除いて即値に展開される事が多いので、そもそも
書き換える事が不可能。
const の場合は、プログラムミスにより const を外したポインタアクセスを行う
殊によって書き換えができる。
もちろん、const でも可能な限り即値展開される。

737 名前:デフォルトの名無しさん :03/03/16 01:33
>>732
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=MFC+%83%5C%83P%83b%83g&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

738 名前:デフォルトの名無しさん :03/03/16 01:36
>>727
const の実装が 1 箇所だったとしても、そこには結局アドレス指定してアクセス
するので、整数の場合はコードサイズは変わらない事が多いし、何より遅い。

739 名前:デフォルトの名無しさん :03/03/16 01:39
>>734
それはお前のバグだ。
VC++ はデバッグモードでコンパイルすると、スタック変数は 0xCC で、
malloc 領域は 0xCD で塗りつぶし、それらが未初期化のまま使われている
事をプログラマに伝える。

参考スレ
フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ
http://pc.2ch.net/test/read.cgi/prog/1045831669/

740 名前:デフォルトの名無しさん :03/03/16 01:41
>>733
すぐに思いつくのは、for で回して isdigit()

741 名前:デフォルトの名無しさん :03/03/16 02:15
>>733
STL使えるなら isdigit だな

742 名前:デフォルトの名無しさん :03/03/16 02:24
>>733
if ( strspnp( pszNumber, "0123456789" ) == NULL )
{
//全て半角数字
}

743 名前:デフォルトの名無しさん :03/03/16 03:01
> strspnp

ナニソレ?

744 名前:デフォルトの名無しさん :03/03/16 03:07
>>727
マクロはコンパイル時に展開されるんとちゃうん?
だからマクロを挿入したとこにマクロの内容が書かれるのと同じと思ってる
ちがうん?

745 名前:デフォルトの名無しさん :03/03/16 03:25
SpanIncluding

746 名前:デフォルトの名無しさん :03/03/16 05:27
>>744
その通り。
即値が埋め込まれるだけ。

747 名前:デフォルトの名無しさん :03/03/16 07:11
>>744
>>736

748 名前:742 :03/03/16 11:04
>743
_strspnp ダタ

749 名前:デフォルトの名無しさん :03/03/16 12:29
チェックボックスのチェックを検出すなるにはいかにせよと?

750 名前:デフォルトの名無しさん :03/03/16 12:39
>>749
GetCheck()


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