- 1 名前:デフォルトの名無しさん [2006/11/29(水) 17:00:54 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 Visual C++使いが優しくコメントを返しますが、 お礼はVisual C++の布教と初心者の救済をお願いします。 ■過去スレ 前スレ pc8.2ch.net/test/read.cgi/tech/1150105712/ 前々スレ pc8.2ch.net/test/read.cgi/tech/1141087248/ ■遠い親戚スレ くだすれC++/CLI(初心者用) pc8.2ch.net/test/read.cgi/tech/1142144110/l50 ■関連ページ Visual C++ Home Page www.microsoft.com/japan/msdn/visualc/
- 481 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:34:05 ]
- basicでゲームやったことありますとか言い出すやつは使いものにならない。
たとえそういう経験あったとしても黙っておくもの
- 482 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:57:19 ]
-
< ワタシ ヲ ヨンダ?? ●/ <■ / >
- 483 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:59:52 ]
- >>481
そういう話じゃないでしょ。 既存のソースの改造から始めるのはどうかという話では。
- 484 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:17:17 ]
- いきなり改造から始めるなんて聞いたことがない。
VCの場合コードの量が半端じゃないし、 他人の書いたコード読んで仕様まで理解できたら相当なレベルだと思う。 初心者レベルだとビルドできなくて投げ出すのがせいぜい。
- 485 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:25:47 ]
- いやだからBASICの話でしょ改造なのはw
- 486 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:48:20 ]
- 昔はね。
今でも新しいことやるのはサンプルソースからやるけど。
- 487 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:51:03 ]
- ┏┳┳┓ ハイ. ┏┳┳┓
┏┫┃┃┃ 雑談は ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで.┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ ┗━━━┛
- 488 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 21:53:49 ]
- ┌┬┬┐ ハイ. ┌┬┬┐
┌┤│││ 雑談は │││├┐ ││││├┐ ここから.┌┤││││ │ ││┌───┐││ │ │ 雑談 ├┤ . ・∀・ ├┤ START.!!│ └────┘└┬─┬┘└────┘ ┌┴┐│ ┌─┘ ├┴┐ └───┤ └─┐ └───┘
- 489 名前:デフォルトの名無しさん [2007/04/03(火) 23:58:42 ]
- 初心者なんですが、どうしても分からない事があります。お教え頂けないでしょうか?
フックプロシージャで、VK_DOWNをVK_TABに変換しているのですが、PostMessageだとうまく行くのに SendMessageに変えると動作しません。 ソースは次のようなものです。 static LRESULT CALLBACK OnKeyHook( int nCode, WPARAM wparam, LPARAM lparam ) { if( nCode < 0 ) return CallNextHookEx( HHook, nCode, wparam, lparam ); UINT msg; if( lparam & 0x80000000 ){ msg = WM_KEYUP; }else{ msg = WM_KEYDOWN; } switch( wparam ){ case VK_DOWN: PostMessage( GetFocus(), msg, VK_TAB, lparam ); ←ココです。 return TRUE; default: ... break; } return CallNextHookEx( HHook, nCode, wparam, lparam ); } VK_UP を SHIFT + VK_TAB に変換するのに SetKeyboardState を使いたいので、SendMessage で 行いたいので困っています。 私の知らない何かがあるのでしょうか? どうかご教授下さい。よろしくお願い致します。
- 490 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 01:25:54 ]
- あまり詳しくないけどSendMessageはメッセージキューを経由しない
(TranslateMessageを通らない)のでWM_KEYDOWNのSendでは WM_CHARが発生しないとか何とか。 ↑↓でフォーカス移動をするだけなら、キーボードイベントを捏造するより WM_NEXTDLGCTLをポストしたほうが楽だと思う。
- 491 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:02:54 ]
- MessageBoxみたく、手軽に小さいウィンドウを出して
ユーザに文字列を入力させたいんですが、そういう関数ってありますか?
- 492 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:28:47 ]
- >>491
DialogBox
- 493 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:36:55 ]
- >>492
素早い返答thx!!!
- 494 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:40:06 ]
- どういやDialogBoxと自分でウィンドウ作るのとどう違うんだろう・・・
- 495 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:44:21 ]
- >>494
ダイアログテンプレート以外の違い? モーダルとモードレスで違うべ。 モードレスは自分で作る場合に近いな。 自分でメッセージループ持たせてモーダルにすることもできるけど。
- 496 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 15:14:21 ]
- >>490さん
ありがとうございます。SendMessageはあきらめました。 ところで WM_NEXTDLGCTL ってダイアログでしか使えないんでしょうか? 今ダイアログを使ってなくて、普通のフォームのEDITとかCreateWindowで貼り付けてる状態で、 WM_NEXTDLGCTLは効かないみたいなんです orz >>494さんの疑問は私も悩んでいる点です 初心者でいっぺんにいろいろ覚えられないので、とりあえずダイアログを使わずにフォームをゴリゴリ 書いて、きつくなってきた所でダイアログの恩恵にあやかろうという方針を立てていました。 でも、そもそもの使用目的が違うような気がしてきて、にもかかわらず、その辺りの指針がはっきり せず、すっきりしません。 皆さんはどういう基準で使い分けられてるんでしょうか。
- 497 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:09:55 ]
- 今思ったんですが、普通のウィンドウとDialogの違いってメニューを付けられるかどうかじゃないでしょうか?
普通のウィンドウ、Dialog ともにモーダル、モードレスにできるし、どれで始めて、どう遷移していけばいいか 迷うんですけど... ひょっとしてDialogにもメニュー付けられたりして OTL
- 498 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:27:22 ]
- たしか付けられるはず。
- 499 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:37:25 ]
- 基本的にダイアログテンプレートを使うか使わないかでわければいいじゃん
- 500 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:37:30 ]
- ウィンドウには色々なスタイルがあって、
その中の一部分をダイアログと呼ぶ、というだけ。 てか、ダイアログをメインウィンドウにした方が 色々と楽だと思うのは俺だけ?
- 501 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:41:57 ]
- >>496
ダイアログ以外では使えないと思う。 MFCのCFormViewなどでは通常のウィンドウの上にモードレスダイアログを貼り付けて ダイアログリソースを利用しているので WM_NEXTDLGCTLも動く。 VistaのUIのガイドラインではウィンドウ全体を表示するためにスクロールバーを必要とする ダイアログは使うな。ダイアログはメニューバーやステータスバーを持つな。となってるけど ユーティリティのようなトップレベルウィンドウがダイアログの場合は除くとなっている。 トップレベルウィンドウをダイアログにするか、通常ウィンドウにするかの基準は、ざっと見た限りは 見つからなかった。 ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/UxGuide/UXGuide/Windows/DialogBoxes/DialogBoxes.asp
- 502 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:45:04 ]
- >>496
IsDialogMessageでを使えるようにならない?
- 503 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:45:13 ]
- あと、ウィンドウクラスが #37770 じゃ困ることもあるべ
- 504 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:46:34 ]
- >>498
メニュー簡単に付きました orz >>499 ですよね 現在ダイアログに傾倒して行ってるところです。 できれば全部これでやりたいと思い初めています。メイン画面から全部。 でもどのサンプルを見ても通常フォームから始まってるんですよね... ダイアログでは実現できない事って、例えばどんな事なんでしょうか。
- 505 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:47:02 ]
- >>503
ダイアログでもウィンドウクラスを指定できる。 指定したときには、そっちになり#37770にはならない。
- 506 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 20:51:03 ]
- WM_PAINTとかWM_CHARとかウィンドウそのものに関するメッセージを使うときには
普通のウィンドウにして、ダイアログにしない気がする。 あと、501のとおりメニューやスクロールバー、ステータスバーが付くときも ダイアログは使われていないと思う(でもたしかにユーティリティでは見かけたことある)。 505みたいにどっちつかずな面もあるけど。
- 507 名前:デフォルトの名無しさん [2007/04/04(水) 20:58:21 ]
- >>500
私もメインウィンドウをダイアログで行こうと考えています。 >>501 ありがとうございました。指針を示して頂いて、安心しました。 MSDN英語で読めるっていいですね。私はMSDN日本語でも頭がぐるぐるしてくるんです。 >>496 だめでした。 >>503 ダイアログのWM_CREATE(?)から CREATESTRUCT は取れるんですか?
- 508 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 21:01:26 ]
- まちがえました。
>>502 IsDialogMessageをメッセージループに入れてもだめでした。
- 509 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:50:55 ]
- ダイアログをメインフォームにしようとしているのですが、分からない事が出てきました。
DialogBoxParam でモーダル起動した場合、メッセージループが内部にあるから IsDialogMessage を組み込めないと 思うのですが、何か方法があるのでしょうか? CreateDialogParam でモードレスダイアログを作って、メッセージループを準備するのが正しいやり方なのでしょうか? どうかお教え下さい。よろしくお願いします。
- 510 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 01:42:26 ]
- ModalならIsDialogMessageは必要ないだろ
- 511 名前:デフォルトの名無しさん [2007/04/05(木) 02:11:46 ]
- 2個スレッドを作って、一つでユーザーインターフェースの処理
でもう一方で計算をさせたいと考えてます。 で、AfxBeginThreadと制御関数でマルチスレッドぽくはできました。 ただ、計算の進歩状況の表示や中断をさせられません。 今のところボタンをクリックされた後イベントハンドラ中で while文を回して進歩状況を表示していて意味がないんです。 ユーザー インターフェイス スレッド?を作れば一つは解決ですか?
- 512 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 02:27:39 ]
- >>510
本当だ!IsDialogMessage を入れないと TAB キーが使えないのかと思ってました。 ありがとうございます。
- 513 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 02:43:43 ]
- ウィンドウ登録、作成、メッセージループをダイアログに任せるだけで、こんなにもソースがすっきり!VBみたい
しかもコントールをXP風にできました。 うれしいです (↑∇↑) ありがとうございました。
- 514 名前:511 [2007/04/05(木) 05:12:06 ]
- ようするに、
WinMain()に別のスレッドから進歩状況を伝えて イベントを起こして表示させる方法を教えてください。 ということだったんですが、今もう一度探したら PeekMessage()というのを見つけました。 どうも自分が行わせたい処理はマルチスレッドを使わなくても よいように思うんでPeekMessage()を使ってみます。 できたあとの話になるんですが、処理にかかった時間を計測とか できるんでしょうか?関数の実行に要した時間なんですが…
- 515 名前:511 [2007/04/05(木) 05:26:52 ]
- timeGetTime見つけました。
スレ汚し申し訳ない…
- 516 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 05:30:31 ]
- >>514
皆さん寝てるんじゃないですか。 スレッドは以前覚えたんだけど...確かセマフォとかミューテックスとかあってご要望の事もできる筈だけど 使わなかったので忘れましたヾ(≧▽≦)ノ 明日の夜ぐらいにはエロいひとが来て、答えてくれるんじゃないかなぁ。 とりあえず ↓ に目を通しておかれたらいいかも。 www2m.biglobe.ne.jp/~yasutaka/intro/no_99.htm 関数の実行に要した時間は簡単にとれると思うけど...
- 517 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 05:48:31 ]
- >>505
ダイアログにウィンドウクラスを指定する方法を是非ともお教え下さい。お願いします┏○
- 518 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 08:03:06 ]
- >>517
wisdom.sakura.ne.jp/system/winapi/win32/win89.html
- 519 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 20:08:04 ]
- >>518
ありがとうございます ┏○
- 520 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 20:40:11 ]
- COM(ActivX?)が良く分かりません。以前VBでコントロール作ったり、ActiveX.Exe,ActiveX.Dllを作ったぐらいで...
将来的にやりたい事は、以下の2つです。できればMFCなしで行いたいんです。 1.ブラウザ上に貼り付けて利用するもの。 2.DirectX,DirectShow がComベースらしいので理解したい。 疑問点は以下の2つです。 1.MFC使わずにATL だけで実現可能でしょうか? 2.VS.NET 2003 で作成できるのでしょうか?(No Managedで) 今まではVC6の ATL COM AppWizard で作成してたんですが、VS.NET 2003 ではどの AppWizard で作ればいいのか 分かりません 。 どうかよろしくお願いします。
- 521 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:21:17 ]
- ┏ ・:∴○ ドシュッ
- 522 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 04:01:26 ]
- 520ですが、1は自己解決しました。
VC付属の OLE VIEWER で右クリックしたらHTML用にOBJECTタグを作ってくれて、ブラウザ上で動作しました。 ろくに試しもせずに質問してしまい、申し訳ありませんでした。
- 523 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:45:33 ]
- 聞きたいことがあったんだけど、レス書いてたら答えに気づいたw
- 524 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:07:19 ]
- そういうことって結構あるよ。
文章にするというのが軽く気分転換になっていると思う。
- 525 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:09:26 ]
- すみません。
変数の定義(int型)をmainメソッドの中の中間あたりで行うと 「そのような識別子はありません」とエラーが出てしまうんですが (定義をmainの先頭に持ってくるとエラーが出なくなります) なぜなんでしょう。先頭と中間での定義の間で printf、scanf、while関数等を使っているんですが、何か関係がありますか?
- 526 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:14:54 ]
- >>525
言語は何? 古いCでは変数宣言はブロックの先頭にある必要がある。 #勿論、ブロックの先頭ならよいので以下の例は問題ない。 int main() { printf("foo\n"); { int foo = getchar(); printf("%c\n", foo); } return 0; } どうでもいいが、while関数なんてものは無いし、 一般的にcではメソッドとは言わない。用語は間違わないように。
- 527 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:23:03 ]
- 知ってるけどスレ違いだから教えてやらない
- 528 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:29:35 ]
- そうなんですか、ちなみに言語はCですね。失礼しました。
getch()等が「古い型」だと注意されるのはなんだろうと思っていましたが。 ブロックを設けて先頭へ記述するようにします。 用語も適当に使っていました。
- 529 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:29:56 ]
- まさか
printf("%d", a); int a; なんてやってるオチでは…
- 530 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:31:23 ]
- >>526
インデントぐらいつけなよ
- 531 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 12:51:13 ]
- あー、普段はエディタが勝手にインデントするし、どうせ見えないと思って割愛した。許せ。
- 532 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:03:44 ]
- 自動コード整形のパターンってカスタマイズできるんでしょうか?
- 533 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:30:36 ]
- 2chにソース張ること自体ねぇ・・・
どっか引っ越そうぜ
- 534 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:01:23 ]
- int main() {
using std::vector; typedef std::vector<int>::size_type vec_sz; vector<int> Integers; int Integers_num = 112, Integers_max = 100, Integers_min = 0 ; make_randnums( Integers, Integers_num, Integers_min, Integers_max); vector< vector<int> > Devided; vec_sz Devided_num = 4; Devided.resize( Devided_num ); vec_sz Dev_contents_num = Integers.size() / Devided_num ; for ( vec_sz i = 0; i < Devided_num - 1 ; i++ ) Devided.at(i).resize( Dev_contents_num ); vec_sz last_num = Integers.size() - ( Devided_num - 1 ) * Dev_contents_num; Devided.back().resize( last_num ); if ( Integers.size() == ( Devided.size() - 1 ) * Devided.at(0).size() + Devided.back().size() ) { }else exit(1); std::sort( Integers.begin(), Integers.end() ); std::reverse( Integers.begin(), Integers.end() ); vector<int>::iterator start_ptr = Integers.begin(), end_ptr = start_ptr ; for ( vec_sz i = 0; i < Devided.size(); i++ ) { std::copy( start_ptr, end_ptr += Devided.at(i).size(), Devided.at(i).begin() ); start_ptr += Devided.at(i).size(); } return 0; }
- 535 名前:534 mailto:sage [2007/04/08(日) 22:05:10 ]
- このプログラムは某入門書の例題でヘタレの俺なりの回答案です
80行以上あったプログラムがコメントとか{}消したら1レスに収まっちゃったわけですが コレって元の書き方が悪いんですかねぇ?
- 536 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:07:06 ]
- 勿論全体ではなく一部なんですが
それでも80超行が30行ちょっとってのは無いでしょうってことです
- 537 名前:536は535=534です mailto:sage [2007/04/08(日) 22:07:45 ]
- すみません
- 538 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:08:20 ]
- 激しく読みにくくてウザい
- 539 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:11:33 ]
- ゴミ
- 540 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:23:15 ]
- >>534
コメントは消すなよw
- 541 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:32:43 ]
- こういうのだったら消していい。
int i; /*ループ変数*/
- 542 名前:デフォルトの名無しさん [2007/04/08(日) 22:37:41 ]
- 良いプログラムとは、コードよりコメントの行数の方が多い
- 543 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:54:13 ]
- ん?
元のソースはわからないけど これよりはマシだったんだろうなぁと思う。
- 544 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 14:18:52 ]
- 良いプログラムとは、コード自体がコメントのように読める
- 545 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 14:24:59 ]
- 良いプログラムとはコードのないプログラム
- 546 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 14:42:14 ]
- 良いプログラムとは、ドキュメントだけでコードが理解できる ( ・`ω・´)ノ
- 547 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 15:18:10 ]
- それは読んでる人の性能がいいだけじゃ・・・
- 548 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 15:26:57 ]
- 学習用の過程で作ったものだったら
それこそ8割がコメントとかでもいいんじゃないの? コメントに表現しようとあれこれ考えるのも理解の助けになるし
- 549 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 17:44:31 ]
- 8割コメントって、学生かい ( ・ω・)
一応、クラス3分、関数30秒(=4行くらい) で、読み終わる程度がいいとされてる 限られたスページと時間で、どれだけ理解させるかが文章力だ m9( ・`ω・´) 仕様100ページもあったら、結局何書いてるか分からんし マニュアルも全部読まないでしょ、バージョン上がったらゴミになるし
- 550 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 17:46:33 ]
- >仕様100ページもあったら、結局何書いてるか分からんし
・・・
- 551 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 18:03:46 ]
- Boostのビルドも出来ん雑魚はほっとけ
- 552 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 19:48:20 ]
- 仕様書以外に何が用意されているかが問題だな。
サンプル一切無しなら死ねる。
- 553 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:10:07 ]
- どれだけコードを綺麗に区切ってまとめられるかと、
それにどれだけ適切なコメントをできるかが 勝負の分かれ目 コメントは付けりゃいいってもんじゃない 8割コメントはちょっとアホだろ・・・w 場合によるけどさ
- 554 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 20:28:35 ]
- ここって結構底辺なのなww
- 555 名前: ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2007/04/10(火) 21:08:38 ]
- _____
/::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | きみ頭だいじょうぶ? |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
- 556 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:22:23 ]
- それがくだすれのくだすれたる所以
- 557 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 09:36:39 ]
- class Fred;
typedef auto_ptr<Fred> FredPtr; class Fred{ public: static FredPtr create() throw(bad_alloc); static FredPtr create(int i) throw(bad_alloc); static FredPtr create(const Fred& x) throw(bad_alloc); virtual void goBowling(); private: Fred(int i=10) throw(); Fred(const Fred& x) throw(); int i_; }; FredPtr Fred::create() throw(bad_alloc) { return new Fred(); } FredPtr Fred::create(int i) throw(bad_alloc) { return new Fred(i); } FredPtr Fred::create(const Fred& x) throw(bad_alloc) { return new Fred(x); } void Fred::goBowling(){ std::cout << this->i_; } Fred::Fred(int i) throw() : i_(i){} Fred::Fred(const Fred& x) throw() : i_(x.i_){} void sample() { FredPtr p(Fred::create(5)); p->goBowling(); }
- 558 名前:デフォルトの名無しさん [2007/04/15(日) 09:37:49 ]
- C++QAにあるソースなんですが、
p->goBowling();でアクセス違反が起こります。 なんで?
- 559 名前:デフォルトの名無しさん [2007/04/15(日) 21:24:47 ]
- 元々は正社員だったのに取引先にフリーのほうが稼げるとか騙されて
結局派遣やってるバカがいるんだけどw なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw 最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w そもそも信頼されてるなら直接契約するか正社員にするはずだが、 いつでも切れる派遣会社経由って舐められてんだよ 派遣期間が長くならないうちに早く就職しろ、と忠告したら、ウッキー!って逆ギレw バカで頑固だから何度言っても理解できない 騙されたとはいえ結局は自分で決めて派遣やってる癖に逆ギレしちゃってまぁ 人間として本当に恥ずかしい
- 560 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 22:34:31 ]
- そうか、とりあえずスレタイ読み直せ。
- 561 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:01:15 ]
- >>559
派遣と言ってもいろいろあるんだけど知らんのか? 数十人の派遣プログラマがいればマネージメントする人間も当然必要になる だろ。その人間は責任を負うと同時に給与も高いって仕組み。 派遣は確かに「いつでも切れる」存在ではあるけど、切るためにはそれなり の理由が必要だし、むやみに切れば信頼関係が損なわれて派遣を採用する 会社側にも損失はあるんだよ。 そもそもお前のそのレスから簡単にプロファイリングするに、 お前自身がちょっとどうかと思う人間に見えるわけだが…。
- 562 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:03:00 ]
- よくみかけるコピペだけど
- 563 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:12:48 ]
- >>562
そうなの?俺ははじめて見た。 どこが笑い所のコピペなの?
- 564 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:21:10 ]
- www.google.co.jp/search?hl=ja&q=%E7%A8%BC%E3%81%92%E3%82%8B%E3%81%A8%E3%81%8B%E9%A8%99+site%3A2ch.net
- 565 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:57:12 ]
- >>564
数あるコピペから>>559はなぜこれを選んだんだろ。 貼り付けた理由が理解不能。しかもこのコピペ、ちっとも面白くない。 あとスレ違いも甚だしい。なんなんだコイツは。
- 566 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 18:21:21 ]
- 面白くない上に長いから、嫌がらせにはちょうどいいということじゃないのか
あまり長すぎると1行も読まれないから、あのくらいにしたんだろう
- 567 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:00:57 ]
- あの長さなのにコードが一行も無い時点で読まない
- 568 名前:デフォルトの名無しさん [2007/04/17(火) 21:43:20 ]
- 流れ読まずに投下スマソ
WTL7.1 の AppWizard でダイアログベースのプロジェクトを作って、 ダイアログのフォントを MS UI ゴシック/9pt に設定したんだが、 実行時に文字化けを起こす。 教えてエロい人><
- 569 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 21:57:48 ]
- >>568
WTLだと言語がデフォルトで「英語」になってるはず。 開発環境によって違うが、リソースエディタのどこかに言語を設定するところがあるから そこを「日本語」に変えてみ。
- 570 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 22:53:43 ]
- >>569
おっしゃるとおり、リソース自体の言語が 英語 になってますた! 最初日本語にしても「あれ?カワンネ」と思いリビルドしたらうまくいった! thxエロイ人!!!!!!!!!!
- 571 名前:デフォルトの名無しさん [2007/04/17(火) 23:12:59 ]
- 以下のような全角半角変換関数を作ったのですが、変換成功判定がうまくいきません。
『×』の行がおかしいところです。 どうすればいいのかお願いします。 ちなみにVC++6です。 //全角→半角変換関数 BOOL CDlg050Imp::ConvertZenToHan(CString gZenNum, CString& gHanNum){ BOOL bRet = TRUE;//変換成功フラグ CString gAfter = _T("");//gHanNumを直接使うと前回のバッファが残っているので別変数を間にかます。 int nLenValue = gZenNum.GetLength(); int nRet = LCMapString(GetUserDefaultLCID(), LCMAP_HALFWIDTH, gZenNum, nLenValue, gAfter.GetBuffer( nLenValue ), nLenValue); gHanNum = gAfter;//コピー × int nLenAfter = gAfter.GetLength();//必ず0になってしまう。 × int nLenHanNum = gHanNum.GetLength();//必ず0になってしまう。 if(nLenValue != nLenAfter)//文字数が違うなら bRet = FALSE;//変換失敗 else { for(int nMoji = 0; nMoji<nLenValue; nMoji++ ) { CString gOneZen = gZenNum.Mid(nMoji, 1); × CString gOneAfter = gAfter.Mid(nMoji, 1);//nLenAfterが0なので当然ながらアプリエラーが起きる。 if(gOneZen == gOneAfter)//同じ文字があるなら { bRet = FALSE;//変換失敗 break; } } } }
- 572 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 23:19:26 ]
- ReleaseBufferはどこだ?
- 573 名前:571 [2007/04/17(火) 23:32:23 ]
- × gAfter.ReleaseBuffer(nLenValue);//アプリエラーが起きる
int nLenAfter = gAfter.GetLength();//正常に長さが取れた ↑ ReleaseBufferを入れてみたら、アプリエラーは起きますけど長さは取れました。 って、やり方が違うのかな…
- 574 名前:デフォルトの名無しさん [2007/04/18(水) 00:00:51 ]
- >>561
論点ずれまくりだろ 自分で正社員を辞めて派遣になったのにブーたれてるような人間は 何をやってもダメだと思うぞ
- 575 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 02:26:59 ]
- プログラムをコンパイル→実行したあと自動的に閉じないようにできますか?
- 576 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 03:05:08 ]
- できます。
- 577 名前:デフォルトの名無しさん [2007/04/18(水) 12:32:28 ]
- 質問よろしいでしょうか。
VisulC++6.0で exe→pdf呼び出しを行いたいのですが、コンポーネントの追加にAdobe PDF Readerを追加し、ダイアログに貼り付けようとしたら「ActiveXコントロールのインスタンスは作成されませんでした」とメッセージが表示され、貼り付けることができません。 exeから呼び出しを行いたいので、ShellExcuteEXを使わない方法以外にはないのでしょうか? どなたかご教示お願いします。
- 578 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:38:01 ]
- >>577
ネタか? CreateProcessの引数にpdf
- 579 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 14:58:38 ]
- IEがやってるようにActiveXを上手いこと使いたいんでないの。
- 580 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 15:04:49 ]
- じゃIE貼っとけ
- 581 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 15:23:54 ]
- 577です。
Acrobat SDKのActiveViewみたいなことをと思っておりました・・・。 質問の意図が意味不明になっており、ご迷惑をおかけしました。 579氏、580氏 IEを貼る手法で行いたいと思います。。 ありがとうございました。
- 582 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:31:46 ]
- >>576
どうやるの? ソースに余分な関数入れるんじゃなくて設定でできるの?
- 583 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:02:45 ]
- つ デバッグ無しで開始
- 584 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:17:49 ]
- >>583
ありがとうございます。出来ました(゚∀゚) すごく助かりました
- 585 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 11:01:38 ]
- ウィンドウプログラミングで
ウィンドウハンドル、ウィンドウプロシージャで作るのと ビュークラスやダイアログクラスで作るのと 2つあるみたいですけど・・・何が違うのですか? どちらが主流なんですかね
- 586 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 19:25:37 ]
- >>585
>ウィンドウハンドル、ウィンドウプロシージャで作るのと これは低レベル(抽象度が低いって意味ね。「高級言語」とかいう時の高級/低級)。 >ビュークラスやダイアログクラスで作るのと 中で上の低レベルなものを使ってる。 Win32APIだけで作るのはだいぶ面倒くさい。既にあるものは使った方がいい。
- 587 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 17:24:44 ]
- Visual C++6.0 のインストールを行っています。
続けてサービスパック6を入手しインストールしようとしましたが、 「ファイル C:\Windows\System32\MSFLXGRD.OCX を開くことができませんでした」 となり、セットアップが正常終了しません。 セットアップ手順に誤りがあるのでしょうか。 (MSDNからサービスパック6を入手し、展開先のフォルダで setupsp6.exe を実行しました)
- 588 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 17:32:13 ]
- CDにMSFLXGRD.OCX入ってるだろ
- 589 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 17:55:15 ]
- >>588
迅速なレス感謝です! そもそも、Visual C++6.0インストール時のオプション設定で選んだインストール構成では MSFLXGRF.OCX が不要 (つまり、今発生しているSp6適用時のエラーは無視してよい)なのか、 それとも、CDからOCXファイルをコピーしてきてでも本セットアップ(SP6)をあてるべきなのかがわかりません。
- 590 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:08:11 ]
- 今や貴重なコントロールなんだから入れておけば?<FlexGrid
- 591 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 20:46:48 ]
- Sp6のセットアップエラーを無視しても動きましたが、
一応FLXGRD入れておくことにしました。 助言ありがとうございましたm(__)m
- 592 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 23:26:17 ]
- winXPでMicrosoft Visual C++ .NETを使っています。
ご相談したいのは、 「新規作成」→「プロジェクト」→C++の「MFC アプリケーション」で作成して その後のウィザードで「アプリケーションの種類」→「ダイアログ ベース」に設定して「完了」を押すと 〔〜.ncd〕〔〜.sln〕〔〜.suo〕〔〜.vcproj〕しか作られません。 どうすれば良いでしょうか。 御教授をお願いします。
- 593 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 01:19:05 ]
- まずは日本語の勉強してきてくれ。
難しいなら敬語は使わなくてもいいよ。
- 594 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 15:03:05 ]
- どの辺が分かり難かったでしょうか?
要約をさせていただくと、「〔〜.ncd〕〔〜.sln〕〔〜.suo〕〔〜.vcproj〕以外のも作られるようにするには どうすればいいのでしょうか」ということです。 どなたか、ご返答をお願いします。
- 595 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 15:19:48 ]
- それ以外の何を作りたいのかさっぱり。
- 596 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 15:34:02 ]
- >>594
クラスビューやソリューションエクスプローラなどで「追加」すればいい。 色んな所で右クリックしてどういうメニューが出るかとか、 上に並んでるメニューの中の項目を一通り試してみるとか、しないか?普通。 IDEもGUIアプリなんだしさ。
- 597 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 16:26:34 ]
- ウィザード使ったらビルドすれば実行可能な状態のソースまで作ってくれる。
空のプロジェクトなら自分でソース追加しなきゃ始まらないけど、 ダイアログベースならダイアログ出すソースができてるはず。
- 598 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 17:15:52 ]
- >595-596はたぶんMFC使ったことないから無視で
- 599 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 17:28:06 ]
- ビルドしなくてもソースは生成されていないとおかしい
操作ミスなのではないか?
- 600 名前:599 mailto:sage [2007/04/23(月) 17:28:58 ]
- あ、何か誤読してたスマソ
- 601 名前:592 mailto:sage [2007/04/23(月) 18:02:29 ]
- すいません。
書き忘れていたことがありました。 「スケルトンが作成されない」のです。 本当に申し訳ありません。
- 602 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 19:02:34 ]
- 2005じゃないということはだいぶ前にインストールした?
それから何回か使った? 全く状況がわからん
- 603 名前:592 mailto:sage [2007/04/23(月) 20:04:15 ]
- >>602
2003です。 インストールしたの半年前です。
- 604 名前:592 mailto:sage [2007/04/23(月) 23:00:15 ]
- >>596
ご返答ありがとうございます。 「開始」を押すと 「デバックを開始できません」 「プログラム'〜.exe'を開始できません。」 「指定したファイルが見つかりません」 というウィンドウが出てしまうので、ただスケルトンが表示できていない のではと思うのですが、それ以上は私にはわかりません。
- 605 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 10:08:10 ]
- >>604
ダイアログ以外はどうなんの?
- 606 名前:デフォルトの名無しさん [2007/04/25(水) 12:10:32 ]
- 大学のVisual studio2003でWM_MOUSEWHEELメッセージを拾おうとしたら
WM_MOUSEWHEELは定義されていないというエラーが出ました。 マウスカーソルをWM_MOUSEWHEELの上に持っていくと、 #define WM_MOUSEWHEEL 0x020A とちゃんと出ているので自分でその値をdefineしたらビルドが通ったのですが、 なんで自分で置かないとWM_MOUSEWHEELが定義されていないと出るのでしょう?
- 607 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 12:28:19 ]
- WM_MOUSEWHEEL はあとから追加されただけで
windows.hに無いからね
- 608 名前:607 mailto:sage [2007/04/25(水) 12:29:41 ]
- #define _WIN32_WINNT 0x0400
を入れれば有効になると思うよ
- 609 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 12:44:00 ]
- >>607
ありがとうございます。 後からというのは自宅のvisual studio2005では普通に出来たのでそこからということでしょうか? ちなみにソースコードのWM_MOUSEWHEELにマウスカーソルを持っていくと #define WM_MOUSEWHEEL 0x020A とちゃんとdefineされているように出てくるのは何でなのですか?
- 610 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 14:49:48 ]
- 「条件」によって存在しなかったことになる。
- 611 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 16:56:44 ]
- >>610
本当にすまないのですがまだ無知ゆえもう少し詳しくお願いできますか?
- 612 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:02:50 ]
- 条件コンパイル
- 613 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 17:20:47 ]
- >>612
なるほど、そういうことでしたか! よく分かりました、ありがとうございます><
- 614 名前:デフォルトの名無しさん [2007/04/25(水) 22:12:59 ]
- 質問させてください。
FLOAT型の変数の値をMessageBoxで表示させたいのですが、ビルドを実行すると 2番目の引数を'float'から'LPCSTR'に変換できません。と出ます。float型をLPCSTR型に 変換するにはどうしたらよいのでしょう?コードはこのような感じで書いてます。 float a = 0.3f; MessageBox(NULL, a, NULL, MB_OK);
- 615 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:15:25 ]
- sprintf
- 616 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 22:26:30 ]
- >>615
できました!ありがとうございます!
|

|