★初心者にVisual C++を教えるスレ★ Part4
2 :
デフォルトの名無しさん :03/02/02 23:34
990 名前:デフォルトの名無しさん 投稿日:03/02/02 23:17 めちゃ初歩的な質問です。 ダイアログベースで作成しているのですが、 OKボタン、CANCELボタンを無効にして新しいボタンを2つ作成し、 そのボタンにOK、CANCELボタンの役割を持たせるように プログラムしました。 その後、エディットボックスを追加したのですが、 IDCが追加されず、2つのボタンだけのIDCだけが表示されます。 どうやったらエディットボックスのIDCを追加することができますか?
>>994 無理ってことですか?
どうやってメンバ変数を作成できますか?
5 :
デフォルトの名無しさん :03/02/02 23:36
>>2 リソースエディタでエディットボックスを追加したら、
クラスウイザードでもIDC_EDIT1が選択できるように
なりましたが、そちらではなりませんか?
>>5 すみません、リソースエディタとはどこのことを指しておりますか?
よくわからなくて申し訳ないです。
ソースに直接書いているのですか?
8 :
デフォルトの名無しさん :03/02/02 23:41
>>6 ありえないとは思いますが、
クラスウイザードではC***Dlg というダイアログクラスの
派生クラスを選択してますよね?
9 :
デフォルトの名無しさん :03/02/02 23:43
>>7 左側のリソースビュー
--> Dialog
--> IDD_TEST_DIALOG
をダブルクリックすると表示されるエディタです。
これ使ってないんですか?
10 :
前スレ990 :03/02/02 23:44
>>8 その通りです。
デフォルトで作成されたものです。
クラスは一切追加しておりません。
11 :
前スレ990 :03/02/02 23:47
>>9 ダブルクリックをしても何も動作しないのですが、
なにか設定がいりますか?
いいかげんあきらめれ。
13 :
デフォルトの名無しさん :03/02/02 23:49
>>11 どうやってボタン追加したんですか?
CButtonクラスでも使って手作業で追加したの?
yakyu.c d:\tomoki\c言語\新しいフォルダ (3)\yakyu.c(96) : warning C4700: 値が割り当てられていないローカルな変数 'anserA1' に対して参照が行われました。 d:\tomoki\c言語\新しいフォルダ (3)\yakyu.c(102) : warning C4700: 値が割り当てられていないローカルな変数 'anserA2' に対して参照が行われました。 リンク中... LIBCD.lib(crt0dat.obj) : error LNK2005: _exit はすでに yakyu.obj で定義されています Debug/yakyu.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました link.exe の実行エラー
15 :
デフォルトの名無しさん :03/02/02 23:51
>>11 プロジェクトは MFC AppWizard (exe) ですよね?
16 :
前スレ990 :03/02/02 23:52
>>13 コントロールから追加しました。
手順としては、新規作成から、ダイアログベースを選択して作成。
OK、キャンセルボタンを一旦削除して、ボタンを2つコントロールから追加。
その後、エディットボックスを追加です。
エディットボックスのプロパティでは、IDC_EDIT1は表示されますが、
クラスウィザードでは、表示されないのです。
17 :
前スレ990 :03/02/02 23:52
19 :
デフォルトの名無しさん :03/02/02 23:56
>>16 IDC_BUTTON1 はクラスウイザードで
選択できたの?
20 :
前スレ990 :03/02/03 00:00
>>19 できました。
>>18 すみません。
OSは2000でVC++6.0ですが、同じですか?
22 :
デフォルトの名無しさん :03/02/03 00:02
>>16 それとおなじことやリマシタが、表示されました。
つわけで、やりなおせ。
23 :
デフォルトの名無しさん :03/02/03 00:02
24 :
前スレ990 :03/02/03 00:04
>>22 >>23 一から作成し直しましたら
無事できました。
原因不明ですが、とりあえず解決しましたのでこのまま続けていきます。
皆様ありがとうございました。
25 :
デフォルトの名無しさん :03/02/03 00:07
>>20 vc++.netなんで・・・
netだと、ダイヤログベースでプロジェクトで立ち上げると
まず、リソースエディタの画面になるので、VC6は知りません。
VC6でも、リソースヴューのとこでdailogフォルダに対して
dialogの挿入すればリソースエディタ画面になるのじゃないんですか?
27 :
デフォルトの名無しさん :03/02/03 00:12
なんだよ 解決かよ・・・ なら、質問 XPでVC++.NETでコーディングしてると たまに、落ちやがる ビルドとかの最中じゃなくて、単にコードを手打ちしてるときに・・・ 回避策教えてくれ・・・
28 :
デフォルトの名無しさん :03/02/03 00:14
>>27 OSクリーンインストール+VC++.NET再インストール
29 :
デフォルトの名無しさん :03/02/03 00:16
>>28 やだ!!
XP再インスト→MSに電話
VC再インスト→地獄のように時間かかる
できるかそんなこと
30 :
デフォルトの名無しさん :03/02/03 00:27
VC++はもう卒業しようよ。 十分苦しんだだろ? .NetがいやならDelphiでいいじゃないか。
>>29 >MSに電話
確かにそれやだな。
やっぱ2000にした方がいいんでないか?
32 :
デフォルトの名無しさん :03/02/03 00:28
>>25 VC++6.0でも同じでっせ。
ダイアログベースプロジェクトなら最初に
リソースエディタがでますよ。
33 :
デフォルトの名無しさん :03/02/03 01:38
すいません質問です。複数枚のビットマップファイルを連続して読みこむ方法ってありませんでしょうか? CBitmap newBitmap; newBitmap.LoadBitmap(IDB_IMG); をこんな感じにしたいのです。 for(count=0; count<10; count++) { char filename[256]; CBitmap newBitmap[10]; ssprintf(filename,"%s%d.%s","temp",count,"bmp"); // "temp0~10.bmp"にしたい newBitmap.LoadBitmap(filename); } 何かいい方法はないでしょうか?
すいません もう一つビットマップ関連の質問で… 質問内容はビットマップの情報を2次元配列にうまく格納できないことです。 やったのは、320×240のビットマップを読みこみ、GetPixcelで1ピクセルごとにRGBを取得。 それらをint型の配列gazou[320][240]に for(i=0; i<240; i++){ for(j=0; j<320; j++){ if(r==255 && g==0 && b==0){ gazou[i][j]=1; continue; } else if(r==0 && g==255 && b==0){ gazou[i][j]=2; continue; } else if(r==0 && g==0 && b==255){ gazou[i][j]=3; continue; } } } として格納したのですが、これらの配列にちゃんと値が入っているかを確認するために、テストプログラムを組んだのですが x=y=0; for(i=0; i<240; i++){ for(j=0; j<320; j++){ if(gazou[i][j]==1){ pDC->SetPixcel(x+j,y+i,RGB(255,0,0)); continue; } else if(gazou[i][j]==2){ pDC->SetPixcel(x+j,y+i,RGB(0,255,0)); continue; } else if(gazou[i][j]==3){ pDC->SetPixcel(x+j,y+i,RGB(0,0,255)); continue; } } } としたのに、表示された画像は元の画像と同じように表示されないのです。何故か画像の右半分が表示されず、その部分には左半分のが繰り返し表示されてます… すいませんが、この問題についても解決策をお願いします…
すいません!! gazou[320][240]でなくgazou[240][320]でした…
36 :
名無し@沢村 :03/02/03 02:24
めっちゃくちゃ初心者な質問なんですが・・・ DirectX SDKを導入して、一応組めるようにはなったんですけど DirectXの関数若しくは、構造体等を書いた時に表示される 入力補助機能(というのでしょうか?)を出すようにするには どうすれば良いのでしょうか?
>>36 サンクスです!
ところで2次元配列でgazou[1000][1000]って書くのってメモリ的にやばい気がするんだけど、みなさんはどう思われますか
また大量の配列を確保するとき、どうすればいいのか教えてもらえませんか?
39 :
デフォルトの名無しさん :03/02/03 19:01
学校の授業で配列とか関数とか基本みたいなのはある程度学んだんですよ。 でもっといろんな事勉強したいのですが何をしたらいいのか解かりません。 助けてください。 あとオススメの参考書かなんかあったら教えてください。
42 :
デフォルトの名無しさん :03/02/03 19:43
>>41 でも、初めてMFCとかやると面食らう
SDKでも面食らう
WINアプリ設計の面倒さを割り切れるようにならないと
何していいかわかんないというのはわかる気がする
クラスはやってません。
これからやるのがよかですか?
>>41 いや、どんなプログラムを組んだらいいのかさっぱりなんです。
44 :
デフォルトの名無しさん :03/02/03 20:41
switch文の中で、宣言して代入ってできないんでしょうか? // エラー UINT j = DT_TABSTOP | 0x00002F00; DrawText(hdc, str, -1, &rect, j); d:\temp\winapitest001\winapitest001.cpp(92) : error C2360: 'j' の初期化が 'case' ラベルによって行われませんでした。 d:\temp\winapitest001\winapitest001.cpp(85) : 'j' の宣言を確認してください。 //これだとOK UINT j; j = DT_TABSTOP | 0x00002F00; DrawText(hdc, str, -1, &rect, j); どうして前者だとエラーになるのでしょう? 文法的には問題なさそうなんですが。
45 :
デフォルトの名無しさん :03/02/03 20:50
>>43 VCはMSが用意したクラスにつぎたして
コードを書いてく、代物なんで、クラスはVCの基本すぎる基本だと
VCにしろ、なんにしろ、まずはHelloWorldを表示するのから
はじめては・・・
VCではウィンドウにHelloWorld表示するのもえらく難儀やけど・・・
なんとかハンドラがどうのこうのと
わけわかりません・・・
46 :
デフォルトの名無しさん :03/02/03 20:50
>>42 MFCではそんなに面食らわないだろ。
簡単なアプリなんとなく出来ちゃうじゃん。
>>46 MFCどこにコードを入れていけばいいのか
初心者にはサパーーーーーリ
です・・・・
48 :
デフォルトの名無しさん :03/02/03 21:00
でるふぁいとか言う奴のほうが敷居は低いのかねえ・・・よう知らんけど。
Cとかでプログラムの経験があると 逆にMFCは面食らうと思う 何も考えないでウイザードで 適当にプログラム作って遊ぶとよいよ
わしCでは7~8万行くらいDOSプログラミングしますた。 MFCで面食らってまつ。 なんかおすすめの書籍とかないでつか?スレ違い?
51 :
デフォルトの名無しさん :03/02/03 21:29
52 :
デフォルトの名無しさん :03/02/03 21:29
53 :
デフォルトの名無しさん :03/02/03 21:32
>>50 「Windowsプログラミングの基礎知識」 柏原正三 アスキー
本当に基礎の基礎なんだけど、MSDNで自習できる
程度にはなります。
ネタと思われるかとオモタが、みなさんありがとう。
ちなみにC++の知識は、ほとんど無いに等しいです。
>>53 明日買います。
>>54 今から見てきます。
>>55 ネタとわかっていてマジレスしてやったんだよ。
59 :
デフォルトの名無しさん :03/02/03 22:01
60 :
デフォルトの名無しさん :03/02/03 22:06
>>58-59 この辺が自分が学習に使った本で、この板でも
わりと評価の高い本です。
あ、
「憂鬱なプログラマのためのオブジェクト指向開発講座」
著者: Tucker!
出版社: 翔泳社
ISBN: 4-88135-619-4
C++をやるなら、これも1冊読んでおいたほうがいいと思います。
順番としては A -> 「憂鬱」 -> B -> C -> D -> F -> E が良いんじゃないかと個人的には思います。 これでも例外処理とかSTLプログラミングが弱いので、 漏れ自身はその辺をカバーしている本を読まなくちゃと 思っているのですが。(Exceptional C++を注文中)
マジかい!ってくらいお金かかりそうでつね。 わしは、TURBO-Cデビューなんだが、昔は付属の立派なマニュアル ユーザーズガイド671ページ リファレンスガイド823ページ と入門書3冊程度で、入門段階はクリア出来たような記憶があるよ。 脳みそ柔らかくするのがたいへんそうでつ。冬の夜。30歳。
おまえら書籍スレに誘導されてるだろうに・・・
>>62 Cの時代から考えると、Windows自体のファンクションコールの数も
然ることながら、オブジェクト指向、Genericプログラミングなどの
新しい概念が次々と出てきましたからねぇ。C++のライブラリやMFC
などは、これらの概念を元に作成されているんで、なかなか敷居が
高いですね。
65 :
デフォルトの名無しさん :03/02/03 23:26
なんでMSDNはちょっと突っ込んだ記事を調べようとすると 英語ドキュメントしかないんだろう・・・。(-_-)
66 :
デフォルトの名無しさん :03/02/03 23:32
MSDNは使ってる内にサブタイがおかしくなるのはなぜだろう・・・。
俺はせめてリンク切れを無くして欲しい
68 :
デフォルトの名無しさん :03/02/04 00:25
リンク切れもイヤだけど、エンコードがおかしくなるページがあるんだけど、 どうやって直したらいいんでしょ?
エンコードはメニューにあるっしょ。つーかこれVCじゃなくてIEの使い方だな。
70 :
デフォルトの名無しさん :03/02/04 02:31
ダイアログでタブボタン押した時,移動する順番は変えられますか?
タブオーダーで変えられる。
ありがとうござい増した
ダイアログボックスの背景色を変更するにはどうすればいいのですか?
75 :
デフォルトの名無しさん :03/02/04 17:42
>>69 エンコードの切り替えがMSDNのメニューにないんですが。
すみません。 前スレで質問させてもらったのですが、 流されてしまったのでもう一度書かせてください。 最近VisualStudio.Netを買って VisualC++の勉強をはじめました。 シリアルポートを使った通信プログラムを作るのが目的です。 GUIの作り方とかファイルの入出力とかは参考書などによく載っているので、 それを読みながらなんとか進めているのですが、 シリアル通信については言及している本も見つからないし ヘルプを見ても良く分からないしで困っております。 シリアル通信はどのように実現すればよいのでしょうか。 関数というかコマンドのようなものが用意されているのでしょうか。
78 :
デフォルトの名無しさん :03/02/05 00:22
>>77 MSDNの、
Platform SDK
-> Windows Base Service
-> Files and I/O
-> Communication
はどうですか?
hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);
サンプルにこんなのが載ってる。
日本語ドキュメント欲しいですねぇ。誰かPlatform SDKの全訳
プロジェクトやらんですか?
>>77 CreateFile()とかで"COM1"を開けば?
あとは SetCommState() WriteFile() ReadFile() あたりか。
被った(´Д`;
>>75 ページを右クリックして 「プロパティ」 出して、表示されたアドレスを
コピペで IE に貼り付けろ。
後は煮るなり焼くなり。
82 :
デフォルトの名無しさん :03/02/05 00:29
>>81 なるほど。今度遭遇したら、それでやってみまふ。
>>77 > シリアル通信については言及している本も見つからないし
ピアソンの「Win32システムサービスプログラミング」
みなさんありがとうございます。
本屋に行ったりネットで調べたりしても全然分からなかったのに
(ただ単に調べ方が悪いのですが)
あっという間にこんなに回答をいただけて
ちょっと驚いているというか感動しています。
>>78 >>79 ありがとうございます。
ヘルプの検索において「hcom」で検索したらそのサンプルを見られたのですが、
目次からだと「Platform SDK」がどこにあるのか分かりませんでした。
「MSDNライブラリ」の下にあるんですよね?
今後の参考のために教えてください。
>>83 早速メンバー登録してみました。
いくつかファイルも落としました。
参考にさせていただきます。
ありがとうございます。
>>84 なるほど。
私は「シリアル通信」という言葉がタイトルに入った本を探してしまっていました。
考えてみればハードウェア的なことを抜きにしたら
シリアル通信だけで一冊の本にはならないですよね。
馬鹿でした。勉強させてもらいます。
>>85 ああ、唯一の日本語だ。
やはり、CreateFileやReadFileなんかを使って行うわけですね。
道筋が見えてきた気がします。
ちょっと何か調べようとすると
すぐ英語にぶち当たってしまうんですよね。
私は英語が苦手なんでそのたびにくじけそうになってしまいます。
でもそんなことも言っていられないですね。
88 :
デフォルトの名無しさん :03/02/05 20:33
質問です。コンパイルするとエラーが出ないのにプログラム実行すると LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/gagaga.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー というエラーが出てしまいます。誰かアドバイスを。。。
89 :
デフォルトの名無しさん :03/02/05 20:34
すいません。sage進行みたいですね。ageてしまいました。
91 :
デフォルトの名無しさん :03/02/05 20:54
Windowsでも動くの?
(゚Д゚) ハァ?
94 :
デフォルトの名無しさん :03/02/05 22:05
質問します。mfcのダイアログベースで、 2つのエディットボックスに数字を入力してボタンを押すと、 それらを計算(加減乗除)して出力するプログラムを作成していますが、 ボタンを押しても2つの数字が読み込めません。 今のところ以下のように書いています。 void CGUItestDlg::OnButton1() { double answer; answer=keisan.calc(m_num1,m_num2,0); } m_num1、m_num2はClassWizardのメンバ変数の追加で、 カテゴリは「値」、変数のタイプは「double」としました。 どのようにすればよいのか教えてください。
>>93 動くんですね! これで安心して買えます!
ありがとうございました!!
Win3.1だったりして……
>>94 みたいな質問定期的に出てくるな。
どっかの宿題なのだろうか。
100 :
デフォルトの名無しさん :03/02/05 22:47
ダイアログボックスベースでプログラムを組んでいます。 Staticコントロールを二つ付けていますが、どちらか一方だけの 色を白にしたいんですが、上手くいきません。 以下に示したものでは二つとも白になってしまいます。 何方かご教授お願いいたします。 HBRUSH CTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // スタティック用のブラシを作成 CBrush myStatic; myStatic.CreateSolidBrush(0xFFFFFF); //文字の背景色を設定 pDC->SetBkColor(0xFFFFFF); if(nCtlColor==CTLCOLOR_STATIC){ // スタティックコントロールの場合 return myStatic; // myStaticはあらかじめ作成されたCBrushオブジェクト } return hbr; }
101 :
デフォルトの名無しさん :03/02/05 22:48
すいません、教えてくださいな。 ダイアログ上のEdit領域で文字入力中にTABキーを押すと、フォーカスが次のボタン等に移ってしまうのですが、フォーカスを移動させずにTABをEdit領域に入力することって出来るのでしょうか?
>>100 スタティックコントロールに別々のIDをつけて、
OnCtlColor内でIDを区別する
>>102 有難うございます。。。
あかん。。。俺が自分で色々考えながらVC++でプログラムを組むのは
ちょっと早すぎたのか・・・・・全然解らん・・・。
基礎からやり直そうっと・・・・(泣く
105 :
デフォルトの名無しさん :03/02/06 00:09
アスキーファイルを読みたいので、次のようにしたのですが読めません・・ Serialize(CArchive& ar)ですどこか間違ってますかね・・? CFile* fp = ar.GetFile(); int i; double *tmp; tmp = CCC; for ( i=0; i<IMAGEDATA_SIZE; i++, tmp++) { ar.ReadString( tmp, sizeof( double ) ); } CCCはdouble型でデータを格納する場所です IMAGEDATA_SIZEは256*256です データの中身は9.352675144624524e+001、こんな感じのが256*256あります doubleでは無理ですよね・・
マルチする前にMSDNでReadStringの宣言確認すれ。
初心者なので答え、教えてください doubleつかえないのはわかってます
解決しました。ありがとうございました。
109 :
デフォルトの名無しさん :03/02/06 03:41
何もしていないが・・・
解決しました。ありがとうございました。
>>101 WM_GETDLGCODE DLGC_WANTTAB
>>101 色々考えてみたんですが、エディットコントロールのウインドウプロシージャ
をフックするしかないみたいです。
(1) 新しいウインドウプロシージャを定義するので、ダイアログクラス
のC++ファイルのはじめに
#include <windows.h>
LRESULT CALLBACK NewEditProc (HWND, UINT, WPARAM, LPARAM);
とやります。MFCウイザードのデフォルトだと、後述する
CallWindowProc()が使えないみたいなので、windows.hも
インクルードします。
(2) エディットコントロールのコントロール自体を操作する
必要があるので、クラスウイザードでコントロールのオブジェ
クトも作成しておきます。
(3) CTestDialog::OnInitialDialog()の直前で、グローバル領域に
WNDPROC OldEdit;
という形でウインドウプロシージャへのポインタを宣言します。
(4) OnInitialDialog()内部で、 OldEdit1 = (WNDPROC) SetWindowLong(m_edit1ctl.GetSafeHwnd(), GWL_WNDPROC, (LONG) NewEditProc); とやって、エディットボックスに関連付けられていた エディットコントロールのウインドウプロシージャを新しい ウインドウプロシージャに変更します。古いプロシージャへの ポインタも使用するので保存しておきます。 (5) 以上でエディットボックスのウインドウプロシージャを呼び出す際に、 ユーザーが定義したウインドウプロシージャを呼び出す準備ができました。
(6) 新しいウインドウプロシージャを次のように定義します。 C++ファイルの一番下にでも定義してください。 LRESULT CALLBACK NewEditProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_KEYDOWN: if (wParam == VK_TAB) { SendMessage(hwnd, EM_REPLACESEL, TRUE, (long) "\t"); return 0; } } return CallWindowProc (OldEdit1, hwnd, message, wParam, lParam); }
OSから受け取ったメッセージが、キーボード入力で、かつ、それが
TABキーだった場合には、現在のカレットの位置に '\t' を挿入します。
SendMessageは、メッセージの送り先が処理を終了するまで、戻らない
点に留意してください。
このメッセージの処理はこれでOKなので、そのまま return 0 で、
呼び出し側に処理を戻します。
その他のメッセージは特に変更する必要がないので、
CallWindowProc(OldEdit1, hwnd, message, wParam, lParam);
で、メッセージを古いウインドウプロシージャに引き渡して
処理してもらいます。
エラー処理など、いろいろ改善点はあると思いますが、大まかなところは
こんな感じで大丈夫みたいです。
>>111 OnGetDlgCode()で設定の変更もできるんですか?
もっと簡単な方法あります?
>>115 試しに作ったのを再度実行したら、なんかエディットボックスに
ゴミみたいなのが出るなぁ。なんでだろう。
あと、あんまり大きなデータは扱えないみたい。
デフォルトかどうかわからんけど・・。
>>116 解決。
ゴミはりソースエディタで、間違ってアニメートコントロールを
貼りつけていたせいでした。
データサイズは縦スクロールバーを設定すると、大丈夫みたいですね。
>>115 >OnGetDlgCode()で設定の変更もできるんですか?
WANTTABにしておかないとTABのWM_KEYDOWN等が飛んでこないんじゃないかなと思ったけど
飛んでくるのですね。
そのサンプルはダイアログに貼りつけてテストしましたか?
>もっと簡単な方法あります?
サブクラス化を前提にかきました。
なんか気になるので実験してみた。 MFCAppウィザードのダイアログアプリにEditBoxを一つ配置。 やはり WM_KEYDOWN の VK_TAB は飛んでこない。 OnGetDlgCode()で return DLGC_HASSETSEL | DLGC_WANTARROWS | DLGC_WANTCHARS | DLGC_WANTTABTTAB としてみると飛んできた。 しかし'\t'がちゃんと表示されない。 エディットボックスの設定を改行可にすると自動的にTABとして表示してくれた。(メモ帳といっしょやね) 結論:GETDLGCODEでWANT_TABし、改行可にするとok
>>118 >そのサンプルはダイアログに貼りつけてテストしましたか?
はい。サンプルを作ってみました。
EM_REPLACECELが挿入に使えるかどうかとか、
試してみないと分からない部分もありましたので。
OnGetDlgCode() は使っていないのですが、
正常に動作しているみたいです。
>>120 了解。119の結論は話半分ってこことでよろ。
122 :
デフォルトの名無しさん :03/02/06 23:23
昨晩、101でEdit領域へのTAB入力の質問をしたものです。 お蔭様で問題は解決しました。サンクス! 結局、CEditをサブクラスしたCEdit2を作り、 ダイアログのヘッダーの以下のCEditの部分を CEdit2に置き換えました。 //{{AFX_DATA(CRwDlg) enum { IDD = IDD_xx_DIALOG }; CEditm_edit; //}}AFX_DATA あとは119さんが教えてくれた通りに、CEdit2のOnGetDlgCode()で return DLGC_HASSETSEL | DLGC_WANTARROWS | DLGC_WANTCHARS | DLGC_WANTTABTTAB としました。 有難うございました!
過去ログ検索してみましたが、それっぽい質問がないようなので質問させてください。 Cでプログラミングを勉強し、最近VC++に入ったものです。 そもそもクラスやメソッド、オブジェクト指向プログラミングってどういう意味なのですか? 語句に対して調べては見ましたが専門用語の羅列でわけが判りません・・・ どなたか親切な方、判りやすく例え話等を使ってお教えいただけないでしょうか? よろしくお願いします。
>>123 オブジェクト指向ってのはオブジェクトを中心に考えるってこと。
メソッドってのは、そのオブジェクトに対して操作する関数とか。
吉野家で考えれば、メインオブジェクトは牛丼だ。
で、それに対する属性としてつゆだくだとか、ねぎだくだとかがある。
メソッドとしてはUの字テーブルをはさんだやつといつ喧嘩がはじまってもおかしくないとか
よーしパパ特盛り頼んじゃうぞーとか、店員のマークとかがある。
吉野家ならメインオブジェクトは店舗だろ
129 :
デフォルトの名無しさん :03/02/07 14:07
すっ、すみませぬ、超基本だと思うのですが変数xの整数部分だけを取り出そうと y=(int)x; としたらyに0か異常値が入ってしまうのですがどうすれば宜しいのでしょうか? 教えてくださいませ(つД`)
sage忘れゴメンなさい∧||∧
double modf( double x, double *intptr ); が整数と小数をわけてくれるよ。
>>131 ありがとうございます。
早速試してみます。
>>124 さま
親切にありがとうございます。
>>126 ,128さま。
この問題にぴったりそうな本を教えていただきありがとうございました。
早速勉強しなおしたいと思います。
134 :
デフォルトの名無しさん :03/02/07 21:12
WinMXとかWinnyにある、共有ソフトのダウンロードリストは どんなコントロールをつかっているのですか? エクセルみたいなコントロールみたいですが
普通はListViewコントロールがはじめに思いつくと思うけど・・・
136 :
デフォルトの名無しさん :03/02/07 21:19
なるほどー
>>134 そういう時はspy++を使って調べてみよう。
138 :
デフォルトの名無しさん :03/02/07 21:39
なる!メッセージからコントロールをわりだすのですか~
VC++6.0でINETコントロールを使っているのですが、 どうしても、FTPが上手くいきません。 executeメソッド等の使い方が悪いんですかね・・・。 どなたか、正常動作するサンプルソースとか 記述して頂けませんか?(´д⊂)
>>139 どううまくいかないのか書け。
「うまくいきません」だけで判るはずないだろボケ
スマソ(;´Д`) Executeメソッドを実行しても、 ファイルが転送されないまま、終了してしまうんです・・・(´д⊂) (一応、転送先のURLにアクセスはしてます) おそらく、パラメータ指定が間違っているんだと思うのですが、 Executeメソッドに必要な4つの引数には、 それぞれ、何を与えればいいんですか?
MSDNにVBでのリファレンスがあったんで、
それを参考にして与えてます。
第1引数:"
ftp://hoge:hoge@hoge.com/ "
第2引数:"PUT C:\\hoge.txt hoge.txt"
第3引数&第4引数:""
というような感じなんですが、
やっぱり、VC++だと与え方は違うんでしょうか?
VCでInetコントロール? CFtpXXXXってクラス使わないの?
今日からC始めた初心者ですが 普通にメイクしたexeファイル実行終了したら 自動的にウインド閉じちゃうんですけど、 どこで手動に切り替えられますか?
>>147 ショートカットのプロパティじゃなかったっけ?
149 :
デフォルトの名無しさん :03/02/10 14:08
すまぬ。一番下にViewって項目があったわ。。。
それらしき項目見当たらなかった…
>>152 IDE環境から実行してるんなら最後にgetch()でもしとけ。
コンソールアプリなら コマンドプロンプトから実行すればいいんじゃね
サンキューです。
156 :
デフォルトの名無しさん :03/02/11 13:16
157 :
ひよこ名無しさん :03/02/11 13:25
グローバル変数!グローバル変数!グローバル変数! グローバル変数!グローバル変数!グローバル変数!グローバル変数! グローバル変数!グローバル変数!グローバル変数! グローバル変数!グローバル変数!グローバル変数! グローバル!グローバル!グローバル!グローバル!ああああああああああああああああああああああああああああああああああああああああ
158 :
ひよこ名無しさん :03/02/11 13:36
参考書の例題で OnLButtonDown()関数で得たマウスの座標をOnPaintに受け渡すために int xpos = -100; int ypos = -100; とグローバル変数を宣言してるのですが なぜ、int xpos; じゃだめなのでしょうか?
159 :
ひよこ名無しさん :03/02/11 14:05
お願いします。
>>158 正直、何やりたいのか判らん。
グローバル変数を何に使ってんだ?
なんでxposの初期化が必要なのか聞いてるんだろうが、それだけ見せられても 答えようがない。
ダメなことはないだろう。 何かエラー起こってんのか? 悪い質問のお手本だな
グローバル変数は 糞!
int xpos = -100; int ypos = -100; void CS17Wnd::OnPaint() { CPaintDC dc(this); dc.Ellipse(xpos - 20, ypos - 20, xpos - 20, ypos - 20) } void CS17Wnd::OnLButtonDown(UINT nFlags, CPoint point) { xpos = point.x; ypos = point.y; invalidate(); } このint xpos = -100;の-100はどういうことなんでしょうか? なぜ-100なのかが分かりません。 宜しくお願いします。
165 :
デフォルトの名無しさん :03/02/11 14:23
今からVCやろうと思っているんだけど、やるなら6.0じゃなくてやっぱ.NETかな?
>>164 はっきり言おう。
お前の脳みそが理解できん。
自分でコーディングしておいて「分かりません」?
病院いって来い・。
>>164 OnLButtonDownが呼ばれる前にOnPaintが呼ばれたらどうなるか小一時間考えるといい。
>>167 参考書の例題と書いてるだろう。
このスレは質問の仕方も悪けりゃ答える奴も無能かよ
全然初心者向けの回答じゃないな
-100の意味を聞いてるんだからテキトー。これ。 はい次↓
>>168 int xpos;で試したら-100の意味が分かりました。
ありがとう。
我思う。試してから質問しろと。
この板自体来るの初めてなのだろうか。 元質問以外はなるべくsageてね。
失礼しました。今後質問時は気をつけます
178 :
デフォルトの名無しさん :03/02/11 23:05
実行しているファイルと同じディレクトリにある設定ファイルを読みたいので すが、ファイル名だけでオープンしようとすると上手くいきません。 そこで、実行ファイルのあるディレクトリを取得したいのですが可能でしょうか?
検索したらすぐ出てきたよ
>>180 ありがとうございます。
10分くらいは検索してみたのですが・・・。多謝です。
いったいどんなキーワードで検索したやら(藁
183 :
デフォルトの名無しさん :03/02/11 23:22
Windowsディレクトリって c:\windows でしょ?
>>178 の答えになってるの?
でも、結局よく情報抜き出せませんでした(涙) GetCurrentDirectoryで出てくるのは、何か実行ファイルがおいてあるのとは 別のディレクトリが取れているようでして・・・。 どの命令を使えばいいのでしょうか?(ダメ
すみません、デバックで動かしていたのが原因だっただけみたいです。 逝ってきます。
186 :
デフォルトの名無しさん :03/02/11 23:48
>>185 GetCommandLine
現在のプロセスのコマンドライン文字列へのポインタを取得します。
LPTSTR GetCommandLine(VOID)
これでフルパスが取れるみたいです。
試してみたら、
"D:\TEMP\TEST\Debug\TEST.exe"
こんな感じになりました。
187 :
デフォルトの名無しさん :03/02/11 23:56
VC++6.0でプログラムを作成しています。 ダイアログベースのアプリで、最小化のタイミングでタスクトレイに 表示したくOnSyscommand関数で最小化のイベントを取り、メインダイアログを隠したい のですが、OnSyscommand関数がデフォルトで出来ていません。 ユーザーが作成するものなのでしょうか? 生成方法を教えて下さい。 宜しくお願いします。
>>183 Windows ディレクトリ 取得
Windows入れないと別のOSも含まれるんじゃないの?
カレントディレクトリにしたほうがいいんだろうけど
>>186 おお、そんな命令が。ありがとうございました。
>>187 ダイアログの右上の最小化ボタンの動作をフックして
独自の動きをさせたいってことなの?
メインダイアログを隠すってことの意味がよくわからないんだけど・・。
隠す=最小化/アイコン化?
>>189 すみません、オーバーライドをすればよいということでしょうか?
>>192 VCならクラスウイザード使えばいいだろ。
つーか回答者もネタ? GetModuleFileNameだろ。<アプリと同じフォルダ
>>191 そうです。
最小化して、タスクトレイにアイコン化することが目的です。
showwindow(SW_HIDE)
でダイアログを隠そうとしております。
>>193 OnSysCommandが見つからないのです。
OnCommandならあるのですが…。
>>195 MFC App Wizard (exe) プロジェクト
で作成すると、ダイアログクラスに
CTestDlg::OnSysCommand()
というオーバーライドされた、メンバ関数が自動的に
作成されるみたいだけど、これを改造するのじゃ
いかんの?
この関数では、基底クラスのCDialog::OnSysCommand()に
メッセージをそのまま渡しているみたいですが。
>>197 それが自動的に作成されなかったようです。
追加で作成することは不可能なのでしょうか?
>>198 ClassWizardでWM_SYSCOMMANDのハンドラ作れ
>>198 左上のメニューのバージョン情報は
どうなってますか?
IDD_ABOUTBOXダイアログを
オーバーライドされたOnSysCommand()で
起動しているようですが。
>>201 すみません、メニューのバージョン情報とはどこのことでしょうか?
VS_VERSION_INFOならあります。
>>200 クラスウィザードからハンドラの追加の方法がわかりませんでした。
イベントから追加しようとして、
SYSCOMMANDが左の蘭になく、誤ってWM_CANCELMODEを追加してしまって
消せなくなってしまいました(鬱
>>194 これも良いみたいですね。
char str[1024];
GetModuleFileName(NULL, str, 1024);
cout << str << endl;
で結果が
D:\TEMP\TEST2\DEBUG\TEST2.EXE
こうなりました。こっちの方が汎用性が高いかな。
つーかClassWizardの使い方をWEBなりMSDNなりで調べてこい。 それですべて解決だ。
>>202 ダイアログ左上のアイコンを左クリックすると、
メニューが出ませんか? その中でバージョン
情報の表示を選択できますが。
>>202 class view のクラス名の上で右クリック
→メッセージハンドラの追加
でできますよ。
>>205 >>204 イベントからOnSysCommandを追加することができました。
フィルタのところでwindowを選択することで出てきました。
どうもありがとうございました。
>>207 これで、フィルタを「ウィンドウ」にすると、
WM_SYSCOMMAND のハンドリングが
できる雰囲気。
COMポートからデータを読み出すプログラムが組みたいのですが、どうもうまくいきません。 具体的にいうと「フフフフフフフフフフフフフフフ・・・」てな感じです。どうしたらいいのでしょう? 明日の朝までに組まなきゃいけなくて、四苦八苦してます。
ちなみに、API使ってます。
初期化されてないとフフフフになるよ
初期化ですか?いまいちやりかたが・・・(汗
> フフフフフフフフフフフフフフフ・・・ ストーカーからの電波を受信しています。 つーか、NT とかだと、確保してから 1 度も使われてないメモリ領域は 0xCC で 塗りつぶされている。 それを読んでしまっているのだから、データをきちんと COM ポートからメモリに 読み込めていないんじゃないか?
塗りつぶされるのはNTとかじゃなくてデバッグ時だった気が。
俺もデバッグ用にVCが埋め込んでるんだと思ってた
>>210 できもしない仕事を請け負ったんだから自業自得ですな
成り行き上そうなってしまって・・・(泣 一応フの羅列は回避できました。 でも、途中で読みに行かなくなっちゃって・・・
220 :
デフォルトの名無しさん :03/02/12 05:11
質問なんですが・・ CPoint t1,t2,t3; t1=(10,10); t2=(9,10); t3=(10,9); とあったとき、この変数3つが、近い場所にあると判断させるにはどういうプログラミングをすればいいのでしょうか… どうかご教授お願いします。
>>215-216 ごめん、そうみたい。
NT のメモリ領域の初期化は 4 バイトくらいの周期だった。
言語や開発環境のスレで、ロジックまで教えるべきなのかどうかいつも 迷うのだけれども
>>220 「近い」の定義がよく分からんぞ。
とりあえず適当に決めた一定値以内の距離だったら近いとすれば?
225 :
デフォルトの名無しさん :03/02/12 06:47
>>221 、224
近い、という定義はだいたいxとyの座標がそれぞれ0~1ずれていても同じとみなしたいのです…
3つの座標は、ぞれぞれ3つの辺の始点と終点を示しています。
2つの辺の始点か終点が重なれば一つの頂点としてみなしたいのです。
慌てていたので、ちょっと上の質問例が違っていました。訂正します
自作のプログラムでは線分を切り出した時にこのような座標の取り方をしたので、
これをうまく使って「この3辺は三角形だ」と認識させたいと考えています。
#define siten 0
#define syuten 1
CPoint t1[2],t2[2],t3[2]; //一辺の始点と終点の座標を持つ
t1[siten]=(0,0); t1[syuten]=(10,0); // "1"の辺の始点と終点
t2[siten]=(10,1); t2[syuten]=(4,8); // "2"の辺の始点と終点
t3[siten]=(0,1); t3[syuten]=(4,7); // "3"の辺の始点と終点
1111111111
3 2
3 2
3 2
3 2
3 2
3 2
32
2
よろしくお願いします。
>>225 各点間の距離をそれぞれ求めてそれが0~1なら重なってるフラグ立てりゃいいじゃん
227 :
デフォルトの名無しさん :03/02/12 06:50
あ、三角形が潰れてしまった…鬱氏 実際に紙に書いてもらえればわかりやすいと思います… ほんとすいません つД;)
>>178 >実行しているファイルと同じディレクトリにある設定ファイルを読みたいので
>すが、ファイル名だけでオープンしようとすると上手くいきません。
こんな感じに配置してVCから実行してるのなら
C:\VC\test\Debug\test.exe
C:\VC\test\Debug\test.ini
次のようにやってみて
C:\VC\test\Debug\test.exe
C:\VC\test\test.ini
VCから実行すると実行ディレクトリは実行ファイルがあるところじゃなく
プロジェクトファイルがあるところになっちゃうかね
絶対パスだと読み込めたところをみるとたぶんこれが原因じゃないかな?
余談だけどWritePrivateProfileStringなんかの設定ファイルを書き込むやつは
ファイル指定が "test.ini" と ".\\test.ini" じゃ動作が異なるから気をつけて
前者だとウィンドウズディレクトリに設定ファイル作っちゃうから
>>227 しつこい
>>229 プロジェクト→設定のデバッグタブで作業ディレクトリ変えりゃ済む話でないの?
パスの質問はもう答え出てるから。
232 :
デフォルトの名無しさん :03/02/12 17:01
マイクロソフトの"マイコンピュータ"や"ローカルディスク"等の 標準的なアイコンを自分のソフトに組み込んで使用したいのですが、 著作権はどのようになっているのでしょうか?(自分のソフトに組み込んで使えますか?) また、二次使用できる場合、どこで配布されているでしょうか?
毎回読みこめば?
234 :
デフォルトの名無しさん :03/02/13 20:44
あほな質問ですまにゅ。 VC++6.0で独自のインターネットブラウザって作成可能なの?
論理的には可能ですか。
作れるけどライセンスの問題があるから IEコンポーネントを使う
ライセンスってJPEGの? 独自ブラウザは不可能なんですかね?
テキストベースにする裏技
239 :
デフォルトの名無しさん :03/02/14 02:07
MFCのCEdit なんですが、コントロールから 改行する方法ってどうしたら良いんでしょうか? リソースエディタで複数行と、改行を許可は選んであります。 それで、ReplaceSel で文字を書いたのですが、 どうも改行されない。\n では改行できないんでしょうか? CString からDDXを使う方法もありますが、後学のためにも コントロール自体で操作したいと考えています。
>>239 CRLF (\r\n) じゃなかったっけ
改行は \r\n
242 :
デフォルトの名無しさん :03/02/14 02:17
ども。ありがとうございます。 \r\n で解決しました。
243 :
デフォルトの名無しさん :03/02/14 02:34
コードを見やすくしたいんですけど、 class CDInput8{...}; void* pvRef; として、 ((CDInput8*)pvRef)->DInput->CreateDevice(...); これ、綺麗になりませんか?
244 :
名無し@沢村 :03/02/14 04:30
>>243 static_cast<CDInput8*>(pvRef)->DInput->CreateDevice(...);
見やすくしたいとはこれ如何に
246 :
デフォルトの名無しさん :03/02/14 20:50
CDInput8* pDInput8 = static_cast<CDInput8*>(pvRef) ; CDInput* pDInput = pDInput8->DInput ; pDInput->CreateDevice(...); 駄目か。かえって見づらい? ->を何段も重ねるの好きじゃないんだが。
まったくの初心者がVisual C++ .NETを購入して学習していくのは無謀ですか? (いちお、古いJava本で配列・演算・インクルの概要は把握しました・・・) そのうち、新しい2chブラウザー(低機能)を作ったり ネットワークゲーム(ターン制)を作ってみたいです VB.Netの方が初心者向きですか?
CDInput8のインラインメンバ関数に
>>247 初心者と言ってもどのレベルか分からん。
C++が分からんのなら無謀!
250 :
由美(ネカマ1号機) :03/02/15 00:18
変な質問ですいませんが… Visual C++って何ができるんですか?
>>247 VB6にしなさい。VB.netは別物。
252 :
デフォルトの名無しさん :03/02/15 00:26
これから学習するんなら、C++が良いんじゃないの? Javaやってんなら、C++にも慣れやすいのでは?
253 :
デフォルトの名無しさん :03/02/15 00:28
>>243 #define DINPUT(p) ((CDInput8*)(p))->DInput
((CDInput8*)pvRef)->DInput->CreateDevice(...);
↓
DINPUT(pvRef)->CreateDevice(...);
やりすぎると別言語チックになる上にデバッグしづらい罠
255 :
デフォルトの名無しさん :03/02/15 00:52
漏れは
>>243 で充分綺麗(分かり易い)だと思うのだが。
256 :
デフォルトの名無しさん :03/02/15 01:39
プログラムでIEを起動したいのですが、どうしたら出来ますか?
>>253 ワラタ
>>256 最近、この手の質問がかなり多い気がするのは気のせいか?
とりあえず、ShellExecuteでも使え。
258 :
デフォルトの名無しさん :03/02/15 01:53
>257 ShellExecuteって何ですか? ちなみに私はMFC使わないでAPI使っています
259 :
デフォルトの名無しさん :03/02/15 01:55
260 :
デフォルトの名無しさん :03/02/15 01:56
>259 ドキュメント??? ヘルプのことですか?
>>258 質問する事が悪いとは言わんが、
喪前は自分で調べるという努力をしないのか?
明示的にキーワードを与えられたんだし、
それを元に検索すれば、自ずと答えは見つかるはず。
MFCスレでも同じような質問を見たよ。
263 :
デフォルトの名無しさん :03/02/15 02:07
>261 そうですね。 少し自分で調べてみます。 すいませんでした。 >262 ありがとうございます。 MFCの方も覗いてみます。 >259、257 色々ありがとうございました。 少し自分で勉強してみます。
264 :
デフォルトの名無しさん :03/02/15 02:23
256より 出来ました。 ありがとうございます。 261さんのおっしゃる通りでした。 いくら初心者用だからと言って、すべて聞いていただけではダメですね。 少しは努力しないと・・・ 皆様色々ありがとうございました。 また、質問した際はよろしくお願いします。
266 :
デフォルトの名無しさん :03/02/15 02:27
なんか自作アプリを起動すると、だんだん リソースが減っていくような・・・・。(汗 new は使ってないし、メモリをallocateする ようなAPIも使っていないんだがなぁ。 こんな経験ないですかね? MFCベースのWinアプリなんですが。 8時間くらいで作った簡単なやつです。 メモリリークの有無を調べる方法って ありますか?
267 :
デフォルトの名無しさん :03/02/15 02:32
268 :
デフォルトの名無しさん :03/02/15 02:42
>>267 どうもありがとうございます。
ソースをみたら、デフォルトで挿入されているみたいなので、
そのままデバッグ実行してみましたが、メモリリークは
検出されませんでした。
そうすると気のせいってことみたいです。
リソースとは何の事を指しているの? リソース減少の原因がメモリリークとは限らないわけだが
>>269 リソースメータのアイコンで表示される部分なので、
たぶんシステムリソースではないかと。
271 :
名無し@沢村 :03/02/15 03:11
>>266 ヌヒよ、GDIオブジェクトの破棄を忘れてはいないか?
272 :
デフォルトの名無しさん :03/02/15 05:01
初心者なんでしょぼい質問かもしれませんが、教えてください。 タブコントロールを使っているんですが、 複数のラジオボタンやスタティックテキストやグループボックスなどは どのようにすればタブの選択に応じてSW_HIDEとかSW_SHOWできるんですか? 本当に困っているので教えてください。よろしくお願いします。
たびたびすいません。 適当にやってみたらできました。 無駄に書き込んでしまって申し訳ないです。
274 :
デフォルトの名無しさん :03/02/15 06:02
ScrollBarやButtonなどを配置するときにマウスではなく数値で大きさや位置を指定することはできますか?
>>274 OnSizeなどでMoveWindowするとか。
引用です。 955 名前:デフォルトの名無しさん 投稿日:03/02/15 19:30 VC++ .NETでデバッグをするとセキュリティ設定が原因で プロセスを作成できないと出てくるのですが、 どうすれば作成できるようになりますか? VC++6.0では普通にコンパイルできるものも .NETでは上記のエラーが出て出来ません。 OSはwin2kです。
引用と言う名のマルチかよ。 おめでてーな。
>>275 >>276 レスありがとうございます
デザイン時にキッチリ揃えたりできればと思ったのですが
無理なのでしょうか
残念です
>>277 解決しました。レジストリを足すようです。
同じ事で困ってる人がいるようならやり方も書きます
282 :
デフォルトの名無しさん :03/02/17 03:29
size_t の _t って何の略ですか? nothrow_t なんかもあるようですが。
maybe type
284 :
デフォルトの名無しさん :03/02/18 16:47
JPEGを表示させるフリーウェアは、 もう作れないんですか?
>>284 IEコンポーネント使用ブラウザとかあるじゃん
>>284 JPEGもだめだったっけ?
GIFじゃなくて?
vb歴2年、そろそろ知識のバージョンUP。 ところで、同じプログラムを、vbとC++で組むと、C++のほうが コードが多いと聞いたんですがどうなんでしょうか?
289 :
デフォルトの名無しさん :03/02/18 19:37
>>288 その通り。
何も貼ってないフォームを表示させるだけで数百行。
VBなら0行ですむところ。
>>289 俺は、趣味でプログラミングしている。
だっらVBに徹したほうが良いのかな?
でも、プログラミングはC++ですよって言ったほうが聞こえが
良いと思ってバージョンUPを考えたのだが、
C++を使っているヤシは、PGなのか?
C++だからPGってわけじゃない。 学生でも趣味でプログラミングしてる人はいるわけだし。 趣味の程度にもよるけど、簡単なプログラムだったらVBでも作れるでしょ。 2ch用ブラウザくらいなら出来ないことはない。 ただ、細かい部分までこだわるならVBよりVCのほうが有利だと思う。 ま、趣味なら「やりたい」とおもったらやれば?
フォームなんて言ってるから自演がばればれ
つーかここはやる気の問題じゃなくて技術的な問題を扱うスレだから。
294 :
デフォルトの名無しさん :03/02/18 21:07
>>290 Borland C++ Builderなら、VBみたいにパーツを切り貼り出来る。
いいとこ取り。
でも、Windowsに対して細かい操作をしたかったら、
VC++のほうが情報量が多い。
DOS時代、Cの経験があったけど、カルチャーショックは大きかった。
見慣れるまで1年以上かかった。趣味だから、ってせいもあるけど。
>>292 自演じゃない。最初はWindowsと打ってたけど、
VB使いにわかりやすいように書き換えた。
窓を表示させるだけならウィザードを使えば0行で済む罠。
296 :
デフォルトの名無しさん :03/02/18 21:29
>>295 VBじゃあんまりウィザード使わないし。
初めて見た時は、「ここにコードを挿入」以外のコードが膨大で、
圧倒されて、やる気なくした(笑)。
297 :
デフォルトの名無しさん :03/02/18 23:17
「ここにコードを挿入」以外のコードは大体スケルトンだろ
>>297 Yes
でも、気になる(笑)。
別ファイルにでも追い出してくれる方が初心者にはとっつきやすい。
>>294 > 最初はWindowsと打ってたけど
いや意味判らんし…
301 :
デフォルトの名無しさん :03/02/19 08:30
>>294 290です。そうですか、Borland C++ Builderだったらいいとこ取りね。
VC++を買うつもりですが、今は、VC++netですよね。
netはXP対応でMEは使えないの?
302 :
デフォルトの名無しさん :03/02/19 09:21
>>301 そう。NT系でしか動かないし、1GHz以上でないと重い。
流れが止まってるな・・・(;´Д`)
VC++6.0で手術中によくある生命のグラフ(?死ぬとピーっていうやつね)の つくりかたをおしえてくれさい。
>>305 ぶっちゃけてしまうと全部なのですが、
今わかってることは、メモリのバッファ(?)に
直接書いてそれを画面に転送するらしいということと、
OnPaintを使わないって事ですね。
まずは、どうやってメモリに書いたらいいのかなどが
わからないです。
追加です。 リソース関係のことですが、 ピクチャーに表示する予定です。 タイプは四角形です。 おねがいします。
ここは「教える」スレだ。「仕事請け負う」スレじゃない。出直してこい。
知らないなら知らないって言ってよぉ~ (´・ω・`)ショボーン
ていうかヘルプくらい読め
いくら「初心者に教える」っても限度があるってことかな。 あまりにも知らなすぎたり、理解力がなさすぎたり 状況説明が拙すぎたりすると教える方も さじを投げちゃいます。 まー、中には物好きがいるかもしれんから待てば?
要するにグラフ書きたいんだろ Hello World の次ぐらいにやりそうだな それもできないんじゃ教えるだけ無駄
315 :
デフォルトの名無しさん :03/02/23 06:36
リソースでボタンとか作ろうとしたんだが、誤ってボタンとか作るコントロールボックス(?)のウィンドウを消してしまいました! どうやったらもう一度このウィンドウを出せるのでしょうか…
316 :
デフォルトの名無しさん :03/02/23 06:41
メニューで ツール>カスタマイズ>ツールバー>コントロールにチェック
318 :
デフォルトの名無しさん :03/02/23 09:06
ツールバーが動いたり切り離せたりして、かなりうざいです。 ツールバーを固定する方法ってあります?
なんだ教えて君か 教えるんじゃなかった
320 :
デフォルトの名無しさん :03/02/23 16:18
>>306 普通 memDC というのを作って対処するので、それについて広く調べてください。
321 :
デフォルトの名無しさん :03/02/23 19:55
MFCのダイアログベースでつくてます。 ダイアログエディタのEdit ControlだとWM_CHARがイベントハンドラのなかにないので CEditを継承してCMyEditを作ってOnCharのなかにやりたいことを書きますた。 で、質問なんですが。 このMyEditはどうやって表示して使ったりするんでしょうか?(..;) ダイアログエディタみたいに貼り付けたりはできないのでつかね。
322 :
デフォルトの名無しさん :03/02/23 19:59
323 :
デフォルトの名無しさん :03/02/23 20:09
>>321 一般的なやり方としては、クラスウイザードのメンバ変数タブで
IDC_EDIT1 のコントロール変数(オブジェクト)を生成して、
そうするとCTestDlg に、このオブジェクトが追加されるから、
このCTestDlgのWM_CHARハンドリング部分でIDC_EDIT1
をコントロールするんじゃないですかね?
324 :
名無し@沢村 :03/02/23 20:18
325 :
デフォルトの名無しさん :03/02/23 20:19
>>321 この方向でいくと、CEditの派生クラスを作ったのはいいけど、
CMyEdit はまだ実体化されていないですよね。結局のところ、
CTestDlgクラスのメンバ変数としてCMyEditを所有して、
コントロールすることになるんじゃないかな。
326 :
デフォルトの名無しさん :03/02/23 20:22
ビットマップの表示に関する質問です。 ビットマップを絶対パスから開く方法がわからないので困っています。 リソースに登録し、そのIDをLoadBitmapで呼び出す方法しかわからないもので… すでにファイルの絶対パスが格納されてあるchar型の変数filenameを使って、ビットマップを 読めるようにしたいと考えています。 (例)こんな感じでやりたいのです filename="c:\windows\デスクトップ\test.bmp" LoadBitmap(filename...) ←おかしい 何か手立てはないものでしょうか?
327 :
名無し@沢村 :03/02/23 20:24
328 :
デフォルトの名無しさん :03/02/24 03:22
SDIでViewをCScrollViewから派生させて、 できたスケルトンのOnDrawで、 CPoint pt = GetScrollPosition(); pDC->TextOut(pt.x, pt.y, "aho"); ってやったら表示されてるようだけどきれいにならないでくずれるんだけど。 なんで?
>>328 崩れるって具体的にどのように?
>>326 LoadBitmap、CreateBitmapIndirectなど
330 :
デフォルトの名無しさん :03/02/24 04:01
>>328 ん~
試してみましたが再現しません。
どういう操作したときにどういう風に
崩れるの?
すんません。 VisualC++ 6.0からVisualC++.NETへ移行する場合でソースの互換性はありますか? 旧バージョンで作った奴をコンパイルしたら遅くなるというような ことはありませんか?
>>333 LoadBitmapってAPIの存在を知らないんだと思われ
パスの区切りは"\"ぢゃなくて"\\"
>>333 >>326 さんはファイルの絶対パスを指定してビットマップを開きたいと言っているのよ。
LoadBitmap()でどうやって開くって言うのよ。バカじゃないの。
CreateBitmapIndirect()じゃ手間がかかるだけだし。
だから沢村さんの言うとおりLoadImage()が正解よ。
や、それ以前に質問文にLoadBitmap()ってあるんだからLoadBitmap()と答えること自体おかしい。 ピンボケな回答にツッコミいれるオマエもな。
338 :
デフォルトの名無しさん :03/02/24 13:15
#include <iostream> #include <string> using namespace std; class KNeko { string name; public: void SetName (string n){ name = n; } void Naku() const{ cout << "なんか文句あっか、(゚Д゚)ゴルァ!!俺は" << name << "だ。よろしくな" endl; } }; int main() { KNeko x; x.Naku(); x.SetName("ギコ"); x.Naku(); } これをビルドしようとすると26行目にエラーがでます。始めたばかりで あまりよくわからないですが皆さんご教授ください
26行目というと > これをビルドしようとすると26行目にエラーがでます。始めたばかりで この行ですね。コメントアウトするか、あるいは行を削除しましょう。
それだと27行目でもエラーが出るぞ
ごめんなさい。というかアカデミック買って使い始めた ばかりで使い方自体よくわかんないんです…
ビルドには成功したもののexeファイルができないです…
343 :
デフォルトの名無しさん :03/02/24 14:38
>>342 プロジェクトのDebugフォルダの中を見てみ!
>>338 mainルーチンにreturn文がない
345 :
デフォルトの名無しさん :03/02/24 16:47
KNeko x; だけでは、コンストラクタを呼び出していないから、 KNeko x = new KNeko(); とか書くんじゃないの?
#include <iostream> #include <string> using namespace std; class KNeko { string name; public: void SetName (string n){ name = n; } void Naku() const{ cout << "なんか文句あっか、(゚Д゚)ゴルァ!!俺は" << name << "だ。よろしくな" << endl; } }; int main() { KNeko x; x.Naku(); x.SetName("ギコ"); x.Naku(); return 0; }
これでなんとかできました。endl前の<<が抜けてたのが原因みたいです。 それでもシンボルが読み込まれてないとかエラーが出ますが いちお実行できました。 ありがとうございましたm_ _m 串が見つからなくてなかなかカキコできなくてすみませんでした
>>347 おい、ここはYBB規制されてねーぞおい。
おいがかぶった
おい、おいがかぶってるぞおい。
test
本当だ…あの努力は一体…
VBもVCも言葉が似てるから兄弟なんだな。
不肖のアニキでごめんなさい
>>357 いやおまえはよくやってるよ。
ただ使い手に問題があっただけだ。
おつかれさん。
うん、VBは人間に近い言葉なのにちゃんとコンピュで動くからすごい
ちゃんと?
ちゃんと鍋
なんかstdafx.hとかいうファイルが勝手にできてるんですけどこれって何ですか? ヘッダファイルだというのはわかりますけど どう使うのが賢いのか教えてえらい人!!
>>362 プリコンパイル済みヘッダーファイルでぐぐれ。
>>363 コンパイル時間を短くすることができるんですね
ありがとう!えらい人!!
365 :
デフォルトの名無しさん :03/02/26 11:02
教えて君ですいません。VC6の開発環境なんですが、 VBのイミディエイトペインやBCBの評価/変更ウィンドウ みたいな、非デバッグ中に簡単な式を評価できるような 機能は無いのでしょうか?
366 :
219-105-109-105.adachi.ne.jp :03/02/26 11:30
VC++.netなのですが、DOSのプログラムは打てますか?
367 :
タダで!? :03/02/26 11:34
YAHOO!BBのユーザーへの特報!!! 今YAHOO!BBでADSLを利用されてる方。 月額料金を無料にできる方法をお教えします。確実な方法です し方法も一つではなく何通りお教えしますので、ヤフーbbのユ ーザーである限り料金発生なくずっと使えます。 興味のある方は以下のメールアドレスに連絡ください。 料金をとめる方法は少しの謝礼でお教えします。 ryoukinn5000@yahoo.co.jp ryoukinn2003@yahoo.co.jp よろしくお願いします。
>>365 「ウォッチ ウィンドウ」で。
他にも「表示」→「デバッグ ウィンドウ」から辿ると使えるウィンドウがいろいろ
369 :
デフォルトの名無しさん :03/02/26 17:00
>>368 早速レスサンクス
「ウォッチウィンドウ」ってデバッグ時じゃきゃ
開けないのでは?
作成途中で、まだまだデバッグ開始出来ない
時にでも、簡単な式のテストをしたいと思いまして
371 :
デフォルトの名無しさん :03/02/26 18:59
入力formをVBで作る事できるんですか?
>>371 煽りたいだけでも無知なだけでもいいから氏ね。
挿入>リソース>インポート>ファイルの種類でVBフォーム
374 :
デフォルトの名無しさん :03/02/26 19:45
cv っていうほどでもないかもしれませんが COLORREF の赤の要素を取り出したいのですがどうすればよいでしょう?
>>366 MS-DOSで実行可能なプログラムという意味なら無理。
"Win32 console application"という、コマンドプロンプト上で
実行可能な32bit Windows用のプログラムなら作れる。
377 :
デフォルトの名無しさん :03/02/26 19:56
ありがとうございます
いちいちお礼でageんな
380 :
デフォルトの名無しさん :03/02/26 21:19
最適化オプションを"無効"から"実行速度"に変えるとプログラムが動作しなくなりました。 同じような現象が起きた方いますか?対処法のヒントなどいただけるとありがたいのですが。 環境:Windows 2000 Pro. / Visual C++ 6.0
381 :
デフォルトの名無しさん :03/02/26 21:22
値が±1違っていました。 int a, b, c; c=(int)(a / (b / 1000.0F));をc=(int)(a / (b / 1000.0)); に変えたら、なんでかよくわからないですが、動きました。 激しくスレ違いでした。すみません。
383 :
デフォルトの名無しさん :03/02/26 22:12
初心者です。 CとC++はどこがちがうの? なんか、ソースみると同じに見えてしまう。
↑以後放置で。 ↓はい次
C++とJavaはどう違うんでしょうか・・・・
↑以後放置で。 ↓はい次
387 :
デフォルトの名無しさん :03/02/26 23:31
Win2000Pro SP3/VC++6.0 SP5です。 コンソールアプリ作っているんですが、ある処理を実行中に その経過を表すものを作りたいのです。よくUNIXとかで ******** / [77%] ってありますよね。あれがやりたいのですが。改行しない で同じ行に書き直す?ことができれば可能と思うんですが。 なにか検索の手がかりになるキーワードだけでも教えて ください。
そういうことか。。。\n使わなきゃいいんですよね。。。 ありがとうございました。
390 :
デフォルトの名無しさん :03/02/27 22:17
使っている参考本に fseek(fp,0L,SEEK_SET); /* fpはFILEポインタ */ という一行があるのですが、 この"0L"とはなんなのでしょうか? 前後で何も定義して無いようですし、 普通に"0"でやっても通ってしまいます。
>>390 longを表すサフィックス
0・・・int型の0
0L・・・long int型の0
>>390 ANSI Cにおいてfseek()のプロトタイプ宣言を取り込んでいる場合
(要はstdio.hを#includeしている場合)は、コンパイラが
宣言に合わせて適宜型変換を行ってくれるので、long型であることを
明示する必要が無い。
K&R Cの場合、またはANSI Cでもプロトタイプ宣言を取り込んでいない
場合はコンパイラが自動的に面倒を見ることができないので、
仮引数がlong型である場合には、0Lのように型を明示して
実引数を渡さないと問題が生じる。
393 :
デフォルトの名無しさん :03/02/28 03:36
Win98SE VC++6.0 SP5 ツールバーの背景色が変なんですが、何が原因でしょうか?
VisualC++ 6.0 Professional Edition を使っているのですが、 メモリリークの検出方法がわかりません。 教えてください。
398 :
デフォルトの名無しさん :03/03/01 22:20
このプログラムを終了できません。デバッグ中~ というエラーがでました IDEの操作もできず、終了させられません このプログラムを終了させるにはどうすればいいのでしょうか? 終了のショートカットなどあれば教えてください
alt ctl del
>>399 それでも
>このプログラムを終了できません。デバッグ中~
がでてきました
結局IDEごと落とすことにしました、まだ脳内にソースが残っているうちに……
お騒がせしました
質問 Windows xp にVc++6.0 Standerd Editionってインストールできますか? インストールの途中でC:\WINDOWS:\system32:\Msjint35.dllが開けないって言われたんですけど どうすればいいんですか?教えてください。
402 :
デフォルトの名無しさん :03/03/01 23:07
403 :
デフォルトの名無しさん :03/03/02 00:58
ボタンの色(背景)を変えたい時はどうすればいいですか?
>>403 CBitmapButtonやオーナードローなど。
405 :
デフォルトの名無しさん :03/03/02 02:57
BSTR型のデータをchar文字列を取り出すにはどうしたらいいですか? ストリングの型が多すぎてついて行けません。 解りやすく解説したサイトなどないでしょうか。
407 :
デフォルトの名無しさん :03/03/02 05:06
マシンIDを取得したいのですが、下のようにやっても szTextにはゴミのような値が入っています。 どうしたらいいのでしょうか? void GetDataString(char *szName, char *szValue) { HKEY hKey; DWORD dwType = REG_SZ; DWORD dwByte = 32; RegOpenKeyEx(HKEY_CURRENT_USER, "Identities", 0, KEY_QUERY_VALUE, &hKey); RegQueryValueEx(hKey,szName,NULL,&dwType,(BYTE *)szValue,&dwByte); RegCloseKey(hKey); return; } char szText[80]; GetDataString("User ID", szText);
>>405 #include <comdef.h>
BSTR bstr;
として
char* p = _bstr_t(bstr, true);
>>406 不正解
Visual C++.netでソースのインデントとかがぐちゃぐちゃに崩れたときに、 自動整列させるにはどうすればいいですか?
>409 Ctrl+Aで全選択 ↓ Ctrl押しながら K そのままCtrl押しつづけて F
>>410 ありがとうございます。これを待ってました。
・・・これをGUIのボタン一発でできないでしょうか?
>>411 マクロを書いて、そのコマンドをボタンに割り当てる
413 :
デフォルトの名無しさん :03/03/03 23:32
CAsyncSocketを用いたサーバー側TCPIPのプログラムを書いてます。 SOCKET の生成→リスニング開始→OnAcceptイベント までは来るのですが、 そのあと、 ハンドラ内でAcceptして抜けた後、 クライアント側でデータ送信しても OnRecieveイベントが発生しません。 Acceptの戻り値は正常終了しています。 LANアナライザで見ると PUSHにたいしてACKは返っているのですが、 送信するたびにWINDOWサイズが小さくなっているので サーバー側は受け取っているのだけどイベントが 発生しないので取り出されずに バッファを消費していっている感じです。 なにか考えられるミスはありますか? ちなみにクライアントがMFCでないのでアーカイブはつかえません。
>>413 CAsyncSocketなぞ使う貴様が悪い。
Winsockを直接叩け!
>>414 ( ´,_ゝ`)プッ まともに答えられる知識がないなら、最初からレスするなよ。
416 :
デフォルトの名無しさん :03/03/04 01:13
そうかな
417 :
デフォルトの名無しさん :03/03/04 11:19
VC++ 6.0を使って、コンソールアプリを作成しています。 アプリは完成しました。ですが、スピードがいまいちなので、 プロファイルを実行して最適化をする必要がでました。 プロジェクトの設定で、リンク->プロファイルを行う に チェックボックスをつけても、一度目のクリックでは有効にならず、 二度目のクリックで有効になります。しかし、ほかのタブを表示 させて、もう一度開いてみるとチェックボックスが外れています。 Professional Editionを使っているので、プロファイルは使える はずなのですが・・・。なにが悪いのでしょうか?
419 :
デフォルトの名無しさん :03/03/04 15:58
現在VC++でSDKをやり始めようとしている者です。 すごく初歩的な質問だとは思いますが、システムメニューの改造で、 DeleteMenu()関数でシステムメニューのいらない項目を削除してから、 AppendMenu()関数で新しく項目を追加して、 その項目を選ぶとメッセージボックスが出るようにしようとしてるんですが、 AppendMenu()関数の第3引数に新しく追加する項目のIDを入れるというのはわかるのですが、 そのIDってのはそこで自分で考えたIDで良いんですか? 適当に(例えばIDM_TESTとか)入れてコンパイルしても、 'IDM_TEST' : 定義されていない識別子です。 と言われ、コンパイル出来ません。ヘッダで#defineで適当な数字を入れても コンパイルは出来るのですが、新しく追加した項目をクリックしても何も起きません。 (一応クリックしてからのイベントは記述してます) 長文になってしまいましたがどなたかAppendMenu()の使い方を教えてください。
>>419 システムメニューに追加する場合はIDの範囲が決まっていたような。
…と、SDKか。失礼。
自己解決しました・・・。ほんまにごめんなさい。 AppendMenu()の使い方とIDの定義をしなくてはいけないってのは合ってたんですが、 システムメニューからのメッセージの捕らえ方を間違ってました・・・。 システムメニューからのメッセージはWM_SYSCOMMANDなのにWM_COMMANDでやってました・・・。 そりゃ動かねーわ。ほんまにアフォみたいなミスやってすんませんでした。
423 :
デフォルトの名無しさん :03/03/04 20:41
VC6,SDK,Win2000で作っています。 あるウインドウでのフォーカスの状態を調べようと思い(別アプリ)、 AttachThreadInput(nTargetID, nForegroundID, TRUE ); hFocus = GetFocus(); AttachThreadInput(nTargetID, nForegroundID, FALSE ); という感じでスレッドをアタッチしてから取得しているのですが、 このアプリケーションの前に立ち上げたアプリだとうまくいくのですが、 あとに立ち上げたアプリだと若干動作がおかしくなります。 (自アプリを2回クリックしないと自アプリがアクティブにならない) 別アプリのフォーカスを取得する良い方法があればアドバイスお願いします。
424 :
デフォルトの名無しさん :03/03/05 01:07
VC++で書かれた多変量解析のサンプルプログラムを紹介してる HPか書籍ないですかね?
425 :
デフォルトの名無しさん :03/03/05 08:21
プロジェクトの設定→リンカオプションで [オブジェクト/ライブラリ モジュール]は、VC++.netではなんという項目に なるんでしょうか?
427 :
デフォルトの名無しさん :03/03/05 12:05
CFileException::sharingViolation SHARE.EXE 未ロードまたは共有領域ロック済み CFile::openで↑のようなエラーが帰ってくるんですが どうしたらいいですか?
close()してないだけでした・・・
429 :
デフォルトの名無しさん :03/03/05 15:07
シェルでMS-DOSを開いて命令を与えられますか。 例:自分のプログラムからIPを取得してDOS窓を起動してそこから、取得したIPにpingする。
MS-DOSってエミュレーターでも走らせるの? それともWindows3.1以前の話?
コマンドプロンプトです^^;
PINGならicmp.dllを使うべき、わざわざ外部コマンドを使う意味はない 生ソケットからのICMPは特権ユーザでないと出来ないのでお勧めしない
433 :
hsm-ip1273.enjoy.ne.jp :03/03/05 17:01
ネット初心者です。いじめないでね(/ε\*)
434 :
デフォルトの名無しさん :03/03/05 17:03
ふしあなさんやっちまったヽ( ・∀・)ノいじめないでね(/ε\*)
435 :
デフォルトの名無しさん :03/03/05 17:55
練習用プログラムを卒業し、実用的なプログラム組んだりするのは、どんな風に勉強すればいいんでしょう
>>435 何か目標を決めるといいかも。
例えば2chブラウザつくってやるぜー!とか。
>>435 ゲーム製作技術板が実質的な初級プログラム板ですので
そこで垂れ流してみるのがいいかと
あそこは嵐ばかりでまともなスレが存在しない隔離板
おい、俺はいつになったら叩かれるんだ?
ネットでも独りぼっちなんて寂しいよ。。。
おまけに
>>415 みたいなアフォに煽られるしさ
414 は放置
442 :
デフォルトの名無しさん :03/03/06 18:30
すべてのブレークポイントを解除とかないですか? VC6です
設定->ブレークポイント(Alt+F9)->全て削除->OK
スマン間違い ×設定 ○編集
445 :
デフォルトの名無しさん :03/03/06 18:59
Windows98 にインストールしている VisualC++、MSDN を Windows2000からでも使用できるようにする方法を どなたか、ご存知ではありませんか? OSは、98 と 2000 インストールした状況での話です。
446 :
デフォルトの名無しさん :03/03/06 19:05
VC++6.0を使っているのですが、 プログラムを作っている最中に、いきなりtabやEnter,Spaceのキーが効かなくなりました。 スペースを押すと、今まで書いたコードが1字ずつ消えていったり リターンを押すと、改行がされないまま、次の行にカーソルが移動してしまいます この場合、どうすれば元の状態になるのでしょうか
447 :
デフォルトの名無しさん :03/03/06 19:07
>446 再起動 いや、正しい直しかたは知らないのごめん
>>447 あっ、本当に直りました
ありがとうございました
>>445 すんません
僕には分からないです
449 :
デフォルトの名無しさん :03/03/06 19:15
>>445 ムリ
98と2000で使ってるレジストリも違うし。
デュアルブートしてるんなら、それぞれ別のPCと考えたほうがいいよ。
>>445 同じ場所にもう一度インストールするだけで両方から使える
>450 分かりました。あきらめます。
>>446 insertキー押して上書きモードになってたんじゃないの?
>454 どうなんでしょうか。 それはさておき、 私の環境のVC.NETでも 似て非なる現象に出会ってます。 発生するタイミングは適当としかいえない タイミング。 起動したとたんもあるし、そうじゃないときもある。 再現させろと言われてもできないが、一日やってたらそのうち発生するレベル。 状況は>446と似ているが、微妙に(?)違う。 Enterキーを押すと、次の行にいかず、行と行の間にいくw タイプするともちろん上書き。 でも見かけ上は明らかに描画がおかしく、 重なった文字がつぶしあっているようにも見える。 VCの再起動でなおる。 ファイルが壊れるとかそういうのはないので さっさと保存ー>再起動 って感じ。 まぁ最近VC使ってないんで得に困ってない。 似たような話しあったんで書いてみました。 みなさんいかが?私だけ? ちなみにインスト直後から発生してます。 WinXP VC.NET
457 :
はじめまして :03/03/07 15:56
今エクスプローラみたいのを作成していて ファイルの拡張子に対応したアイコンをリストビューに割り当てる というのに挑戦しています。 HIMAGELIST himlSmall; SHFILEINFO shfi; himlSmall=(HIMAGELIST)SHGetFileInfo((LPCSTR)filename,FILE_ATTRIBUTE_NORMAL,&sfi_s,sizeof(SHFILEINFO),SHGFI_SMALLICON |SHGFI_SYSICONINDEX); ListView_SetImageList(hlist, himlSmall, LVSIL_SMALL); としてはじめにイメージリストをリストビューに割り当て その後は行を追加するごとに SHFILEINFO sfi; SHGetFileInfo((LPCSTR)fimename,FILE_ATTRIBUTE_NORMAL,&sfi,sizeof(SHFILEINFO),SHGFI_USEFILEATTRIBUTES | SHGFI_SMALLICON); のようにして取得したイメージリストのインデックスを リストビューに追加する際に利用して LV_ITEM item; item.mask = LVIF_TEXT; ... ... item.iImage = shfi.iIcon; ListView_InsertItem(hlist, &item); このような感じにしているのですが、 なぜか、かならず、ドライブを共有している時に出てくる手のアイコン、 が表示されてしまい、思ったとおりのアイコンがまるで出てきません。 何か原因がわかる方いらっしゃいますでしょうか?
458 :
デフォルトの名無しさん :03/03/07 16:01
2回目のSHGetFileInfoに SHGFI_SYSICONINDEX がない
459 :
はじめまして :03/03/07 16:09
>>458 やってみましたが、やっぱり共有のアイコンが何故か表示されます。しかも全行。
_, ._ ( ゜ Д゜)
item.mask = LVIF_TEXTに LVIF_IMAGE がない
462 :
はじめまして :03/03/07 16:35
>>461 う、うまくいきました!ありがとうございまう!
もう随分長く考え込んでいて諦めかけてたところでした。。。。
ダイアログにラジオボタンを4つ作って それぞれ2つづつグループボックスで囲んで グループにチェックを入れているんですが 片一方のグループのボタンを押すともう片一方のグループの チェックまで外れてしまいます. どうすればいいですか
あげ
各グループの先頭ラジオボタンのプロパティを開いてグループにチェック
片一方のグループ先頭のラジオのプロパティに グループのチェック がない
何とか解決しました・・・ ありがとうございました
468 :
デフォルトの名無しさん :03/03/08 00:12
LVM_SETTEXTCOLOR で、リストビューのテキスト色が変えられるらしいですが、 行ごとに違う色を指定って可能なんでしょうか?
オーナードローなら出来るンじゃないかな。
470 :
デフォルトの名無しさん :03/03/08 01:32
かすたむどろー
最近はVB使う人の方があまり教えなくつめたい人種になってきたな。
472 :
フォルトの名無しさん :03/03/08 11:42
VC++.netを使ってスケルトン使わず最初から自分で作りたい時は 新規作成から何を選べばいいのでしょうか?
473 :
デフォルトの名無しさん :03/03/08 13:27
makefileで project.obj : project.cpp project.h; cl project.cpp としたとき fatal erro project.h:プログラムが見つかりません とエラーが出ます。ちゃんとファイルあるし、なぜだかよく分かりません。 お願いします。
474 :
デフォルトの名無しさん :03/03/08 13:52
シフトJISをJISに変換するAPIを教えてください
エクセルとかワードを起動する時に一瞬出てくる画面は どうやって描画するのでしょうか? リソースに含まれているビットマップを 画面の中央に決めた時間だけ表示できればいいです。 お願いします。
477 :
名無し@沢村 :03/03/08 16:30
>>472 ヌヒよ、「Win32アプリケーション」を選択して、ウィザードで「空のプロジェクト」をオンにするといいぞ。
沢村さんから教わるのは2度目です。 有難う御座いました。
479 :
デフォルトの名無しさん :03/03/08 21:56
480 :
デフォルトの名無しさん :03/03/08 22:00
恋の予感
481 :
デフォルトの名無しさん :03/03/08 22:36
int bch = '\0"; の\0ってどういう意味でしょうか?
482 :
デフォルトの名無しさん :03/03/08 22:38
'\0';の間違い
484 :
デフォルトの名無しさん :03/03/08 22:44
>>481 初心者向けのC言語入門書を見ることをオススメする
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>483
485 :
デフォルトの名無しさん :03/03/08 23:10
ラーメンくいてえ!
486 :
デフォルトの名無しさん :03/03/08 23:35
VC++.netで#include<iostream.h> としたらエラーになるんですが、何が間違ってるんでしょうか?
ぬるぽって言うとなんでなぐられるねん?
488 :
デフォルトの名無しさん :03/03/08 23:53
VC6の環境にPlatformSDK(のCoreSDK)を導入しようとしています。 例えば 2001-November というバージョンだと、インストールメニューに includeとかlibとかのPATHをVCにセットアップする項目があるのですが、 この 2001-November より後のバージョンでは消えています。 しかたがないのでPATHを手動で[ツール]-[オプション]-[ディレクトリ]にて 更新していますが、これは間違っているのですか?
iostream.h は古い C++ 規格のもので原稿では iostream かと
2001 年 10 月リリースのは VC6 には対応してたと思うが それ以降のは見捨てられていて VC6 では使えないとか
モンドウムヨウ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>487
>>486 どうしてあなた方厨房はエラーの内容を書かないんですか
>>494 わざわざエラーを書かなくても一目瞭然で答えられる内容だからです。
>>491 VC6でもOct.2002は使えるが?
スタートメニューにVisual Studio Registrationという項目があるはず
497 :
デフォルトの名無しさん :03/03/09 01:36
498 :
デフォルトの名無しさん :03/03/09 12:00
すいません どこで聞いたらいいかわからなかったんで、質問させてください 前々から使いにくいと思ってたんですが、VC++で「行番号」って表示できないでしょうか?
CStringやらCFileのようにCから始まるオブジェクトや関数はMFC のものだって認識しても間違いないでしょか?そんな覚え方やめた ほうがいいです?
>オブジェクトや関数 いや関数なんてないか、Cからはじまるオブジェクトに訂正
501 :
デフォルトの名無しさん :03/03/09 12:45
>>501 そうそう 右下に小さくなら表示されてますよね?
あれを普通のエディタみたいにコード書いてる横に表示させたいんですよね
VC++6とVC++.netを比較するとどちらが扱いやすいのん? また、双方の短所と長所を教えてくだされ。
扱いやすさなんて感性的なもの人それぞれ
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; }
ライブラリの仕様を理解していないから
507 :
デフォルトの名無しさん :03/03/09 13:28
デバッグのやり方を全く知らないので、ビルドしたらすぐ実行して、おかし かったらソースを眺める、ということをしています。 もしとんでもないコードを書いていたら、(開発環境の)OSごと落ちる 、ということはあるんでしょうか? もしあるなら、なんでもすぐ実行するのは危険なんでしょうか?
>>507 >落ちる、ということはあるんでしょうか?
よくある。書いてるソースの内容にもよるが。
>危険なんでしょうか?
頭に超がつくほど危険だ。
君は終了条件が存在しないループを書いたことはあるかい?
>他人が作ったライブラリでもCから始まるクラスはよく見るよ。 >MFCだけのものではない。 あるのですか・・Cってなんだろう。まさかC++のCじゃあるまいしなぁ
>>505 #include <iostream>の下に「using namespace std;」と書け。
質問があります。 MFC AppWizardを使ってダイアログベースのプロジェクトを作り、リソースエディターでエディットボックスのオブジェクトを作ります。 ここからが質問ですが。 ビルド&実行し、作成したエディットボックスにフォーカスを当てて、リターンキーを押すとプログラムが終了しまう動作が理解できません。 幸いエディットボックスの複数行(M)にチェックをいれると終了しなくなりますが、その理由がわからず夜も眠れません。 よろしくおねがいします。
.NET Studioを使ってます。 ダイアログエディタでコンボボックスを配置したんですが ドロップダウンの高さを指定する方法がわかりません。 VC++6.0だと枠のサイズを変えようとすると コントロールそのもののサイズではなく ドロップダウンのサイズが変更されるようになっていたように 思うんですが・・・ なんで起動させて▼ボタンを押してもドロップダウンしません・・・
>>518 デザイン画面で▼ボタンをクリックした後、枠に表示されるハンドル(■)を
ドラッグしてみなされ。
速レスありがとん!できました、できました。 実は2ちゃんブラウザ開発中だったりする。 このコンボボックスは書き込みの名前入力用。 ゾヌみたいに一度入力した物はドロップダウンで出てくるようにと。
521 :
デフォルトの名無しさん :03/03/09 19:23
SDKで作っています。 ポップアップウインドウを作成したのですが、 タスクバーに16×16のアイコンが表示されません。 どなたか表示させる方法知っている方がいたら教えてください。
____
/∵∴∵∴\
/∵∴∵∴∵∴\
/∵∴∴,(・)(・)∴|
|∵∵/ ○ \|
|∵ / 三 | 三 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|∵ | __|__ | <
>>505 end1って何
\| \_/ / \_________________
\____/
______.ノ (⌒)
//::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::| /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄ `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′
523 :
デフォルトの名無しさん :03/03/09 20:00
前、スプラッシュウィンドウの出し方を聞いたヤシですが、 その後検索して調べた結果、ヤパシは分かりませんですた。 詳しく教えていただけないでしょうか?
526 :
デフォルトの名無しさん :03/03/09 20:55
MFCをお使いであれば、以下の操作で簡単に導入することができます。 [プロジェクト]メニュー [プロジェクトへ追加] - [コンポーネントおよびコントロール]コマンド [Visual C++ Components]フォルダの[スプラッシュスクリーン]を 選んで挿入ボタンを押す。 ↑ っていうのが検索でひっかかったよ メーリングリストとかにも色々書かれてるからそっちもマメに見るべし
>>517 >デフォルトのプッシュボタン = OnOK
ありがとうございました。
>>526 親切にありがとです。
自分は、MFC使ってないのでどうにもなりませんでした。
しかも.netなのでこれがあるか分かりません。
6.0の友達に試してもらったら、ちゃんと動いたとのことです。
単純なAPIでビットマップを表示することはできないんですかね?(画面のセンター)
何か最近VSが飛びやすい。しかもただ飛ぶだけじゃなくてOSごと逝ってしまう。Win2000なのにな。 何でだろ?
俺も前にスプラッシュスクリーン朝鮮してみたけど挫折した・・・。
という事で
>>528 には自前でダイアログ作ってそこにビットマップを張りつける方法を提案する。
>>526 .netでそれなくなったんだよね。
それともおいらが見つけられないだけ?
>>530 初心者は良く手抜きしてモーダルにすると泣きそうになってるが、
モードレスダイアログ使えばめちゃめちゃ簡単だな。
モードレスダイアログでタイマー指定して一定時間たったら消す……と。
>>498 行番号表示は、
VisualC++.NETでは可能。オプションとカスタマイズのあたりを探してくれ。
VC6は覚えてない。できたような気もするが…
>>531 コンポーネントギャラリー無いねえ。困ったもんだ。
ファイルをD&Dしてファイル情報がリストに表示できる物を作ろうとしています。 CformViewを基本クラスにしてリストビューを貼り付けました。 ウィンドウのサイズを変更したら貼り付けたのがいっしょに大きくならないです。 これはどうすればよいのでしょうか? 基本クラスの選択を間違えたのでしょうか? ウインドウサイズ変更の際に何か関数を呼ばなくてはいけないのでしょうか? よろしくお願いします。
age
> ウインドウサイズ変更の際に何か関数を呼ばなくてはいけないのでしょうか? そうです。以上
つーかCFormViewじゃなくてCListView使えって話だろうな > 基本クラスの選択を間違えたのでしょうか? そうです。以上
538 :
デフォルトの名無しさん :03/03/10 04:38
VC++6.0、WINXP、MFCの環境です。リストボックスから選んだ項目を削除する にはどういったコーディングをすればよいのでしょうか?御教授お願いします。
541 :
デフォルトの名無しさん :03/03/10 11:34
Visual c++ 6.0はなんとかビルト、コンパイル、実行ができたのですが、 Visual Stdio Netになったら、プログラムを書いたはいいけど、 どうやって実行させたらいいか、もう皆目分かりません。 ヘルプ読んでも日本語が分からなくって。。。 どなたか教えて下さい!!!
> ヘルプ読んでも日本語が分からなくって。。。 Hmmmmmmm. Well, can you understand English?
日本語が分からないということは外国人の方ですか? 英語のヘルプを読むか日本語学校へ通うことをおすすめします。
日本語訳がおかしいとか考えつかないんだろうなぁ。 外国人著者 日本語訳の技術書なんて読まないんだろうなぁ。
低学歴は英語のヘルプを読もうなんて考えつかないんだろうなぁ。
547 :
デフォルトの名無しさん :03/03/10 13:06
つか、日本語版なのに英語ドキュメントやめれ。
訳がおかしかろうと概要さえつかめれば問題はないと思うが どのみち使ってみないことには説明通りに動作するか信用できないし
C++でWindowsを組む時に プロジェクト→設定→リンク で、libを追加したよね? 何だっけ?ド忘れしてしまった。
>>550 そう!それだ!ありがとう!
あと、何かあったけ?
ソース配るとき面倒だから、#pragma comment(lib, "winmm.lib" ) 埋めとけ
>>522 わかった、ありがとう!
もう1度最初からやり直すか…。
554 :
デフォルトの名無しさん :03/03/10 15:57
VC6でビルド完了した時に鳴る音が鳴らなくなってしまったんだけど 何でだろう? 設定変えた覚えも無いし・・・
>>554 他のソフトの音は問題なく出るんだけど
VCだけがなぜか出ないんですよ
2年くらいそんなこと無かったのに・・・
だから、サウンドの設定はどうなってるのよ。 オーディオの設定じゃないよ。
>>558 おっしゃる通りコンパネで設定したらOKでした。多謝!
ビルド完了すると、どんなあえぎ声が聞こえてくるように設定したのですか?
「ウエー・ハッハッハッハッハー」
>>560 「キタ━━━━━━\(゚∀゚)/━━━━━━ !!!!!」
満場一致で 561 が支持されますた
「ぬるぽ」
566 :
デフォルトの名無しさん :03/03/10 19:18
___ ガスッ
|___ミ ギビシッ
.|| ヾ ミ 、 グシャッ
∩_∧/ヾヽ
| ,| ゚∀゚). .| |;, ゲシッ
/ ⌒二⊃=| |∵.
.O ノ %`ー‐'⊂⌒ヽ ゴショッ
) ) ) )~ ̄ ̄()__ )
ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_(
>>565
ビルド完了のたびに殴らにゃいかんのか・・・
565 が一番萌えるということでよろしいか?
>>570 バグの総合商社のVC++6付属STLをSTLPortに差し替えずにそのまま
使ってる香具師の気が知れません。
VC++で作成したファイルの逆コンパイルの仕方が知りたいです。
#define DECLARE_HANDLE(x) typedef WORD x って定義されてますよね。 ハンドル型はDECLARE_HANDLEマクロを使ってWORDの別名定義にされてる。 なのにどうしてsizeof(HANDLE)の結果は4バイトになるか、解かる方いませんでしょうか..
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
マウスの座標を教えてください
マウスは常に動かしているので何とも言えません
>>574 ナニしたいか知らんが、クラック目的なら割れサイト回ってソフトICE使え。
マウスの座標を取得する方法を教えてください
>>581 ありがとうございます
こんなに人に優しくされたのははじめてです・゚・(ノД`)・゚・
583 :
デフォルトの名無しさん :03/03/11 15:24
コンソールアプリてなんでしょ? MFCとかテンプレの基本的な差別ができません。 解説されてる所ないでしょうか。
差別はいけません
無差別格闘流
586 :
デフォルトの名無しさん :03/03/11 18:56
>>580 何をしたときのマウスの座標を聞いたほうが。
いごかしたとき、とかおさえつけたときとか。
マウスの囲碁化?
外国の方からアドバイスが寄せられたようです
591 :
デフォルトの名無しさん :03/03/11 21:37
592 :
デフォルトの名無しさん :03/03/11 22:57
double型をMessageBox(?)で表示する場合のコーディングを教えて 下さい。
char szText[100]; double lfValue = 3.141592; sprintf(szText, "%lf", fValue); MessageBox(szText); (未確認)
MFCなら CString::Format() だね
デスクトップを親ウィンドウにして作ったモードレスダイアログを タスクバーから消す方法ある?
>>595 &= ~WS_EX_APPWINDOW
WS_EX_~は拡張ウィンドウスタイルですか・・・ 明日試してみます。サンクス。
599 :
デフォルトの名無しさん :03/03/12 00:43
600 :
デフォルトの名無しさん :03/03/12 00:53
マルチうぜ 推薦図書スレ逝け こんな奴に教えられる新入社員かわいそ
602 :
デフォルトの名無しさん :03/03/12 01:32
M$の例の24冊なんてどう?
604 :
デフォルトの名無しさん :03/03/12 17:14
char a[10]; strcpy(a, "abcdefghi\0"); としますよね。 それで、 a == "defghi\0" という風にaの最初を3つ分ずらすにはどうするのでしょうか?
>>604 std::copy(a+3, a+strlen(a)+1, a);
>>604 文字列の最後のnulは自動で付くから自分で付ける必要はない
&a[3]
for(int i=0;i<7;i++) a[i]=a[i+3];
609 :
デフォルトの名無しさん :03/03/12 19:10
ありがとうございます。
stdクラスって何だ。 どういう思想または理由で存在しているのだ。 簡潔に教えれ。
そんなクラスはない
612 :
デフォルトの名無しさん :03/03/12 22:15
VCで常駐プログラムを作ったんだけど、 時々exe自体が壊れてしまい、起動しなくなることがあります。 理由の見当がつくかたおしえてください。 2000台に1台の割合くらいで発生しているようだ。 OSはたぶん95系だと思う。
本当にくだらなさすぎる&的外れっぽい質問なんですが・・・・・ MSのVC++とBorlandのC++builder ↑ この両者に違いはありますか? 前者にはヴィジュアルのVがついてますがどっちも同じように見えます。 ぶっちゃけ、ボタン置いたりしてプログラム書く辺り同じような気がするのですが。 大学で後者を使ってますが、家でもやりたいのでどちらを買うか迷ってます。 恥ずかしい質問ですがネタではありませんので・・・よろしければお答えください。
ずれてるし∧||∧ できれば使い慣れた(そこまで使いこなせないけど)後者を使いたいのですが VC++とC++って違うものなのかそこのところさっぱり分からず困ってしまいました。
>>614 恐らくスレ違いでしょうが、評判を聞くとBCCの方が上なようです。
(ANSI C++への準拠がBCCの方が上らしい。)
当方VC++しか触ったことがありませんが
VC++でも特に不自由ないです。
全然、参考になりませんな。スマソ。
stdクラスはないんか。 んでは噂に聞いたテンプレートか。 テンプレートって便利ー?
>>613 VC++はVBほど簡単じゃない(全然Visualじゃない)ですが、
C++BuilderはVB並に簡単です。
Builderの方が、いろんなコンポーネントなど簡単に実装できます。Delphiライクです。 欠点はexeのサイズが異常にでかくなる(当然スタチィックリンクでの配布の話)ことと、 シェアが圧倒的に少ないのでソース再配布時にネックになるかも知れないこと。 VCはいろいろ面倒です。でも一般企業ではほぼVC使ってると思います。
スタチィックはねーだろ、とセルフ突っ込み。
「性的結合」と100人中72.8人は思っただろうな… でも、書いちゃうやつはおれひとり~
レスくれた方々、こんなくだらない質問に答えてくださって本当にありがとうございます。・゚・(ノД`)・゚・。 将来はSE志望なので、慣れるまで大変そうだけど頑張ってVC++で勉強したいと思います。
オフスクリーンがうまくいかないんで、誰か教えてください。 まず、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 ;
// 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); }
んで、呼び出し方 //------------------------------------- // 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); } こんな感じ。 だれかわかる人教えて!
>>624 の5行目くらいの
hBmp = CreateCompatibleBitmap(hMemDC,m_Size.cx,m_Size.cy);// ビットマップの作成
は
hBmp = CreateCompatibleBitmap(hMemDC,rect.right,rect.bottom);// ビットマップの作成
にかえてちょ。
m_Sizeは使ってなかったよ・・・。
これでよろしく!
rectなのに幅を出さないで座標を指定しているようだが、 左上は0,0固定なのか?
昔、DOSのソフトを作っていたのですが、WindowsプログラムでもFileの読み書き(アスキー)は fstreamでするのですか?
何を使うかは勝手なので好きなようにやればいい
630 :
DirectX beginner :03/03/13 15:39
DirectXでゲームを作っているのですが 音を多重再生させるために音ごとにスレッドを立ち上げ それぞれで ::CoCreateInstanceで DirectSound8インスタンスを作ろうかと思っています。 (一つのアプリがいくつもスレッドを立ち上げそれぞれで DirectX インスタンスを作成することになります) こうするとプログラムが簡単になるのですが この方針は問題ありますでしょうか? ご指南よろしくおねがいします。
>>627 ん?どゆこと?
一応左上は0,0固定です。
幅は出す方法あるの?
↓話にならん。帰れ。
↑俺のこと???
↑そうお前だ。
635 :
デフォルトの名無しさん :03/03/13 16:04
ぬるぽ
>>623 単純に絵の出すプログラムじゃないの?
いや、OnPaint()に対応していないし、
OnTimerはいつセットしているの?
Main()で一発描くだけだと、一瞬描かれて
消去されているかもよ。
HINSTANCE hInstance; hInstance = (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE); ↑ダイアログプロシージャで上の行がエラー(警告)になります。 エラー(警告)内容: warning C4312: '型キャスト' : 'LONG' からより大きいサイズの 'HINSTANCE' へ変換します。 警告といっても気になるので、どこを修正すればいいでしょうか? ・・・これだけの情報では足りないでしょうか?
>>636 FillRectで書いた四角を表示したいんです。
んで、OnPaintだと処理が遅くなるので使わないことにしてます。
OnTimerですが、実際にはmain()の一番下で呼んでいますが、
ここに書くの忘れました。すみません。
SetTimer(S_TIMER , 100 , 0);
S_TIMER は 1 です。
この状態で、DCに直接書けば当然書けます。
よろしくお願いします。
>>637 ほらよ
#pragma warning(disable:4312)
>>639 なんか強制的ですが、たしかになくなりました。
ありがとうございました。
>>636 m_Graph.CreateGraph(rect);
でビットマップ作成した後、
WindowのMapModeとかView,Windowを変更してないよね。
とりあえず、速度は無視してOnPaintでBitBltを使って描けるか試してみたら。
あと、TopとLeftを0,0と仮定しているけど大丈夫だよね、変えてないよね。
なんか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); の下に入れたらできたよ。 でも動きがちょっと不安定。
リストビューコントロールにエクスプローラのようにファイル一覧を 表示させる方法がわかりません。 リストボックスならDirでできるようですが...
ピクチャーコントロールにビットマップ(リソース上)を表示するにはどうすればいいですか?
>>643 もしかして勝手にやってくれると思ってる?
プロパティシートにアクセラレータつけて、 コントロールに普通の(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); }
>>645 自動でないことはわかっています。
それをする関数がわからないのです。
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 構文エラー となってしまうのですが、何が足りないのでしょうか。
;
abcって何者だよ?
すいません。間違えました。 #include <iostream> using namespace std; int main() { cout << "abc"; return 0; } error LINK 2019 未解決の外部シンボル fatal error LINK 1120 外部参照が未解決です。 と出て本文にはフォーカスがかかれないのですが、どういうエラーなのでしょうか?
すいません。フォーカスがかからないの打ち間違えです。
リンクエラー 必用なライブラリをリンクしていないとか
656 :
デフォルトの名無しさん :03/03/13 21:53
フォーカスがかかれないってどういう意味? キーボードフォーカス?
MFCアプリウィザードで基本クラスをCFormViewで作成しますた。 これを実行すると、クライアント領域がへこんでいまつ。 へこまないようにするにはどうやるのでつか?
660 :
デフォルトの名無しさん :03/03/14 00:55
>>未解決の外部シンボル 関数の名前を打ち間違えていることが圧倒的に多い。
>>660 マルチを相手にする事は無い。しかも割れっぽいし。
割れ?
質問!! VC++で、在中させて、例えばメール欄に1と打つと sageと自動的に出てくるようなプログラムを作りたいのですが… 文字をキーボード入力から出力させるインクルードファイルと 識別子がよくわかりません!! 教えてください~!
>在中させて >在中させて >在中させて
常駐させて全てのウィンドウに適用させんの? そんなんじゃまくせーだろ。 つーかそれデバイスレベルの問題だし、質問の意味がワケワカメ。
すみません、ど素人なもので(゚д゚;) 自分的にはキーボードマクロのようなものが作りたいわけなのです…。 自分の決めた文字列をうつと、その文字列が来ると用意しておいた、 自分の打ちこみたい文字列を読みこんで、エディットボックスに、 それを表示させたいのですが…。
仮名漢に単語登録するのではいかんのか?
自分で作ってみたかったんれす(;д;) プログラマ素人から一皮むけたいのれす(;д;)
>>669 Windows アプリの駆動方式を丸呑みに把握しろ。
そうすれば素人からは脱却したと言えるし、そもそも 664 のような質問を人に
しなくなる。
671 :
デフォルトの名無しさん :03/03/14 19:03
>>664 色々考えてみたんだが、方針としてはエディットコントロールを
サブクラス化すればいいんかねぇ。
具体的には、SetClassLong() で、エディットコントロールのウインドウ
プロシージャのアドレスを独自のプロシージャにフックすれば
いいのかな?
>>669 人から聞いてやっている奴が一皮剥けるかよ( ´,_ゝ`)プッ
>>672 まだ自分で素人といってるんだから長い目で見てやれよ。
これをきっかけにプログラミングの楽しさを知って天才プログラマーになるかもしれんやんけ。
--====・====-- --====・====--
675 :
デフォルトの名無しさん :03/03/15 03:14
恥ずかしながら、変なところではまってしまいましたので、質問です (VisualC++6.0) VC++でダイアログベースのクラスをClassWizardで作って保存して、やれやれと思ったらクラス名の先頭に”C”を付けるのを 忘れていることに気が付きました・・・ いつもなら、クラス追加前に保存しているので、また修正前からやり直すことが出きるのですが、今日に限って一気に修正し てクラス追加後に保存しちゃったので後戻りできませんでした その後、ソース中のクラス名に手動で”C”を追加したものの、ClassWizardで見るとクラス名に”C”が付いていません・・・ どうすれば、ClassWizardで表示されるクラス名を修正することができるのでしょうか
676 :
デフォルトの名無しさん :03/03/15 03:23
>>675 その習慣ヤメレバ?
ファイル名とクラス名は同じにする
ハンガリー人の書き方ってまだ根強く残ってるのか・・・ たとえばCascadeって言う名前のクラスをClassWizardで作って ファイル名がascadeとかになった時には腹が立った。 (設定画面でちゃんとファイル名の欄も変えればできるけど) それ以来ClassWizardでクラス作ることなくなったなあ あの暗号のようなIncludeGuardもうっとうしいし
うって変わってVC.NETはシンプルなコード吐いてくれる MSも方針転換かな
>>681 悪くいうと、あちこち機能が削られてる。
C言語はjavaやらと違ってハンガリアン使うメリットあんまりないよな。 関数宣言の仮引数が多少見やすいくらいだ。 てゆーかMFCとかで採用してる型名を先頭につけるだけ、 ってのは本物のハンガリアンとは違うんだろうが・・・
アジア人ならモンゴリアンだろ
685 :
デフォルトの名無しさん :03/03/15 11:55
CreateWindowEx でWS_VISIBLEを指定して作成し、 後からVISIBLEを消す(コントロールを消す)にはどうすればよいのでしょう? 何となく、SendMessageな感じですが使い方が。
686 :
デフォルトの名無しさん :03/03/15 12:57
>>685 SetWindowLongはどうですか?
ShowWindow(SW_HIDE)で消えないの? いや知らんけど。
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で作ったコントロールはこの方法では取得できないのでしょうか?
カンケーないけど。 #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); ではどうですか?
とりあえず 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);
>>689 > #define IDC_EDIT_RIGHT WM_USER+1
どうでもいいことだけど、なんか違和感がある。
あ、激しく外出か。スマソ。
>>697 実際に試してみようかと思ったけど、面倒でやめた。(w
MFC AppのプロジェクトだとMFCすぐ使えるんだけど、
Win32 Appのプロジェクトで使うのに、何をinclude したら
いいのかわからんかった。(汗
MessageBoxでリンカエラー出るし・・。
MSDNちゃんと読めば書いてあるのかな?
>>697 MFCプロジェクトで試してみましたが、ちゃんとハンドルが
返って来るみたいですよ。
子IDは 1234 で試してみました。
子IDを数値にして試してみてはどうでしょう?
702 :
デフォルトの名無しさん :03/03/15 17:51
ほんとだ!定数だと動きますね。 WM_USERって何なんでしょう?
>>702 #define IDC_EDIT_RIGHT (WM_USER+1)
こうしないと駄目なんじゃないの?
704 :
デフォルトの名無しさん :03/03/15 19:06
なるほど
>>701 ですが。
>>703 当たりっぽい。
#define SUB_WINDOW_ID (WM_USER+1)
これは問題なし
#define SUB_WINDOW_ID WM_USER+1
これはダメ
でした。
カッコがいるみたいですね。どっちも
エラーはでないけど、後者はどういう風に
解釈されるんだろ?
マクロは置き換えだからな。 交換法則が成り立つ場合は、いいがそうでない場合はとんでもない結果に なることがある。…っと C の基本をもっともらしく言ってみるテスツ。
もはや算数です
>>705 SUB_WINDOW_ID * 2
とした場合に(ありえないけど)
WM_USER + 1 * 2
と展開されてしまうので、( )をつけるのは常識だと思っていたのだが。
というかいまどき定数にdefineを使うな、と。
じゃあconst?
711 :
デフォルトの名無しさん :03/03/15 20:29
InternetAPI で、FTPクライアントを作成しています。Winsockは使っていません。 特定のファイルのパーミッションを知りたいのですが、方法がわかりません。 InternetAPIの中にそういうAPIかなにかがあるのでしょうか? もし無い場合、FtpCommandでなんとかならないでしょうか?
IDならdefineでいいでしょ。 どうでもいいことだけどWM_USERはユーザ定義メッセージに使う値だからね。 IDとメッセージとごっちゃになってるだろ。 たぶん基本的に混乱してると思うよ。
>>711 FTPプロトコルでわかるはずだが・・・
RFCなんて素人が読んでわかるものじゃない。 そんなもの読まないように。 基本的なFTPコマンドを解説サイトなどで調べればわかる。 あとはMFCのFTPクラスにまかせっきりで大体のことは出来る。 この板は好んで難しいこと言いたがるヤツいるから惑わされないようにね。
俺は玄人だが、読んでも分からなかった<(`^´)>
オモシ
定数はdefineではなくconstで定義すべき
>>714 RFCにはlsで出力される形式については記述されていない
よってパーミッションを得る方法はRFCを読んでも無駄
読んでいないのがバレバレな無知をさらす暇があったら
お前がRFCを読め
>>720 こりゃ一本取られましたな。ははは・・・・
死ね(怨)
春祭りですか?
RFCを読むことをオススメします
>>718 C++になってから、よく言われるけど、どうも
まだ慣れないんだよね。^^;
>>719 なんか注意点・欠点なんかあります?
constってメモリ食うのか?一応変数だからさ。どうなのよ?
どんな定義をしようとどこかのメモリーを食わなければ存在できない どこにとられるかは処理系依存
普通に考えて、constは一箇所、defineは出現箇所分メモリ食うんでないの。
#define VER "0.04e"の代わりとして、 const char* VER = "0.04e"; const char[] VER = "0.04e"; どっちが(・∀・)イイ?
>>727 コンパイラが勝手に最適化するんじゃないの?
ツールダイアログのエディットボックスで リターンキーを押した時の処理を追加したいのですが やり方がわかりませぬ.おせえぇて
>>729 constはわからんけど、defineを最適化ですか?
つーと、1箇所にメモリを確保してポインタで参照してくれる???
副作用でそうだけどなー、たとえば、変な所で値を置き換えられたりして。。。
constは、書き換え禁止だからそんなことは無いけど。
簡易株価チャートを作ってみたいのですが、ヤフー等からデータを取込んだりする方法は どこで学んだら(調べたら)いいのですか?
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ファイルを
ダウンロードして見れ。できたらまた戻ってこい。
>>731 むしろ逆。
#define の場合、文字列リテラルを除いて即値に展開される事が多いので、そもそも
書き換える事が不可能。
const の場合は、プログラムミスにより const を外したポインタアクセスを行う
殊によって書き換えができる。
もちろん、const でも可能な限り即値展開される。
>>727 const の実装が 1 箇所だったとしても、そこには結局アドレス指定してアクセス
するので、整数の場合はコードサイズは変わらない事が多いし、何より遅い。
>>733 すぐに思いつくのは、for で回して isdigit()
>>733 STL使えるなら isdigit だな
>>733 if ( strspnp( pszNumber, "0123456789" ) == NULL )
{
//全て半角数字
}
> strspnp ナニソレ?
>>727 マクロはコンパイル時に展開されるんとちゃうん?
だからマクロを挿入したとこにマクロの内容が書かれるのと同じと思ってる
ちがうん?
SpanIncluding
>743 _strspnp ダタ
749 :
デフォルトの名無しさん :03/03/16 12:29
チェックボックスのチェックを検出すなるにはいかにせよと?
752 :
デフォルトの名無しさん :03/03/16 12:43
われSDKつかわんとほっす。
当方、VC++を始めたばかりで、なおかつC++言語の超初心者です。 本を購入しようと思っているのですが、 「これならわかるC++―挫折しないプログラミング入門」 と 「プログラミング実習 VC++入門編」 のどちらを購入したほうがよろしいでしょうか?あえて、両方という意見はナシで。 ご返答お待ちしております。
パラメーターは誰かな? あんな幼稚なやつにSendMessaggeのパラメーターは理解されないに10円。
>>758 あー、すみません。誤解を招くような書き方をしてしまって。
C言語のほうもわかりません。あと、上記に挙げた本以外で初心者におすすめの
C++言語入門書があれば教えていただきたいな…と。
760 :
デフォルトの名無しさん :03/03/16 16:23
構文エラー : 識別子 'classX' がシンタックスエラーを起こしました。 というエラーが出てどうすればよいか分かりません。 どうすればいいんでしょうか?
761 :
デフォルトの名無しさん :03/03/16 16:28
実行中のEXEの名前を与えると、そのプロセスのハンドルを返す関数 つくってください お願いします。
>>760 クラスの定義の最後にセミコロンをつけ忘れていないかどうか調べる。
>>762 セミコロンはついてるから他に原因がありそうなのですが・・・。
他の原因は無いでしょうか?
>>763 そのクラスの上の方で struct / class を定義してるならそこをチェキ。
>>764 クラスの上で定義しているのは無いので、違う原因がありそうです
関数の定義のところで
'func' : オーバーロードされたメンバ関数が '<Unknown>' にありません。
とかいうエラーが出ているのですが関係ありますか?
>>765 cppファイルに
void A::hoge() [
}
のA::を書き忘れてるとか
ソ ー ス 晒 せ よ
cppでは void CAppDoc::func(classX* x){} としているのですが、何が悪いのやら・・・。
関数の定義と実装で、引数が違うだけだろ
ヘッダーファイル入れてるかと思ったら間違ってた・・・。
>>ALL こんな初歩的なコンパイルエラーの段階で回答することないんじゃないの?
772 :
デフォルトの名無しさん :03/03/16 19:57
>>756 えらいすんまへん。SendMessageおしえてくだせー。
773 :
デフォルトの名無しさん :03/03/16 19:57
サブクラス化したコンボボックスで、CBN_DROPDOWN のハンドラ内で、アイテ ムを動的に挿入しています。 for(...) { combo->AddString(...); } で、リリースビルドにすると挿入したはずのアイテムが、なぜか挿入されてない んですよ。いろいろ悩んで、ふと思い立ち for(...) { combo->AddString(...); Sleep(0); } とやったらうまくいくようになった。Sleep(0) を入れると何が起こるのか(完全に ひらめきなので根拠なし)、そしてなぜリリースビルドのときだけ不具合が出るの か。解説きぼんぬ。メッセージキューとか、その辺の関係でつか?
>>772 クリックイベントをオーバライドして、ハンドリングしたいウィンドウへ
ユーザ定義メッセージ飛ばせ、ということだと思うが。
てゆーか、最初の質問の意図がよくわからんわ。
775 :
デフォルトの名無しさん :03/03/16 20:49
>>774 あ、それもあるのですが、GetDlgItemのような感じで
GetCheck(HWND, ... );
のような感じの命令はないでしょうか?
776 :
デフォルトの名無しさん :03/03/16 21:13
先日画像処理の参考書の通りにプログラムを制作していたのですが、 マウスの反応を見る"Mouse.c"という簡単なプログラムをコンパイル後、 ビルドをするとリンクエラーが起きます。 コンパイル時には問題ないし、プログラムもミスがないか再三点検 したのですが、原因不明のまま悶々とした一夜を過ごしてしまいました。 マシンのOSはWindows XPで、Visual Studio ver4.0です。 今夜こそは安眠したいので、教えてください。
>>776 どういうエラーが出るのか書かないで、
原因がわかる人いると思ってんの?
そんなヤツいたら神だ。
画像処理の参考書のプラットフォームは? 「X68000で学ぶ画像処理」とか本のタイトルに書いてない?
ところでコントロールのサブクラス化ってクラスウイザードなんかで 自動化できるもんですか? いままでは自分でウインドウプロシージャ をプロトタイプから手打ちしてたんですが、皆さんもこんな感じ?
>>778 「C言語で動かす実践画像処理」という参考書でしたが、”詳しくは
専門の参考を参照のこと”という記述が、、、。
>>777 そうですね、なにせそれすらも忘れてしまう素人なので。
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
Debug/mouse.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
という表示ですが。
>>780 たまたま同じ本持ってたんで見てみたけど、特に
問題になる記述はなかった。リンカのオプションの
問題じゃないのかな。
プロジェクトはWin32アプリですか?
782 :
名無し@沢村 :03/03/16 21:58
ダイアログバーいくつか作ってメインフレームの上端にくっつけているのですが ダイアログバー1の下にダイアログバー2がくっついてる状態になります 最初から1の右に2をくっつけたい場合はどういうふーにすればいいですか
784 :
名無し@沢村 :03/03/16 22:18
>>783 ヌヒよ、適当に答えるが CFrameWnd::DockControlBar() の3番目の引数を指定してはどうか?
ふー
ぷー
ありがとうございます。
789 :
デフォルトの名無しさん :03/03/17 18:59
Win32 Applicationでプロジェクトを作成し リソースエディタでダイアログを作成したのですが このダイアログのソースやヘッダファイルはどこにあるのですか? ビルドしてもそのようなファイルが出来た形跡は無いのですが。
リソースエディタは *.rc を作成。 テキストエディタで覗いてみて。
791 :
デフォルトの名無しさん :03/03/17 20:40
dNode *dList::find_Node(const dNode &searchNode,dNode *pStart=NULL, int (*compare)(const dNode*,const dNode*) =dNode default_compare); ;' が、識別子 'default_compare' の前に必要ですというエラーがでるんですけど どうすればいいんですか?
792 :
デフォルトの名無しさん :03/03/17 20:47
default_compareの前のdNodeが不必要なのでは
エラーがまだ四つエラーがあります。 default_compare' : 定義されていない識別子です。 default argument' : 'int' から 'int (__cdecl *)(const struct dNode *,const struct dNode *)' に変換することはできません。(新しい動作 ; ヘルプを参照)
void dList::sort(int (*compare)(const dNode*,const dNode*) =dNode_default_compare) c:\my documents\vc\kuji\dlist2.h(42) : error C2065: 'dNode_defalut_compare' : 定義されていない識別子です。 c:\my documents\vc\kuji\dlist2.h(42) : error C2440: 'default argument' : 'int' から 'int (__cdecl *)(const struct dNode *,const struct dNode *)' に変換することはできません。(新しい動作 ; ヘルプを参照) 整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。 これも教えてください。
エラーメッセージのとおりだと思うけど・・・ int default_compare(const dNode *a,const dNode *b) { return /*aとbを何かで比較し結果を返す*/; } を用意してみれば?
796 :
デフォルトの名無しさん :03/03/17 21:20
#include<iostream.h>
デバッグするときに「ステップイン」というのがありますが、これって標準ライブラリの関数の 中まで追わないようにすることって出来ますか?今は、printfなんかが出てくるたびに カーソル行まで実行を使って回避してるんですが大変です・・・。
MSDNをみてもいまいち書いてることがわからないんですが わかるようになるにはどういう方法がありますか?
>>798 C/C++について、最低限の知識を持つ。
>>798 某に乗り換えろ
MSDNよりはわかりやすい
>>801 あぅ、気づかなかった(恥
こんなことで苦労していた自分って・・・。なにはともあれ、ありがとうございました。
803 :
デフォルトの名無しさん :03/03/18 15:06
InternetAPIでFTPクライアントを作っています。 あるタイミングで、特定ディレクトリ内のファイルのパーミッションが欲しいのですが、 どうもこれらのAPIにはパーミッションを取得する便利な方法がないようなので (知ってる方いましたら教えてください) FTPコマンドを発行してパーミッションを得ようと考えました。 で、 stat ディレクトリ名 のような形で、取得した文字列 ***-status of **: total *** -rw-r--r-- ************ -rw-r--r-- ************ ... ... *** End of Status のような形なので3行目から10バイトずつ各行、最後の行を除いて 格納して利用しようと思ったのですが、 どのFTPサーバでも必ずこれは通用するのでしょうか? ちょっと、VCの話題とずれますが、いつでも同じ(改行や表示順序含む) 規格で帰ってくるのでしょうか? または、もっと素敵なパーミッションの取得方法をご存知の方いらっしゃいましたら ご教授ください。FTPの知識はほとんどありません。。。
同じ形式である保証はない 古いデーモンならファイル名しか返してこないことすらあり得る ffftpのソースを見ることをすすめる 数々の形式に一つ一つ対応させているのが分かる
どっかで見たような質問・・・
806 :
デフォルトの名無しさん :03/03/18 22:06
int型のポインタをmallocして、値を代入しようとすると、 debugモードの場合、「ハンドルされていない例外が発生しました」って出てしまいます。 releaseモードだと問題ないのですが。。。。 こういう場合ってどうすればよいのでしょうか? どなたかご教授願います。
あなたが何らかのプログラムミスを起こしている。 リリースモードで厳格なチェックが行われていない事や、デバッグ用ルーチンを 含んでいない事が原因で問題が見えなくなっている可能性が高い。 デバッグモードでステップ実行をし、代入しようとしている先が本当に不正でないか 目で確かめる事。 これ以上の回答は、呈示している情報があまりにも少ないので無理。 もっと判断が欲しいなら再現する必要最低限のコードを晒せ。
808 :
Name_Not_Found A :03/03/18 22:51
Cの作成ツールであるVisual Studio.netを購入しようと考えてます。(今のところ) ほか良いツール有りますか?
>>808 目的によって答えが違うと思われ。
単に勉強目的なら、BCCフリー版で十分かと。
∩
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!こんなのを発見シマスタ!
/ / |
/ /| / \
http://saitama.gasuki.com/hiroyuki/ __| | .| | \
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ \_____________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
先生!マルチですか?
812 :
デフォルトの名無しさん :03/03/18 23:20
どうしてもポインタが理解できません 本を何度よんでみても、説明してくれてるサイトを見ても 良く理解できません 頭悪いのは判ってます こんな僕が理解出来るようにどなたか説明 していただけないでしょうか? お願いします。ネタじゃないです
猫でもわかるプログラミング
814 :
デフォルトの名無しさん :03/03/18 23:35
>>813 猫でもわかるプログラミングってなんですか?
>>813 いや、あそこはポインタに特に詳しいと言う訳では・・・
>>814 ぐぐれば出てくると思うけど、上に書いた通り。
漏れは申し訳無いけどポインタで躓いた経験が無いから、適当なサイトが紹介できない。
本では、前橋って人の 「完全ポインタ理解」 あたりがよく持ち出されるみたい。
邪論極論も併せ持つトンデモ本という話もあるけど、ようわからない。
釣りか、優雅だな
>>812 ガンガレ!
マシン語の勉強をするといいかもしれん。
「初めてのマシン語」みたいな本無かったかな。
Cのポインタを理解できないようではきっとマシン語勉強してもつまづくよ。
>>815 様
色々ありがとうございます。
猫は検索してみます。
書き方悪かったみたいなので、書き直します。
#include <stdio.h>
main()
{
int *p, i=10;
p = &i;
printf("%d\n",*p);
これなんですけどpにiのアドレスを代入して
printfで*pってやると変数iのデータが表示される理屈は
わかりますが、なんでこんな事するのですか?
何度もすいませんよろしくお願いします。
>>820 それはポインタの性質を知るためのサンプルでしょ。
実用性はない。
822 :
デフォルトの名無しさん :03/03/19 00:02
C++ の標準ライブラリには、配列、リストなどの基本的なデータ構造を取り扱うための汎用クラステンプレートが定義されている。クラステンプレートとは、任意のデータ型等を引数としてクラスを作成する機構と考えてほしい。 なお、標準ライブラリ中のこれらのテンプレート群を総称して、標準テンプレートライブラリ(STL: Standard Template Library)と呼ぶこともある。 標準ライブラリに含まれる汎用配列クラステンプレートは "vector" という名前であり、それが定義されているヘッダファイル名は <vector> である。例えば、次のように書くことで、任意の要素数の double 型データを要素とする配列オブジェクトを作成することができる。
>>820 すいません言葉足らずで、ポインタを実用する場合というのはどのような
場面なんでしょうか?
すいません何度も
824 :
Name_Not_Found A :03/03/19 00:03
>>809 どうも。
実際にプログラムを作成します!
>>820 ただのサンプルだからで使い方としては下の下、論外だ
入門書じゃわりとはじめのほうでポインタを教えているが本当の使い方は教えてくれない
データ構造とかアルゴリズムとかソートとかそのあたりに興味がでてきたら便利だと実感できると思う
構造体も覚えたら単方向リストでも作れ
理解を深めたいなら前橋ポインタ本がお勧めだ
詳細は推薦図書スレに譲る(テンプレのHPから探し出せる)
>>826 様
ありがとうございます。
聞いたことが無い単語いっぱいありがとうございます。
レス、メモ帳にコピペさしていただきます。
>>ただのサンプルだからで使い方としては下の下、論外だ
>>入門書じゃわりとはじめのほうでポインタを教えているが本当の使い方は教えてくれない
こういうことなのですね。
>>データ構造とかアルゴリズムとかソートとかそのあたりに興味がでてきたら便利だと実感できると思う
わかりましたまずここ理解してみます。
>>構造体も覚えたら単方向リストでも作れ
そしたらこれ作ります。
お付き合いいただきました皆様本当にありがとうございました。
精進してまいります。
818様 はじめて読むマシン語 これですかね?
>>812 関数の呼び出しのメカニズムはわかっているかな?
つまり、スタックの概念とか、値渡し、参照渡しとか。
関数をコールして引数に答えを返してもらう場合、
参照渡し(ポインタ渡し)にならざるを得ない。
printf()とscanf()の引数の違いも参考にしてみるといい。
ポインタを値渡ししているんですが。
そういう話をしてもわからないレベルだと思われ
>>812 818です。
そうそう、その本で真面目に全て理解する必要はないけど、
メモリのある1バイト(0~255の数値)をみたとき、それが、
アドレス、命令コード、データ、アスキーコード(文字コード)であるのかの区別が
つくようにして欲しい。
>>828 様
ご丁寧にレス頂きありがとうございます。
またご指導頂き誠にありがとうございます。
関数の入り口は理解しているつもりですので更なる理解を求め
早速教本片手にご指導頂いた点を重点にやってみます。
>>829 printf("%d\n",*p);
の*pは、ポインタの先っちょの値(=10)を渡しているのでポインタを渡しているわけではない。
printf("%d\n",p);
なら、ポインタを渡していることになり、この場合はiのアドレスが10進数で表示される。
また、
printf("%d\n",&i);
も同じ結果が表示される。
まあ、いきなりは無理なので一通り勉強したあとでもう一度このレス見て
理解できるようになることを祈る。
ガンガレ。
>>833 そんな当たり前のことを言われてもどう返答してよいのやら・・・
ここはVC++スレか・・・なら参照もありか。
>>818 様
レスありがとうございます。
ご指導いただいた内容理解しました。
BOLにあったので発注してご指摘頂いた内容理解してみたいと思います。
重ね重ねありがとうございます。
お付き合い頂いた皆様誠にありがとうございました
>>829 829=812と思ってた。スマソ。
ってことで、833は、812へのレスでつ。
837 :
デフォルトの名無しさん :03/03/19 01:26
>>804 返答ありがとうございます。
一般的にはがんばって対応させてるんでしょうか?
InternetAPIで、ファイルの一覧や、それらの作成日時だとか更新日時だとかサイズだとか
一通りわかるのにパーミッションだけは取得できないんですね。
何か他にいい方法はないのでしょうか・・・
838 :
デフォルトの名無しさん :03/03/19 08:49
「はじめて読むマシン語」はどうもZ80で説明してる みたいなんで、どうせ買うなら「はじめて読む8086」 がいいと思われ。
839 :
デフォルトの名無しさん :03/03/19 15:16
実行ファイルのアイコンに手持ちの画像を使ってみたいんですが VC++のアイコンエディタでは画像を読み込んでくれる機能はないようです。 どうしたらいいのか誰か教えてくれませんか?
>>839 画像をアイコンに変えるソフトを使えばいーじゃん。
ベクターとかに逝けばいくらでもあるだろ。
無事疑問が解決しました。 すごくくだらない質問をしてしまいましたね。すみません。
842 :
デフォルトの名無しさん :03/03/19 21:45
チェックリストボックスを使いたいのですが、どうすればいいのでしょうか? ぐぐったら、MFCのCCheckListBoxの使い方をちょこちょこ教えてくれるページは 出てきたんですが、SDKではどうやればいいのかさっぱりわかりません。 MFCでの解説ページで得た知識と、普通のリストボックスを使うときの要領で えいやっとコード書いてみてもさっぱり動かずというか、表示すらされず……。(つwT)
>>842 とりあえず初心者向けの解説本とか買って、読んでみようよ。
てゆーかさ、そんなレベルで無理にSDK使う理由はなに?
>>842 とりあえず、「猫でもわかる」でぐぐるってみる。
845 :
デフォルトの名無しさん :03/03/20 01:43
リストビューにドロップをしたいです。 WM_DROPFILESというのが、ドロップされると送られるらしいのですが、 リストビューの場合はどのようにキャッチしたらいいのでしょう?
>845 サブクラス化して WM_DROPFILESのハンドラを作成する。 他に方法あるかもしれないけど知りません。
847 :
名無し@沢村 :03/03/20 02:27
>>846 MFCならばCOleDropTarget
848 :
デフォルトの名無しさん :03/03/20 02:30
>>846 >>847 ありがとうございます。非MFC環境です。
サブクラス化というのをやったことがなかったので気が付きませんでした。
リストビューをサブクラス化したらWM_DROPFILESが受け取れました。
本当初心者な質問で申し訳ありません。ありがとうございました
849 :
デフォルトの名無しさん :03/03/20 08:03
Visual C++ 6.0用に作成されたカスタムウィザードって、 Visual C++ .NETからも利用出来るのですか? (ちょっと店を廻ってみたら、.NETしか売ってね~)
>>843 解説本は一応持ってますし、ラジオボタン、エディットボックス、リストボックス、
リストビュー、コンボボックスなどは問題なくSDKで使えます。
でも、チェックリストボックスは本にもWebにも解説が見つからないので
どうにもわからないんです。
MSDNライブラリのリストボックス系のメッセージもそこそこ
目を通したのですが、それらしいものが見つかりませんでした。
>>844 猫でもわかるには普通のリストボックスの解説はしてありますが、
チェックリストボックスの解説はしてないんです。
というか、猫でも解説してなかったからここで質問してるわけでして……><
851 :
デフォルトの名無しさん :03/03/20 09:50
>>850 LVS_EX_CHECKBOXESを入れればできると思う
>>850 APIバイブル2が参考になるかも。
あと、猫でものTreeView編も参考に。
リストビューじゃなかったのね
>>850 VBの参照設定のリストボックスを見た限りだとオーナードローをしてました。
855 :
デフォルトの名無しさん :03/03/20 13:36
プログラムの絶対パスを知る方法ってあります? 自分(実行中のプログラム)の位置を絶対パスで知りたいのです。
GetModuleFileName(GetModuleHandle(NULL), buf, sizeof(buf))
857 :
名無し@沢村 :03/03/20 13:48
>>854 オーナードローっていまいちよく分からん。
あれって何?
でけました。ありがとうございます!!!
>>858 自分で描画するという事だ。(自分とはコントロールの所有者の事だ)
実装手順の概要は
・リストボックスにLBS_OWNERDRAWFIXEDのスタイル設定
・WM_DRAWITEMのメッセージを受け取ったらDRAWITEMSTRUCTの内容を元に描画
を行えば良い。
チェックリストボックスを実現したければ、好きな所にチェックボックスの絵を
描けば良い訳だが、オーナードローは描画を置き換えるだけなので、チェックの
切り替えも自分で制御しなければならない。要するに面倒くさいという事だ。
後は自分で調べて判らなければ大人しくMFCでも使う事だな。
>>850 APIバイブル2、見直したけどあまり参考にならなさそう。
というか、ListViewでは難しそう。
いっそ、子供のいないTreeViewで実装したら。
VisualC++.NET Standardをインストしたんだけど・・・ 肝心のVC++が無いんだが・・・
>>781 Win32のプロジェクトでもう一度つくり直してみますね。
ありがとうございました。
864 :
デフォルトの名無しさん :03/03/20 19:38
プログラミングとは直接関係ない質問になっちゃうのですが、 VisualC++.NETの立ち上げ時の画面を初期(インストール時)状態に戻すにはどうしたら良いですか?
866 :
デフォルトの名無しさん :03/03/20 21:18
.NETって何なんですか? コンパイラは同梱されてないの?
868 :
デフォルトの名無しさん :03/03/21 00:59
MFCで以下のような形でドラッグを実現していました。 COleDataSource dataSource; dataSource.CacheGlobalData(CF_HDROP, hDrop); DROPEFFECT result = dataSource.DoDragDrop(DROPEFFECT_COPY|DROPEFFECT_MOVE); なにも考えず、以前書いたソースを、今作っている非MFCでの環境で使おうとしたところ COleDataSource はMFCのもののようなのでうまくいきません。 非MFC環境で同じことをするにはどうしたらいいのでしょうか?
ありがとうございます。オーナードローとリストボックスでぐぐったら、 適切なサンプルが出てきました。なるほど、こういう風にやるんですね。 メンドクサクテヤッテランネェ……_| ̄|○ オトナシクリストビューニLVS_EX_CHECKBOXESイレマス…… | λ............
>なにも考えず、以前書いたソースを、今作っている非MFCでの環境で使おうとしたところ >COleDataSource はMFCのもののようなのでうまくいきません。 当たり前だボケ OLE ドラッグ ドロップ でググれ
871 :
デフォルトの名無しさん :03/03/21 13:12
DestroyWindow()を呼ぶと破棄されるウィンドウが親ウィンドウに対して WM_PARENTNOTIFYを送信するらしいのですが・・・ あるViewクラスを親としてDialogをCreate()し そのDialogのOnCancel()でDestroyWindow()を呼ぶようにしました。 これでDialogを閉じるとDestroyWindow()が呼ばれるようになったのですが 親のViewクラスのOnParentNotify()関数が呼ばれません。 DialogのプロパティのNo Parent Notifyはfalseにしてあります。 なぜOnParentNotify()が呼ばれないんでしょうか?
872 :
Help me :03/03/21 18:10
VC++で、 タスクトレイに常駐するプログラムを作成したいのですが。 タスクトレイに格納する方法までは分かりました。 で、問題なのが、たとえば他のアプリを使用中にF2キーを押したとします。 そのとき、常駐プログラムがF2キーを押されたと判断する方法がわかりません。 方法はSDK、MFCのどちらでも構いません。
874 :
名無し@沢村 :03/03/21 19:09
875 :
デフォルトの名無しさん :03/03/21 19:29
>>874 漏れも
>>872 に興味があって、その辺かなとは思ったのですが、
どのタイプのHookプロシージャを定義すべきなのでしょうか?
WH_KEYBOARDなんかは特定のアプリケーションのメッセージ
キューのみをHookするような感じですが。
RegisterHotKey()
>>874 おーい。レスの相手違うよー(藁
しかしこんなのがあったのか。なるほろ…
この辺のドキュメント、英語なんだよね。 なんとかして欲しいわ。
英語も読めんのか……
880 :
デフォルトの名無しさん :03/03/21 21:27
雰囲気 不陰気
>>879 日本語版なんだから翻訳すればいいのにさー。
日本人に対するいじわるにしか思えない。
大学入試の英語偏差値は60ちょいあったけど、
この程度では自由に読むには程遠い。
英語ヘルプを読むのに英語の知識はあまり必要ない
883 :
デフォルトの名無しさん :03/03/21 22:09
class div { private: int id; int name; public: div(); void setdate(int i, int c); void show(); }; div::div() { cout << "div::div()running..." << endl; setdate(100, 200); } void div::setdate(int i, int c) { id = i; name = c; }
ネイティブな言語の方が良いのは当たり前である。
885 :
VC++.net初心者 :03/03/21 22:12
コントロール変数の削除について質問ですが、 ClassWizardが無い.netではどのようにして削除 すればいいのでしょうか? ClassView上でDeleteキーを押しても削除されず できれば、ソースを直接触れない方法を探しています。 ご存知の方がいらっしゃればご回答お願いいたします。
void div::show() { cout << "id = " << id << endl << "name = " << name << endl; } int main() { div val; val.show(); int val2; cin >> val2; if (val2) return 0; } valが不正ということでエラーになるのですが なぜでしょうか?
>>885 ソース削除汁 by 追加するときもウィザード使わないでソースに直接書いてる俺。
そのほうが早いYO
すいません、書き忘れました。 VC++.net使ってます。参考書通りに記述したつもりなんですが。
>>886 それがソース全部?
初心者用の基本的な入門書からやり直したほうがいいよ
>>888 divはC標準ライブラリの関数のために名前がバッティングしている。
これはVCの制限。本当なら標準ライブラリは名前空間stdに包まれるので問題ない。
でも、std::なしにcout使ってるなあ・・・
includeもなしに使えたんだ
LPBYTE* p = new BYTE[128]; とかで確保したメモリのバイト数を調べる演算子や関数はありまつか? (sizeof(BYTE) * 128とかじゃなくて。)
893 :
デフォルトの名無しさん :03/03/22 14:09
QueryPerformanceFrequency()とQueryPerformanceCounter()の相違点と使い方を教えて下さい。 調べても、どっちも似たような事しか書いてなくて・・
>>893 えっと、なんだっけ。周期を取るみたいな。...他の人よろしく
>>892 >LPBYTE* p = new BYTE[128];
この時点で間違いに気づけ
>>895 ハァ?オブジェクト128個分のポインタで正しいじゃねーか。
ここはageだな
LPBYTE* p = new LPBYTE[128]; こうじゃないかと……
BYTE* p = new BYTE[128]; LPBYTE p = new BYTE[128]; 等々
確保サイズが知りたきゃvectorでも使え
すごく基本的な事だと思うんですが、引数に値が振られているのってどういう意味なんでしょう。始めて見た・・ float GetElapsedSeconds(unsigned long elapsedFrames = 1) ってあるんですけど。
デフォルト値
デフォルト値ってどういう時に使われるんですか?それにこの引数って関数内で使われてないんです・・ float GetElapsedSeconds(unsigned long elapsedFrames = 1) { static LARGE_INTEGER s_lastTime = m_startTime; LARGE_INTEGER currentTime; QueryPerformanceCounter(¤tTime); float seconds = ((float)currentTime.QuadPart - (float)s_lastTime.QuadPart) / (float)m_ticksPerSecond.QuadPart; // reset the timer s_lastTime = currentTime; return seconds; } // end GetElapsedSeconds()
>>903 将来使うために引数だけ用意されてるんじゃないの?
今のところ使わないからデフォルト値でユーザが指定しなくてもいいようにしてるだけで。
なるほど。どうもありがとうございました。
亀レススマソ
>>865 ツールボックス等が別ウィンドウで開いちゃうんです。
何か気持ちが悪いので元に戻したいのですが・・・・・。
ちなみにインストし直しても駄目でした。
どなたかわかりましたらよろしくおながいします。
間違えますた(スマソ BYTE* p = new BYTE[128]; でした。 自作関数でポインタだけ受け取って、 何バイト使ってるか判ったら楽とか思ってたんですが。
ポインタはあくまでもメモリの1アドレスを指しているだけだから、 そこから何バイト確保されているとか分かるはずがないことくらい分かりそうなもんだが……
>>910 えぇ、そうなのですが、
delete [] で、「確保されたメモリ」をちゃんと開放してくれるのなら、
OS側が何処から何バイトのメモリを使っているか、
云々の情報を持っているわけですよね?
そうならば、VC固有の関数でも何でも良いので、
そうした情報が取れないか、と思ったのです。
その辺、OSで管理してないんかな? DOS時代の malloc はOSのファンクションを呼び出していたと 思うんだが、new はどうなんだろ。
最近はオブジェクト自身にオブジェクトのサイズを 格納する事例がありますね。動的にサイズを得るのが 難しい or 不可能だから、こういう処理をしてるのかも。
VC++のmallocなら_msize、APIのLocalAllocならLocalSize。 ただ、newの場合なにやってるか分かったもんじゃないからこういう手段は使えない。
>>907 == 864
まさかとは思うが、フレームにくっついてた
ツールバーとかが分離してウィンドウになってしまうってこと?
ドラッグして適当な位置に移動させれば元の位置に貼りつくけど・・・
違ったら失礼。
>>914 VC++のMSDNみてたら、malloc と new は混在できないと
書いてありますた。
918 :
デフォルトの名無しさん :03/03/22 22:06
#define WIN32_LEAN_AND_MEAN って何をやらかしてるんですか?本にはおまじないとしか書いてなかったので・・
>>915 そうっすよね?
それがうまくいかないんすよ。
ああ、もうめっちゃ気になってキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
初期状態に戻す設定方法みたいなのはないんすかね?
>>920 そこまでいうのなら、関連レジストリ消して再インスコしかないね。
でも、危ないからやらないほうがいいけど、どうしてもやりたい場合は
レジストリバックアップしとかないとね。
再インスコしなくても、レジストリの関連パラメータを削除だけでいけるかもね。
そのパラメータがなんなのかはわからないけど。
誰もレスしてくれないので自己レス・・・(;´Д`) WM_PARENTNOTIFYは子ウィンドウが親ウィンドウに送信するというより 正確にはウィンドウスタイルにWS_CHILDをもつもののみ送信するといった方が良い。 ダイアログはポップアップかオーバーラップで作成するのが普通なんで たとえCreate()のpParentWnd引数に何かのウィンドウを渡そうが ダイアログはそのウィンドウにWM_PARENTNOTIFYは送信しない。 ややこし。
>>921 初心者の折れにレジストリなんていじれるわけないわけで・・・・・
>>923 んなら、アンインスコ→再インスコってのはどーよ。
ちなみにレジストリは、Ver6.0(しかもって無い)の場合は、
スタート→ファイル名を指定して実行(R)でregeditを実行。
マイコンピュータ
+HKEY_LOCAL_MACHINE
+SOFTWARE
+Microsoft
+VisualStudio
のVisualStudioがアンインスコで削除されていれば良いと思うけど。
>>924 アンインストールしてレジストリをチェックしてみますた。
「VisualStudio」はなかったんですが
「.NETFramework」と言うフォルダに3つのファイルがありますた。
これをいじるなり削除するなりすればいいんですかね?
うるせぇなぁ。 バックアップとって試してみりゃいいべよ。 何でもかんでも人に聞こうとすんなよボケが。
>>925 ぜんぜん別物だろそれは。
馬鹿かお前は。
>>925 これ以上は自分の責任でやってくれ。
人に聞いて調べる前に自分でやってみろよ。
ウザくてしかたがない。
929 :
デフォルトの名無しさん :03/03/23 21:09
class world { protected: // コメント... int n public: void gof(); }; VC++.netでコメント書き込むと文字"0x..."が認識できないとエラーになるんだけど なんでよ?
int nのうしろに;がないようだが。
932 :
デフォルトの名無しさん :03/03/23 23:26
すいません。not mfc にかきこしたのですが、スレ違いなようなので こっちに移します。 MFCのCFileというクラスで fileOut.Open(trgtname + strConFilePath, CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive, NULL); fileOut.Write(buf, sizeRead); fileOut.Flush(); fileOut.Close(); というソースがあるのですが、sizeReadはバッファの長さとして、(本当はwhileがあるのですが) れを、open, wrhite, close で書き換えたいのですが、 if((fp = open(fname, _O_BINARY)) == NULL){ return false; } write(fp, buf, sizeRead); close(fp); とまでは、かけたのですが何かうまくいきません。 どう書くべきですか? 教えてください。
>>932 意味がわからない・・
どううまく行かないのかも書いとくれ。
後半はC言語?
934 :
デフォルトの名無しさん :03/03/24 00:09
そうです。Cに書き換えたいのですが、 同じデータをファイルに書き出すと、違う結果がでるのです。 (while内はライブラリからデータをもらっているのでどうともいえないのですが)
だからどう違うのかと
もう冬休みなんだっけ?
質問です。 VC のオブジェクト(FormView ベースのときに貼り付けられるやつ)と、 クラスってのは何が違うんですか? VB から入ったものでこの辺の違いがよくわかりません。
春だなぁ。
939 :
デフォルトの名無しさん :03/03/24 03:23
Visual C++ = C++ でいいの? おなじでつか?
Visual C++ は C++。C++ は Visual C++ とは限らない。
Visual C++ は C++ とは限らない。
VisualC++はC++で開発できる開発環境ソフト。
>>937 それくらい自分で調べましょう。
……他人に質問するのは「調べる」とは言わないからね。(^_^;)
前に「ネットで調べれ」と言われて「だから2chで聞いてるんです」と開き直った奴がいたな。 2chで聞くこと=ネットで調べること という認識に驚愕した。
>>937 「Windowsプログラミングの基礎知識」(アスキー)をオススメ!
これとC++の基本図書を読んでから、もう一度質問してください。
ネットで調べるという表現が悪いと思われ 検索+過去ログ嫁というニュアンスなんだろうが ネットっていったいなんだろう、と素直に考える初心者にとって NOVAの授業でさえ「ネットで」になると思われ
「ネット」が何かということよりも「調べる」の方に重点を置いて欲しかった。 調べる=聞くだと思ってるんだから。
聞くことが間違いってワケじゃないけどね。 ニュアンスの問題だろうなぁ。
いや、
>>944 は「それくらい検索すりゃすぐ出てくるんだから聞く前に検索しろ」レベルの質問だった。
つまり質問者が検索してないのがバレバレだったわけ。
葬式=菊 これ定番
>>944 、
>>946-949 もし C スレの hiloshi の話なら、「ネットで調べれ」 ではないぞ。
http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html の 327-340 あたり。341 で騙りも出て祭りっぽかった。以下抜粋。
327 名前: hiloshi 投稿日: 02/10/23 20:58
すいません。また質問です。
char型の変数をprintfで表示するための変換指定子はなんですか?
%dでやると、JISコードの値が出てしまう・・
329 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:00
%c
つか、これくらいは聞くなよ。参考書読め。期待してるんだから頑張れよ。
332 名前: hiloshi 投稿日: 02/10/23 21:41
すいません。今度はもっと上級な質問をします。
でもオレの持ってる本には文字列は詳しく書いてるんですけど
文字のことはさっぱりで・・・。
333 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:42
何のためのWebだよ。
334 名前: デフォルトの名無しさん 投稿日: 02/10/23 21:43
>すいません。今度はもっと上級な質問をします。
じゃなくて、ある程度自分で調べてから質問しろよってこと
335 名前: hiloshi 投稿日: 02/10/23 21:46
ある程度調べるってことで、ここで質問してるんですよ
以降も DQN ぷりを発揮、858 で意味不明のスレ立てたのが晒されるてる。
952 :
デフォルトの名無しさん :03/03/24 19:57
vb6.0で作ったexeを、vc6.0でデバッグするしたいのですが、 プロパティのコンパイル設定で最適化なし、シンボリックデバッグ情報を作成、 した後、どのように関連付けていいのかわかりません。 まことに恐れ入りますが、教えていただけないでしょうか?
>>954 確かに言いたいことつたわらないどころか、まともな文章になってないですね。すいません。
つまり、VB(EXE)のソースをVC(DLL)側からデバッグ中にトレースしたいのですが、なんとかなりませんでしょうか?ということです。
いいたいこと、わかりますでしょうか?
VBではデバックできんの?
>>955 DLLをビルドしたプロジェクトを開いて、
プロジェクト→設定→(設定の対象を適当に選択)
→デバック・タブのデバックセッション実行可能ファイルでVB(EXE)を指定する。
→実行(F5)
でデバックスタート。
>>956 957
thx。でも、すでに957氏の方法でやっているんですよ。
だけど、VBではVCのDLLはうごくんですけど、VBのソースだけトレースできなく、
DLLがこけてもどこでこけたか、いまいちわかりづらいし、
VCではVBのEXEは動くんですけど、VCのDLLの部分しかトレースできないから、
EXEのどこでこけてるかわかりづらい。
VBのボタン押したら起動、終了するプログラムをVCの方でマルチスレッドでゴリゴリ書いてて、
例外処理 (初回) は Hoge.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。
とでてきて、どこでこれが起きてるか場所特定できないなかったので、
両方のソースを同時にトレースする方法でもないものかと思い尋ねてみたんです。
(なんかできっるぽいようなことがちらほらとWEB上に書いてあるんですけど、具体的方法が書いていないの。)
まぁ、原因はmutex(クリティカルセクション)の設定が悪かっただけなんですけど。
くだらん質問に答えていただき、どうもありがとうございますた。それでは失礼いたします。
(ちなみに、バグの個所わかってもなかなか全部消えてくれない。。。)
新人用にVC.NETの入門書探してたんですが 結局日経ソフトウェアの5月号が一番わかりやすそうでした。 初心者はどうぞ
>>958 そりゃ出来んわな。元のソースを工夫汁。
961 :
デフォルトの名無しさん :03/03/25 11:33
hoge.frm(VBのソース?)をVCのプロジェクトに追加したら、VCでhoge.frmをデバッグできるようになってますた。
vbのコンパイルオプションは
>>953 です。
>>962 すげー、出来るんだ~。勉強になりますた。
CTreeViewの中でアイテムテキストエディット中に、 アクセラレータキーを無効にするにはどうしましょう?
BeginLabelEditとEndLabelEditで編集の開始と終了をハンドリングして 編集中はアクセラレータキーをtranslateしないようにすりゃいいのか。
すみません、STLでの質問ですが メモリ確保に失敗したとき例外が投げられてるみたいですけれど 上手くcatchできません vector<BYTE> b; try{ b.reserve(1 * 1024 * 1024 * 1024); } catch(***){ // ←ここの***にクラスの参照入れるんでしょうけど、どのクラスか分かりません ... }
他のスレできくべきかと思いましたけど VisualC++を使ってること、初歩的な内容の質問だと思われたのでここで質問しました
自己解決できました catch(...){ }で捕まえることができました お騒がせしました
>>968 catch(std::exception& e){
std::cout << e.what() << std::endl;
}
とかやると、詳細をダンプしてくれて便利。
971 :
デフォルトの名無しさん :03/03/26 03:48
スタートメニューの整理をしてたら誤まって Visual C++ 6.0 Professional のショートカットを 消してしまい場所がわからなくなってしましました。 申し訳ありませんが、VC++6.0のショートカットの場所を お教え頂けないでしょうか? OSはWinMeです。
Visual C++ は catch ( ) で特定の例外を キャッチすることはできなかったはず。
できるがな
構造化例外とC++例外がちゃんと切りわけられてないな
>>972 どうもありがとうございます。
おかげさまで復旧できました。多謝!
VC++のC++例外は構造化例外で実装されています
978 :
デフォルトの名無しさん :03/03/26 14:49
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ★ウゼェキエロ!!!★ウゼェキエロ!!!!!!!!!!!!!!!!!!!!!!★
超厨な質問すみません。 いま、作ってわかるVISUAL C++6.0という本を読んで勉強中ですが、 本の中にコードを追加してくださいとあって そのなかに星みたいな記号がありました。 *なら打ち込めるのですがなんかちょっと違うみたい・・・・・ もしよろしければ、その記号の入力の仕方を教えていただきたく存じます
>>980 それじゃあ何の文字が入力できないのか分からない。
でも多分、アスタリスク * の事か?
だとしたら、あなたが 980 に書いたものを半角で打てばいいはずだ。
印刷物だとたまに*が線5本で描かれてたりするから紛らわしい。
/************** (゚Д゚)ハァ? *****************/
984 :
かえるのおっさん :03/03/26 17:31
984
985 :
かえるのおっさん :03/03/26 17:32
985
☆★
次スレ、もうそろそろ作るべき?
>>982 多分それです。線が5本の星でした。
じゃぁ、アスタリスクなのですね。
みなさま、本当に厨質問にレスありがとうございます
990 :
デフォルトの名無しさん :03/03/27 01:08
CComboBoxで入力もできるタイプのリスト(ブラウザのアドレス入力欄みたく)にした時、現在選択(入力) されている文字列を取得するにはどうしたら良いのでしょうか? CComboBoxのメンバ関数には選択されてるセルのインデックスを取得する関数はありましたが、文字列 を取得する関数がなさげでしたので・・・ なお、ファイル名等に限定して取得する関数はCWinクラスにありましたが、それを実行するとゴミが余計 についてきてしまいます
>>990 >文字列
を取得する関数がなさげでしたので・・・
あるだろ。GetLBTextは違うのか?
993.
994
995!!!!
996
997
998
999
1000 :
デフォルトの名無しさん :03/03/27 12:45
久しぶりに1000ゲット
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。