1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
2 名前:デフォルトの名無しさん [2009/02/22(日) 17:45:47 ] Part32 ttp://pc11.2ch.net/test/read.cgi/tech/1225422971/ Part31 ttp://pc11.2ch.net/test/read.cgi/tech/1217494948/ Part30 ttp://pc11.2ch.net/test/read.cgi/tech/1210170833/ Part29 ttp://pc11.2ch.net/test/read.cgi/tech/1203007556/ Part28 ttp://pc11.2ch.net/test/read.cgi/tech/1196430042/ Part27 ttp://pc11.2ch.net/test/read.cgi/tech/1189394427/ Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/ Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/ Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/ Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/ Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/ Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/ Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/ Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/ Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/ Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/ Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
3 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:46:17 ] Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/ Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/ Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/ Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/ Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/ Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※ Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※ Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
4 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:47:42 ] 【関連スレ】 ■MFC相談室 mfc20d.dll■ pc11.2ch.net/test/read.cgi/tech/1230219816/ Win32API質問箱 Build76 pc11.2ch.net/test/read.cgi/tech/1233622578/ 【C++】 DirectX初心者質問スレ Part21 【C】 pc11.2ch.net/test/read.cgi/tech/1229078397/ C言語なら俺に聞け(入門篇) Part 45 pc11.2ch.net/test/read.cgi/tech/1235044065/ 【初心者お断り】ガチ規格準拠C専用スレ Part133 pc11.2ch.net/test/read.cgi/tech/1201153965/ C++相談室 part66 pc11.2ch.net/test/read.cgi/tech/1234420483/ C/C++の宿題片付けます 122代目 pc11.2ch.net/test/read.cgi/tech/1232029287/ 【初心者歓迎】C/C++室 Ver.64【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1234193151/ 【関連サイト】 猫でもわかるプログラミング www.kumei.ne.jp/c_lang/ MSDN ライブラリ ※変更された msdn.microsoft.com/library/ja/ msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち) Platform SDK Update ※変更された www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Google www.google.co.jp/
5 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:48:57 ] 【このスレの前身 VisualC++相談室 過去スレ】 part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html
6 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:49:23 ] Platform SDKの中で一番新しいのはこっち Microsoft Windows Server 2003 R2 Platform SDK Web Install www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en (ISO版などあり) これ以降、Platform SDK + .NET Framework SDKとして Windows SDKが公開されていて、その中で一番新しいのはこれ。 Windows SDK for Windows Server 2008 and .NET Framework 3.5 www.microsoft.com/downloads/details.aspx?FamilyID=f26b1aa4-741a-433a-9be5-fa919850bdbf&DisplayLang=en 少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、 日本語化されているのは専ら.NET Framework部分だけ。 VC6対応の、最後のPSDKはここ。 www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm テンプレ終わり。
7 名前:デフォルトの名無しさん [2009/02/22(日) 17:57:18 ] はじめまして。 CRLのwindowsフォームアプリケーションで、 年号を入れると西暦で表示されるプログラムを作るのに int heisei; heisei=int::Parse(textBox->Text); int seireki; seireki=heisei+1988; label1->Text=L"平成"+heisei+L"年は、西暦"+seireki()+L"年です。"; とやって成功しました。しかし、模範解答は int heisei; heisei=int::Parse(textBox->Text); int seireki; seireki=heisei+1988; label1->Text=L"平成"+heisei.ToString()+L"年は、西暦"+seireki.ToString()+L"年です。"; となっていました。 なぜ前者でも成功したのでしょうか。ToString()は何の意味があるのでしょうか?必要なんでしょうか?
8 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:23:01 ] 1乙 これも追加で、本当の最新、もちろんβだけど。 Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1: BETA www.microsoft.com/downloadS/details.aspx?familyid=A91DC12A-FC94-4027-B67E-46BAB7C5226C&displaylang=en
9 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:29:16 ] >>7 文字列連結は、String同士だけでなく、StringとObjectでも可能。 前者だと+の中に挟まれたint型の変数は Object型にボックス化されてから連結されるというわけ。 だから、前者でもうまくいくけど、ボックス化は高コストなので それを避けている後者のほうが望ましい。
10 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:14:39 ] >7 VBをお勧めする
11 名前:デフォルトの名無しさん [2009/02/22(日) 22:46:54 ] ファイルのプロパティで表示される情報を取り込む方法を教えてくれよ。
12 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:25:36 ] api使う
13 名前:デフォルトの名無しさん [2009/02/23(月) 05:25:52 ] ひまわりの方がいいんじゃね?
14 名前:デフォルトの名無しさん [2009/02/23(月) 09:15:44 ] VC++2008です。 プロジェクトディレクトリをそのまま、別のPCにコピーして作業を再開したら、 「ファイルが移動された」というコンパイルエラーが出て、リリース(デバッグは出来る) 出来なくなってしまいました。 ファイルの位置の再定義はどこで出来ますか?
15 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:02:24 ] 普通は他人が作ったサンプルだってそのままビルドすれば動くし、 プロジェクトなしでソースのみの場合は新しくプロジェクト作ってそこへソース突っ込むだけだし。 自分が書いた?ソースさえビルドできない状況が全く理解できない。
16 名前:デフォルトの名無しさん [2009/02/23(月) 12:34:39 ] >>15 でも・・でも・・(´;ω;`)ブワッ stdfxだっけか、が移動したとか出て。 確かに、前のPCのディレクトリの名前が参照されてるのですよ
17 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 12:38:46 ] 一度クリーンしてリビルドしてみ
18 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:31:06 ] なるほど、クリーンで・・・。 ありがとうございます!
19 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:31:19 ] フォームアプリケーションで作ったフォームを 印刷する方法が分かりません>< 教えてください。
20 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:55:20 ] どんなフォームよ。 ボタンが並んでるウィンドウを印刷したいのか?
21 名前:デフォルトの名無しさん [2009/02/23(月) 18:21:16 ] そうです。ボタンと、テキストボックスに文字が入っています。 MFCでこういうことが出来るんだと思ったら、CFormViewにすると なぜか、印刷機能が付けられなかったんです。
22 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:32:06 ] >CFormViewにすると >なぜか、印刷機能が付けられなかったんです。 仕様。
23 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 09:11:47 ] フォームアプリの場合、計算結果を(参考書がやってるみたいに) textBoxとかの中身を抽出して、フォントとか指定して、印刷に出力 するのが一般的?
24 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 01:40:33 ] VC++ 6.0でFLASHを再生するソフトウエアを作る場合、 shockwaveflashのocxコンポーネントを追加しますが、 そのときにコントロールに対してInvokeHelper関数で、 swfファイルのオリジナルの幅や高さって取得できるでしょうか?
25 名前:デフォルトの名無しさん [2009/02/25(水) 17:39:49 ] visualC#の参考書って、visualC++用に購入してもおk?
26 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:45:26 ] 一つだけというのならやめとけ
27 名前:デフォルトの名無しさん [2009/02/25(水) 18:04:35 ] 超入門書はc++の持ってるんだけど、 パーフェクトマスターシリーズがC#しかないんよ。 「.」が、「::」とか「->」になるだけだよね。
28 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:23:21 ] CLRアプリ作るつもりなら、役に立つと思う。
29 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:25:18 ] >>27 「.」もあるんだが。
30 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:14:35 ] visual studio2008 XPです。 印刷機能の実装が分からないです。 フォームのtextBox1に計算結果が返されるとして、 例えば、textBox1の中身を印刷するには、 最低限何をすればいいですか?
31 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:23:16 ] 環境によるけど、文字列をプリンターに出す程度なら そこらのサンプルコード切り貼りだけでいけるぞ。
32 名前:デフォルトの名無しさん [2009/02/26(木) 11:27:32 ] C#しか無くないですか? C++に変換しても、ビルドできません><
33 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:07:04 ] 付属のドキュメントのサンプル切り貼りでいけたが。 プロジェクト新規作成してtextBox1とprintDialog1を貼り付けて ↓を適当な位置に入れただけ。 using namespace System::Drawing::Printing; System::Drawing::Printing::PrintDocument^ docToPrint; Form1(void) { InitializeComponent(); docToPrint = gcnew PrintDocument; docToPrint->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler (this, &Form1::document_PrintPage); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { System::Windows::Forms::DialogResult result; printDialog1->Document = docToPrint; result = printDialog1->ShowDialog(); if (result == ::System::Windows::Forms::DialogResult::OK) { docToPrint->Print(); } } void document_PrintPage( Object^ /*sender*/, System::Drawing::Printing::PrintPageEventArgs^ e ) { String^ text = textBox1->Text; System::Drawing::Font^ printFont = gcnew System::Drawing::Font( "Arial",35,System::Drawing::FontStyle::Regular ); e->Graphics->DrawString( text, printFont, System::Drawing::Brushes::Black, 10, 10 ); }
34 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:46:38 ] ウホッ。ありがとうございます。ただ・・ (this, &Form1::document_PrintPage); ↑の部分で error C2039: 'document_PrintPage' : '印刷2ch::Form1' のメンバではありません。 と、出てしまうんですが・・。
35 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:52:40 ] それは void document_PrintPage( Object^ /*sender*/, System::Drawing::Printing::PrintPageEventArgs^ e ) この関数だから、それに合わせればいい。
36 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:53:27 ] じゃぁ、こうですね(・∀・) (this, &Form1::printDocument1_PrintPage);
37 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 12:53:53 ] あ、サンプル通りクラス定義内に書いたからクラス名省略されてるけど メンバー関数だよ、どれも
38 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 13:09:12 ] なぜか、ファイルに出力されるんですが・・。
39 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 13:21:27 ] あ、いけました。でかいフォントですな。 ありがとうございます!!
40 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:32:15 ] 初めてVisual C++を使ってみました。 int main(array<System::String ^> ^args) いきなり ^ という単項演算子らしき物が出来たのですが、コレはなんですか?? とりあえずarray以下無視しても問題なく動いたのですが。
41 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:35:04 ] C++をやりたいのかC++/CLIをやりたいのかで返答は変わる
42 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:36:05 ] >>41 標準のC++です。
43 名前:デフォルトの名無しさん [2009/03/02(月) 00:39:19 ] VC++2008EEで #include <iostream.h> int main() { cout << "やぁ、こんちは。" << endl; return 0; } はどこでプログラミングすればいいんですか? 普通に新規作成から何か設定するんですか?warning C4627: '#include <"stdafx.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました 1> ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します が出てきます。
44 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:28:36 ] >>42 なら作ったプロジェクトが間違ってる。 >>40 はC++/CLIのプロジェクト。
45 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:37:36 ] >>43 Win32 コンソールアプリケーションのプロジェクトを作れ。 プリコンパイル済みヘッダーを使いたくなければプロジェクトの設定から無効にしろ。 あと、iostream.hは古いヘッダで今のVC++には無い。
46 名前:デフォルトの名無しさん [2009/03/02(月) 04:20:56 ] VC++2008でフォームアプリケーションを作成しています。 自動生成されるフォームの中に動的にラベルを複数作成しているのですが、 作成されたラベルのクリック時のイベントハンドラが全て同じイベントを呼び出す場合、 クリックしたボタンを判別し、その名前や座標などを表示させたいのですが、 以下のクリックイベントにどのようなプログラムを入れたら良いでしょうか? もしよろしければ教えて下さい、お願いします。 private: System::Void node_Click(System::Object^ sender, System::EventArgs^ e) { } また、もし他の方法で良いものがありましたら、教えて下さい。m(__)m
47 名前:デフォルトの名無しさん [2009/03/02(月) 06:37:22 ] >>45 わかりました。ありがとうございます。
48 名前:デフォルトの名無しさん [2009/03/02(月) 06:55:04 ] Senderみつおに聞けば教えてくれる
49 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 10:35:58 ] ナハナハ
50 名前:40 mailto:sage [2009/03/02(月) 20:13:26 ] >>44 ありがとうございます。 では標準C++でコンソールアプリケーションを作りたいときは プロジェクトの種類 をWin32にして Win32 コンソール アプリケーション にすれば良いですか?
51 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:01:10 ] 訊く前にマニュアル読むなり試すなりしなさい
52 名前:40 mailto:sage [2009/03/02(月) 22:09:19 ] >>50 とりあえずそれでやってみて問題無いようです。 おそらくコレで良いということですね。
53 名前:40 mailto:sage [2009/03/02(月) 22:10:02 ] 安価間違えました。 >>51
54 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:00:52 ] >>46 >クリックしたボタンを判別し、その名前や座標などを表示させたいのですが、 仮引数のsenderにそのクリックされたボタンが参照されてる
55 名前:デフォルトの名無しさん [2009/03/06(金) 03:12:17 ] C++スレで質問したら環境依存だと教えてもらったのでこっちで質問させてください 以下コピペになりますがよろしくお願いします。 ぐぐってもドキュメント見てもわからなかったんで 助言頂けると非常に助かります。 VC++2008ExpressEditionを使用しているので、どこかを変更しなければいけないのか… 質問の内容は… 猫でもわかるプログラミングSDK第123章 ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_123.htm これと同じプログラムを組んでも、WndProc内でcase IDM_READの hMapFile2 = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "Kumei's Object"); のOpenFileMappingがNULLを返してくるんだけど 原因がまったくわかりませんorz
56 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:37:12 ] CreateFileMappingが失敗してるか確かめろ
57 名前:デフォルトの名無しさん [2009/03/06(金) 14:00:07 ] >>56 CreateFileMappingは成功してると思います。 if (!hMapFile1)の部分にも引っかからず、GetLastErrorでも0を返してきましたので…
58 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:39:40 ] >>57 OpenFileMappingの後のGetLastErrorは何を返す?
59 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:48:29 ] それが… CreateFileMappingは0を返して正常だといってるのに OpenFileMappingの後のGetLastErrorは2を返してきて… 指定されたファイルが見つかりませんと。
60 名前:55 mailto:sage [2009/03/06(金) 15:25:36 ] 55です。長時間悩み、調べ 自分のタイプミスからマッピングオブジェクトの名前の不一致など疑い 試行錯誤した結果… CloseHandle(hMapFile1)をコメント化し、無効にすると OpenFileMappingが成功しました。 たぶん解決の糸口になるのでCloseHandleなどのタイミングなどを 調べていけばいいかなという結果に。。。 アドバイスをくれた>>56 ,>>58 さん、サンクスでした
61 名前:デフォルトの名無しさん [2009/03/06(金) 22:54:18 ] VC++2008EEでcout<<" "<<endlはどうやって使うのでしょうか?
62 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:00:27 ] 普通はそんなの使わない
63 名前:デフォルトの名無しさん [2009/03/06(金) 23:03:23 ] >>62 普通はどんなものを使うのですか? 手元の本はそれを使った説明ばかりなもので・・・
64 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 23:15:40 ] >手元の本はそれを使った説明ばかりなもので・・・ 使い方は、その本の最初のほうに書いてある。 書いていなかったら、そんな本は参考にならんから捨てろ。
65 名前:デフォルトの名無しさん [2009/03/06(金) 23:53:50 ] >>64 ありがとうございました。 一応捨てずに残しておきたいと思います
66 名前:デフォルトの名無しさん [2009/03/06(金) 23:56:42 ] 質問です。Visual C++ 6.0のSpy++に付いている ウインドウファインダーコントロール (ドラッグしてディスプレイ上の任意のウインドウを選択するヤツ) はVC++6.0のActiveXコントロールにないのでしょうか。 またはそれに似たツールなどはどこかにありませんでしょうか
67 名前:デフォルトの名無しさん [2009/03/06(金) 23:59:10 ] www.codeguru.com/cpp/controls/controls/article.php/c2149#more ありました、失礼しましたm(_ _)m
68 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 00:24:52 ] >>65 もし、その本に#include <iostream.h>とか書いてあるんだったら捨てるべき。古本屋でもいいけど。 それは古代のものだからVisual C++ 2008には搭載されていないというだけのこと。
69 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 07:04:19 ] マウスがのってるウインドウ選択するの意外に簡単だな WindowFromPoint だけ知ってれば作れる
70 名前:デフォルトの名無しさん [2009/03/07(土) 19:49:30 ] >>66-67 の者です。 Spy++と同等のウインドウ選択ツールもどきは無事使うことが出来ました。 しかし選択後(ウインドウ上でマウスを放した後も) 選択されたウインドウの周囲には枠の表示が残ってしまうので、 それをなんとか消したいと思っています。 選択されたウインドウハンドルが手にはいるので、 ::SendMessage(選択されたハンドル,WM_PAINT,0,0); なり ::SendMessage(選択されたハンドル,WM_ERASEBKGND,0,0); なり いろいろメッセージを送ってみたのですが、なぜか消えてくれません。 Spy++を利用して選択ウインドウにメッセージが送られていることは確認しているのですが・・・ この原因について見当の付く方教えてください。お願いします。
71 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:04:17 ] 表示ができたものを消せないわけがない
72 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:10:44 ] >::SendMessage(選択されたハンドル,WM_PAINT,0,0); >::SendMessage(選択されたハンドル,WM_ERASEBKGND,0,0): どちらもトリガーになるものがないと働かないメッセージだと思うが。 ::InvalidateRect() とかのね。
73 名前:デフォルトの名無しさん [2009/03/07(土) 21:42:36 ] InvalidateRect(ハンドゥル,NULL,TRUE); で出来ました^^) どうもありがとう!
74 名前:デフォルトの名無しさん [2009/03/07(土) 22:13:36 ] エディットに関連付けたスピンボタンについて。 pSpin->SetRange(-10, 10); pSpin->SetPos(0); とやっても、0が表示されないんだけど仕様?? SetPos(1)やSetPos(-1)は表示されるんだけど。。。
75 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:20:59 ] C++勉強してみようと思うんですけど取り合えずは猫でも分かる〜を全部終わらせてみるってのが良いでしょうか?
76 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:24:25 ] 2Dシューティングゲームを作っているのですが、クラスの扱いに困っています。 敵の弾クラス(cBullet)を用意したのですが、それをうまく活かせません。 敵がそれぞれcBullet Bullet[100]といったように個別に弾を持ったのでは効率が悪い気がします。 一括して管理したいのですが、どういう構造にするとよいのでしょうか。
77 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:32:16 ] >>75 自分がわかりやすいと思ったとこを参考にすればいい。 そこのやりかたが絶対唯一じゃないことさえ認識していればなんとかなるでしょ。
78 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:36:00 ] >>76 自分の思った通りにやってみればいい。 画面上に存在できる弾の数だけグローバルで配列持ってもいいし。
79 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:45:14 ] >>78 なるほど、まずはそれでやってみます。 ありがとうございました
80 名前:75 mailto:sage [2009/03/08(日) 20:32:46 ] 猫でも分かるー見てやってみたら最初っからつまづいた VC++2008EEで説明してるサイト教えてもらえませんか・・・
81 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:03:39 ] VCは初心者向けの情報は少ないし、あっても古い。 もしかしたらあるかもしれないが初心者用のサイトなんか興味ないから知らん
82 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:30:43 ] >>75 自分が作りたいと思ったものを作ってみるのが一番の勉強法
83 名前:デフォルトの名無しさん [2009/03/09(月) 00:38:45 ] いや、それよりvc2008eeは入門サイトほとんど駄目だからつらいな .netフレームワーク使うとこうなんのか? スタンダード金出せば猫さん家も役に立つが ソフトに金払う余裕ないだろうなぁ
84 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 06:38:38 ] スタンダード金出さないと使えないのはMFCとリソースエディタ win32なら無料で使えるから猫が全然使えないわけじゃない ただあそこは古すぎるからコンパイルエラーぐらい自力で解決できないと無理
85 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 10:04:00 ] ダイアログエディタが使えないのはちときついかな。 入門探すより、自分であれこれいじってみては。
86 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:25:22 ] >>84 なあ古すぎる癖にシェアウェアとか猫はふざけてるよな
87 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 13:16:02 ] VCEEで勉強するときは #pragma warning(disable : 4996) や Unicode あたりの情報は必須だな そして、WinAPIでまた引っかかるとw
88 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:09:59 ] VCEEって、セキュリティが強化された関数は使えないのか?
89 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 14:11:19 ] 使えるけどその関数を使った例題がほとんどないからでしょう
90 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:33:00 ] すみません、どなたか教えてください 親クラスA、子クラスBともに仮想関数func()が実装されているとします この時Aクラスのポインタ(A* pA)にBクラスのインスタンスのポインタを代入し pA->func() を呼び出した場合クラスAとBどちらのfunc()が呼ばれるのでしょうか 会社で実験しようと思ったんですが残業規制のせいで調べられなかったんでご存知の方ご教示くださいm(__)m
91 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:36:29 ] C++の質問ならC++スレでした方がいい
92 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:40:32 ] クラスA
93 名前:90 mailto:sage [2009/03/09(月) 18:43:24 ] 自己解決しました クラスBですね >>91 すみませんでした
94 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 20:58:33 ] 環境 VisualC++.NET(2003) MFCを使ったアプリケーションを作っています。 フォームにエクセルのような格子で区切られた表のようなコントロールを貼り付けたいのですが Webで調べてMicrosoft DataGrid Control 6.0とかMSFlexGridを使えばいい野ではないかというところまでは分かったのですが、 ・MSFlexGridなんてものが.NET frameworkコンポーネントにもCOMコンポーネントにも存在しない。 ・.NET frameworkコンポーネントにDataGridがあるが、そもそも初めからチェックが入っている。 それなのにツールバーには表示されてない。 一旦チェック外して再びチェックしなおすとツールバーにそれらしきものが追加されたが非アクティブになってて使えない。 ・そもそも.NET frameworkコンポーネントの中はほぼ全部チェックが入っているのに ツールバーに一切無いのが理解出来ない。 ・一度間違えてデフォルトの「ボタン」のコントロールをツールバーから削除してしまったので、 COMコンポーネントから探したが同じものが無かった(プロパティが別物だった) アイテムの追加と削除ダイアログでリセットボタンを押して直す事が出来たが、 デフォルトでツールバーにあるアイテムはCOMコンポーネントじゃないなら一体何者なのか? 行き詰っています。どなたか教えていただけないでしょうか?
95 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:12:11 ] >>94 noribeat.s38.xrea.com/developer/03031501.html
96 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:45:10 ] >>95 ありがとうございます。 ですがリンク先の指定どおりにActiveXの挿入を行っても、 Microsoft FlexGrid Control, version 6.0が選択肢の中にありません。
97 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:56:19 ] >>94 そこらへんのVBランタイムを入れるとついてくることが多い。 MSFLXGRD.OCX入りのVB6ランタイムを探すんだ。 あとはこれで。 support.microsoft.com/kb/318597/ja
98 名前:94 mailto:sage [2009/03/09(月) 23:10:50 ] 自分のPCを検索して見ましたがMSFLXGRD.OCXは存在しないようです。 あと実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない (自分ですらめんどくさいのにもっと素人なら嫌気がさしてやめてしまうかもしれない) のですが、そうなるともう自力でピクチャーボックスに描画するような形で作るしか無くなってしまうのでしょうか?
99 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:40:09 ] ブラウザのActiveXコントロールと同じだからインストールは楽だよ
100 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 01:45:05 ] >実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない ソフトのインストール時にREGファイルを食わせてやればいいだけ。 それをユーザに強いたら・・・そりゃダメだよな。 ま、Windowsの文字コード表程度の表なら、自前で作っても手間はそんなにかからないがね。
101 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:07:09 ] VC++2005でMFCアプリに名前空間名に"interface"って使えない? c2059というコンパイルエラーになる。 /clrオプションは使っていないし、 非MFCアプリやstdafx.hをincludeしないとコンパイル通るし C++/CLIで予約語になってるeventとか他の単語は 使えるから単なるバグですかね?
102 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:21:37 ] 最近変なやつ多いな 同一人物?
103 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 17:29:53 ] >>101 COM関係のヘッダのどれかで、#define interface structと定義されている。
104 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:05:33 ] #include <stdio.h> int main(void) { printf("Hello!\n"); return 0; } と #include <iostream> int main() { std::cout <<"Hello!" << std::endl; return 0; } 見るサイトによって書き方が違うけど結果は似たようなのがでるんですけど これはどういう違いがあるんですか?
105 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:15:37 ] C/C++
106 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:26:37 ] >>105 どっちがCでどっちがC++?
107 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:31:56 ] ggrks
108 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:45:52 ] スレを勃てるまでもないC/C++の質問はここで 8 pc11.2ch.net/test/read.cgi/tech/1235921779/
109 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:22:28 ] >>106 上がCで下がC++
110 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:45:27 ] Visual Studio 2005 Vistaです。 6つのピクチャボックスに表示させた6枚の画像 (横3枚の2段)から1枚を選択(ダブルクリック)して、 選択した画像を左上のピクチャボックスの表示し、 選択した以外の画像は消去する、 といったことはどのようにして実現できますでしょうか。
111 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:33:54 ] 表示と消去ができるならクリックしたタイミングで好きなようにやればいい
112 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:55:36 ] >>110 ・6つのピクチャボックスに SS_NOTIFY スタイルを付加する。 ・あとは STN_DBLCLK メッセージが通知されたときに、親ウィンドウに対して InvalidateRect( NULL) を投げればいい。 それが 「初期の描画なのか」 「ダブルクリック後の描画なのか」 「どれが選択されたのか」 を判断する仕組みは、当然必要だがね。
113 名前:110 mailto:sage [2009/03/12(木) 18:40:15 ] >>111 >>112 アドバイスありがとうございます。 なんとかできました。
114 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:10:04 ] VisualC++.NET(2003)を使ってます。 今まで作ってたソリューションをセカンドマシンでもいじるために メインマシンの共有フォルダにソリューションのフォルダごとコピー ↓ セカンドマシンにブリーフケース作ってそのフォルダを持ってくる。 という風にしようとしたのですが、メインマシンのソリューションをコピーした段階で 元々正常にビルドできて実行できてたものが正常に動きません。 コピー先ソリューションの動作 @開始ボタンを押すと毎回「プロジェクトの構成が変更されています。ビルドしますか?」のダイアログが出る。 ・@でいいえを選ぶと何事も無く動く ・@ではいを選ぶと元々出なかったエラー「ビルドエラーが発生しました。続行しますか?」というダイアログが出る。 ・BuildLog.htmを見ると 'CDHtmlDialog' : 定義されていない基本クラスが宣言されています。などを筆頭に ずらずらとエラーが出ている。 これは元のフォルダでは出ない。 初心者でソリューションの構成ファイルなどのどこかに絶対パスがあるのか、見当も付きません。 プログラム自体は絶対パスを指定するような部分は有りません。 どなたか、解決のヒントでも教えていただけないでしょうか? また、個人で2PCでプログラム開発する場合VSSのような物(多分有料ソフトですよね?) を使わずに同期とったりバージョン管理する良い方法があれば教えて頂けないでしょうか?
115 名前:114 mailto:sage [2009/03/13(金) 20:48:02 ] もう一度やってみたら上手くいきました。 何故なのか分かりませんが一回目にやったコピーでファイルがおかしくなっていたのかもしれません。
116 名前:791 + 792 mailto:sage [2009/03/13(金) 22:48:32 ] エラーUZEEEEEEな状態助けてくださいな。 #include "stdafx.h" #include <iostream> int main() { int a; int b; int r; cout << "割られる数は?(整数)"; cin >> a; // ここで数値を読み取っている cout << "割る数は?(整数)"; cin >> b; // ここで数値を読み取っている r = a % b; cout << "割った余りは" << r << "だよ" << endl; } エラーはrror C2065: 'cout' : 定義されていない識別子です。 こんなのが endlだったりcinだったり6個あった。 ソースおかしい?
117 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:54:19 ] >>116 名前空間(namespace)について勉強しろ
118 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:05:18 ] >>116 stdafx.h を開いて using namespace std; と書け。
119 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:15:13 ] >>118 それやっちゃうと名前空間を定義してる意味がなくなるので あまり人にすすめることではないかと…
120 名前:791 + 792 mailto:sage [2009/03/14(土) 00:12:02 ] ますます訳が分からなくなった。 namespaceで何処を囲えば良いのかさっぱり。 どこかで名前が被ってるからnamespace使えってことで合ってるんだよね? 知らない間にエラーが102個に増えた。 何処が駄目で何でnamespaceが必要なのかまだ理解できてない俺・・・
121 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:22:36 ] ttp://homepage2.nifty.com/well/FirstProgram.html stdafx.hなんて捨ててしまえと思わなくもない
122 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 00:39:30 ] >>120 要は、std という名前空間をどこで使いたいか、だ。 int main() のなかだけで使いたいなら int main() の中に書けばいい。 int main() の書かれている cpp ファイルの中で使いたいなら、#include <iostream> の下あたりに書く。 いつでもどこでも使いたいなら stdafx.h に書く。(このときの注意点は >>119 )
123 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 05:28:15 ] バカみたいな質問で申し訳ありません。猫でもで勉強してて今まで、VC++2008でCの勉強をやってたんですが、C++をやり始め、 1>.\ex01.cpp(1) : fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory というエラーが出ました。これはiostream.hが標準ライブラリにないという事ですよね。 色々、ググってみたんですが、標準ライブラリの宣言で躓くなんてバカな奴はいないのか、 どこでダウンロードするのかどうやって標準ライブラリに追加するのかさっぱりわかりません。 教えていただけると助かります<m(__)m>
124 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 06:53:08 ] C++初心者用のスレへ行った方がいい
125 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:21:13 ] >>123 <iostream.h>は昔の存在。だから最近のVisual C++には入っていない。 <iostream>をインクルードして、coutとかcinとかはstd::cout、std::cinなどのようにstd::を付けろ。 詳しくは最近の入門書を読め。
126 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:57:31 ] 拡張子を.cppにしたときから インクルードファイルは全て.h抜きを覚悟すべきだな
127 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 08:24:13 ] >>123 猫でも…(ryは、難点として、標準ライブラリのインクルードがおかしいってのがある。 あきらめて書籍買え。その方が実りあるよ。
128 名前:791 + 792 mailto:sage [2009/03/14(土) 10:31:41 ] int main(){ using namespace std;にしたら下のエラーが出たけど、ググったら解決した。 コンソールアプリケーションでプロジェクトを作らないと下のエラーが出る見たいだから プロジェクトを作り直してやったらすんなり。 MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 C:\Documents and Settings\Nanashi\My Documents\Visual Studio 2008\Projects\null1\Debug\null1.exe : fatal error LNK1120: 外部参照 1 が未解決です。 まだnamespaceの意味プーだけど、>>121 が教えてくれたサイトを見たりして 理解できるようにがんばる >>122 もありがとう,助かったよ。
129 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 10:36:04 ] デフォルトエントリポイント コンソールアプリケーション→main Windowsアプリケーション→WinMain ※マルチバイト文字セットの場合
130 名前:791 + 792 mailto:sage [2009/03/14(土) 10:58:01 ] >>129 ありがとう。 int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int) でやってみたけど、デバッグはエラーないけど デバッグなしで開始しても何も出てこない・・・ これはもう少しC++が分かるようになれば出てくるんだよね? ちゃんとしたウィンドウとかダイアログが出せるようになるのが楽しみだ
131 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 11:13:00 ] >デバッグなしで開始しても何も出てこない・・・ Windowsアプリケーションなんだから、ウィンドウを作らないことには何も出てこない。
132 名前:デフォルトの名無しさん [2009/03/14(土) 15:19:49 ] ある環境をリンク中に、下記エラーが出るようになってしまいました。 >LIBCMTD.lib(dllcrt0.obj) : error LNK2019: 未解決の外部シンボル __imp__GetCurrentThreadId@0 が関数 __CRT_INIT@12 で参照されました。 PlatoformSDKの関数らしいですが、どのライブラリが足りないかご存じの方いませんか?
133 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:48:20 ] CRT_INITで参照するものが不足するか? 環境の問題だろ
134 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:04:29 ] >>130 C++ができるかどうかとWindowsプログラミングは全く関係ないぞ。 現に、猫でものWin32編は基本的にCだけでそういうことをやっている。
135 名前:791 + 792 mailto:sage [2009/03/14(土) 18:38:52 ] >>131 確かにWindow作らなきゃ何も表示されなくて当たり前だった。 >>134 ごめん、まだC++否プログラミング始めて1日くらいしか過ぎてないんだ。すまない Windowsプログラミングとは関係ないのか、猫でもにはWindowsSDKとかあったな。 if関数に少しだけ感動した,いろいろ応用が利きそうな関数だ。
136 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:54:15 ] if関数は初めて聞いた
137 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:01:40 ] VBAにiif関数があってそれのことかと思た
138 名前:132 [2009/03/14(土) 19:54:13 ] C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib とパス指定すべきところを、 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64 としてました。。。(笑 こんなんですごい時間かかった(汗
139 名前:123 mailto:sage [2009/03/14(土) 22:21:55 ] ありがとうございますm(__)m 明日、本屋行って標準ライブラリ集でも買ってきて、猫で続きをやろうと思います。
140 名前:デフォルトの名無しさん [2009/03/16(月) 17:45:39 ] 入力支援がちっとも支援してくれません。 たまに入力候補一覧のリストボックスが出てきたと思っても、 必要なものを探すのにエライ手間がかかります。 どうしたらいいですか。
141 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:49:28 ] あれはMFCのためにある
142 名前:デフォルトの名無しさん [2009/03/17(火) 00:54:01 ] 初歩的な質問ですが、 どこかの設定を無意識に変えてしまったせいなのか 構成の種類をDLLにした場合でも、自動でLIBを作成してくれなくなりました どこの設定をかえればいいのか教えていただけるとありがたいです。 VC++2008EEを使用しています。
143 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:40:35 ] 自己解決しました EXPORTを書き忘れてましたorz
144 名前:デフォルトの名無しさん [2009/03/18(水) 19:59:37 ] 窓の杜にあるようなソフトもvc++で作れますか?
145 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 20:46:28 ] >>144 作れます。初心者を脱出してC++とWinのAPIをめっちゃ勉強すれば。
146 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 10:49:08 ] sdkddkver.hを見る限り、_WIN32_WINNTを適当な値に設定して、 その他WINVER等の定義は任せてしまった方が良いのでしょうか。
147 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:07:49 ] ヘッダファイルの読み込み順序による。
148 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:16:32 ] ありがとうございます。たしかにそうかもしれませんね。 いつもwindows.hからインクルードしてたので、順番のことは気にも留めてませんでした。
149 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:22:34 ] 始めようと思うんですが、公式ページの「Web インストール (ダウンロード)」をクリックしても エラーページに飛ばされてダウンロードできません。 同じ症状の方いますか? Firefoxのエラー文によると >サイトアドレスは有効なようですが、接続を確立できませんでした。
150 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:36:09 ] Visual Studio 2008 Part 15 pc11.2ch.net/test/read.cgi/tech/1233853864/
151 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:57:54 ] download.microsoft.comに繋がらないようです。 自分だけ?
152 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:08:15 ] と今日の日記に書いておこう
153 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:56:07 ] コメントを関数の前に書くと その前の関数のグループになってしまいます コメントがグループの初めになるように任意に修正する方法はないでしょうか ご存知の方お願いします
154 名前:デフォルトの名無しさん [2009/03/24(火) 21:57:11 ] Microsoft PressのVisual C++.NET実践講座 Vol.1基礎編の本には、 Console::WriteLine(S"Hello World"); のようにダブルクォートで囲った文字列の前にSが付いていて、それについて 何の説明も書いてないけど、このSって何。
155 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 22:04:42 ] わかったSystem::String*だ
156 名前:デフォルトの名無しさん [2009/03/25(水) 02:18:26 ] visual cで作られたアプリケーションがあるのですが、 これを改造して自分のほしい機能を付け加えています。 自分で追加した変数やマクロなどとそうではない箇所とで、識別子(関数名、変数名、マクロ名)を明確に分けたいのですが、 新たに追加した部分にルールをつけるだけでなく、 改造元の識別子のすべてに対して、「kaizoumoto_」「KAIZOUMOTO_」のような接頭語をつけたいと考えました。 そのようなことを一括で行うことは可能でしょうか。 改造元から現在の状態までの間の追加は失われてかまいません。(改造元があって、それの識別子を一括で変更したいです。) というか、Visual Cと全然関係ないですか。すみません。 ご存知でしたら、Helpをお願いします。
157 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 10:34:11 ] VC++のエディタウィンドウの行間をひらげることってできますか? フォントやエディタの設定項目を調べて見ましたが、うまくできませんので、お願いします。
158 名前:デフォルトの名無しさん [2009/03/26(木) 12:45:11 ] >>156 正規表現
159 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 12:46:58 ] >>157 ひらげるってw
160 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 06:41:15 ] 2008 Express Edition使ってて外部エディタで編集してるから これのエディタは見るだけにしたいんだけど 編集禁止状態に出来ない?
161 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:02:01 ] >>160 閉じられるって。
162 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:14:25 ] 俺が思うに閉じたら見られないのではなかろうか
163 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 05:06:11 ] VS2005, XPでWin32プロジェクトを作成中です。 CreateWindowでウィンドウをつくり、さらにCreateWindowでボタンを追加しました。 マウスによる指定とカーソルキーによって、 メインウィンドウのある領域でカーソルが移動するようになっています。 (WM_LBUTTONDOWN, WM_KEYDOWN) しかし領域外につくったボタンを押すと、 マウスによるカーソルの移動は受け付けるものの、カーソルキーを押しても反応がありません。 一度ウィンドウを非アクティブにし、再びアクティブに戻すと動作は正常に戻ります。 ボタンはWM_COMMANDで処理を行わずとも、押した時点で動作がおかしくなってしまうようです。 ご教示お願い致します。
164 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:44:29 ] カメラ目線
165 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 15:38:35 ] 一応、ソースプログラム出さない?
166 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:19:50 ] ソースもなにもカーソル戻すだけだろ
167 名前:163 mailto:sage [2009/03/28(土) 17:57:29 ] 全体を添付した方が望ましいのでしょうか 宜しくお願い致します case WM_COMMAND: switch (LOWORD(wParam)){ case Button25: break; default: return DefWindowProc(hWnd, message, wParam, lParam); }break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); Rectangle(hdc,xwidth*(xx+1),ywidth*(yy+1),xwidth*(xx+2),ywidth*(yy+2)); EndPaint(hWnd, &ps); break; case WM_LBUTTONDOWN: x = LOWORD(lParam); y = HIWORD(lParam); if(x>xwidth && x<xwidth*(member+1) && y>ywidth && y<ywidth*(member+1)){ xx = x/xwidth-1; yy = y/ywidth-1; InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd); }break; case WM_KEYDOWN: switch(wParam){ case VK_RIGHT: if(xx<member-1) xx++; break; case VK_LEFT: if(xx>0) xx--; break; case VK_DOWN: if(yy<member-1) yy++; break; case VK_UP: if(yy>0) yy--; break; } InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd); break;
168 名前:165 mailto:sage [2009/03/28(土) 20:13:06 ] case Button25: を押したら、break; の前にコントロールを戻すために何かするんじゃないか。 何の関数呼べばいいのかわからないけど、ここまでだ。
169 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 20:49:47 ] ソース見る必要あったのか?
170 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 20:59:43 ] >>163 です SetFocus( hWnd ); でした! 解決致しました。ありがとうございます!
171 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:15:48 ] 1. マネージC++のインターフェイスは、純粋仮想関数だけを持つ抽象クラスみたいなものか。 2. マネージC++のシールクラスは、自分の作った知的財産であるクラスを「お前らなんかに 継承してパクらせてやるわけにはいかん」ためにあるのか。 3. マネージC++の例外の__finnallyブロックは、例外の有無に関係なく実行するということ だが、そんなのなくても、いずれの場合もcatchブロックの次を普通に実行するみたいで、 どのように違いがあるのかよくわからん。 4. 派生クラスで基底クラスのメンバー関数をオーバーライドできるのは、別に仮想関数でな くても可なのか。 5. 4が正しいと仮定して言う。派生クラスのアドレスを、基底クラスのポインターに代入して、 そのポインターを使って、派生クラスでオーバーライドされたメンバー関数を呼び出した ときの扱いはどうなのか。非仮想関数なら、基底クラスのメンバー関数を呼び出して、仮想 関数なら、派生クラスのメンバー関数を呼び出すのではないかと思うが、それで正しいか。
172 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:33:33 ] 誤爆です
173 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:48:12 ] 違う誤爆ではない。 邪魔しないでくれ。
174 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:53:52 ] あっ、確か__finayllyはreturnされると呼び出し元に戻る前に、そのブロックが 実行するってことか。何かに書いてあったような記憶が。
175 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:57:23 ] あっ、良く確かめずに書いてすみません ちゃんと調べてから書き直します
176 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:00:47 ] >>172 >>175 おい、偽者が何やってるんだ。
177 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:05:07 ] C++/CLIスレのがよさげ あと、試してみたほうが早い気が
178 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:05:13 ] 以上すべて自演でした
179 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:07:30 ] どうも失礼しました これからは自分で試してから書くことにします
180 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:09:30 ] >>178 >>179 こら、いい加減にしろ
181 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 14:54:21 ] どなたか>>157 について、よろしくお願いしますm(_ _)m
182 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:03:19 ] 無理じゃない? 行間の空くフォント探してくるとか
183 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:19:04 ] できないことはないな ただ全然興味ないから完全スルー
184 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:01:59 ] VC++ 2008 EE 0からのゲームプログラミングというサイトでスケルトンプログラムを ダウンロードしビルドしたのですが、 1>c:\users\○○○\documents\visual studio 2008\projects\samplestg\source\application.cpp(537) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? というエラーが出てしまい実行できません。 Winプロジェクトで空のプロジェクト選択をし、プロジェクトのプロパティで プリコンパイル済みヘッダーを使用するに設定してもできませんでした。 よろしくお願いします。
185 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:09:29 ] スケルトンだったら自分で作ったスケルトンとくらべてみればわかるだろ
186 名前:184 mailto:sage [2009/03/31(火) 22:29:16 ] 私自身はスケルトンプログラムは作っていません。 0からのゲームプログラミングというサイトで、 サイト管理人が作ったスケルトンプログラムをダウンロードし、 ビルドしてくださいとあったので流れに従って進めたところ、 エラーが表示され先へ進めなくなったしまったんです。
187 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:38:30 ] そこのサイト管理人にビルドできないと言ってやればいいだけ
188 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:39:13 ] stdafx.cpp→プリコンパイル済みヘッダーを作成する
189 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:29:27 ] 2004年ごろから放棄されてるサイトのようだから 今大幅修正しないと使いものにならなくて投げ出したんだろ
190 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:58:12 ] 「プリコンパイルヘッダーを使用しない」にしてみるという知恵は回らんのかw
191 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 11:26:05 ] 一行追加すればいいじゃん
192 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:30:28 ] >>172 >>175 >>178 >>179 は、派遣を解雇されたからって、最低な書き込みするな。 書いた本人のふりして妨害するな。
193 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:05:59 ] >>192 そんな怒ってんなよ たかが2chにマジになるな。 だいたい派遣を解雇されたヤツは今頃2chなんてやってらんねぇんじゃねぇのかな?
194 名前:デフォルトの名無しさん [2009/04/01(水) 21:49:18 ] 10年ほど前に買った新Visual C++6.0 シニア編ですが その中のchapter 26コントロールをコードで配置するで CButton* myBTN = new CButton(); myBTN->Create("実行", BS_PUSHBUTTON | WS_VISIBLE , CRect(10, 10, 100. 40), this, IDC_BUTTON1); などとありますがnewを使っているのにDestroyWindowを使っている形跡がありません。 CFramewndなどでは勝手にdelete this などとしているようですがCButtonとかは何もする必要はないのでしょうか。 このサンプルプログラムではCDialogを継承したものです。 リソースエディタ以外で手動で作ったコントロールも自分で削除しなくてもいいのでしょか?
195 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:19:00 ] new したものは delete しなきゃダメ
196 名前:デフォルトの名無しさん [2009/04/01(水) 22:32:38 ] >195 CButtonはCWndの継承ですがディストラクタで勝手に NCDestroyで勝手にやってはくれないのでしょうか? 私自身もあんまりよく分かっていないのですが。
197 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:36:18 ] CButtonのデストラクタにブレイクポイント置いて、デバッグ開始したらわかるんじゃね?
198 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:41:05 ] >>196 CWnd のソース読めばわかることだろ。MFC のソースは HDD の肥やしじゃないぞ。
199 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:46:11 ] >>197 んなことしなくても、デバッグモードで実行したら、終了時にメモリーリークがあれば表示される。 ちなみに、CWnd::PostNcDestroy() のソースはこうなっている。 void CWnd::PostNcDestroy() { // default to nothing }
200 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:55:01 ] >newを使っているのにDestroyWindowを使っている形跡がありません そもそもこのふたつには関連性がないだろうに
201 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:21:50 ] DestroyWindow 指定されたウィンドウが親ウィンドウやオーナーウィンドウのときは、 その子ウィンドウやオーナー付きウィンドウも自動的に破棄します。 このとき、先に子ウィンドウやオーナー付きウィンドウを破棄してから、 親ウィンドウやオーナーウィンドウを破棄します。 なのでDestroyWindowは不要 ただしクラストやメモリ管理とは別問題
202 名前:デフォルトの名無しさん [2009/04/02(木) 00:12:30 ] >ただしクラストやメモリ管理とは別問題 確かに別問題ですね。 新Visual C++6.0 シニア編にdelete処理が 載っていないのでおかしいと思ってたのですが それとWindowの破棄とは直接関係ないですね。 どこかでdelete処理されているのではないかと思って 相談したのですが自分でやらないとダメですね。
203 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:48:24 ] そろそろ、新Visual C++6.0 シニア編を燃やして 本格的にWindowsプログラミングを学んではいかがでしょうか。
204 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 03:24:54 ] C++でDTM支援ソフトを作ったことがある人はいませんか? Dominoみたいなのが作れるようになるまでになりたい…。 出来る限りフリーで…。
205 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:08:38 ] 16bitのころシーケンサ書いたけどな、、、最近はそっち方面やってないな って聞いてどうすんだw
206 名前:デフォルトの名無しさん [2009/04/02(木) 13:04:20 ] ぶっちゃけCでも何でも余程技術がない限りライブラリを使うことになりますよね だったら最初からスクリプト言語でいいじゃんって思ったんですが 間違ってます?
207 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 13:27:08 ] それでいいと思うならそれでいいだろ。 人に聞くことでもないな。
208 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:35:31 ] >>206 現実スクリプト言語が流行ってない事を考えれば自ずと答えは導き出せるのでは
209 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:08:24 ] スクリプトキディってことじゃね?
210 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:20:29 ] でもスクリプト言語ってはっきり言っているような。 >>206 がスクリプト言語という言葉を理解しているという仮定の下で話すと、 >ライブラリを使うことになり ↓ >スクリプト言語でいいじゃん ここの論理的な演繹がおかしいと感じるのは俺だけではないはずだ。
211 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:52:45 ] Console::WriteLine(S"柔道や剣道や空手ではなく、ボクシングをしないとコンパイルできないのか。"); Console::WriteLine(S"スーパーヘビー級: {0}kg以上", __box(91)); Console::WriteLine(S"ヘビー級: {0}-{1}kg", __box(81), __box(91)); Console::WriteLine(S"ライトヘビー級: {0}-{1}kg", __box(75), __box(81));
212 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:03:53 ] そう言えば、このスレにConsole::WriteLineのソースが無いじゃないか。 何でだ、だれもプログラムしないのか。
213 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:22:59 ] Console使う人は珍しいと思う
214 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:49:55 ] オメガチャートをリアルタイムもしくは20分遅れでデータ取得したいのですが、 さっぱりどうしたらいいのかわかりません カバでもわかるように教えていただけませんか
215 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:11:09 ] >>214 おまいには無理 誰か親切な人がコンパイル済みのをうpしてくれるのを待て
216 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:27:46 ] そんな奇特なお方おらんやろ〜
217 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:31:05 ] いやわからんぞ 2ちゃんで一番親切なイケメンがいる板だからな
218 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:50:22 ] 俺の出番が来ましたね。しばらくお待ちを。
219 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:57:46 ] この板にイケメンなんかいたのか
220 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:24:28 ] イケてるとはかぎらないじゃない
221 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 17:05:17 ] >>218 ありがとうございます親切な方 気長に待ってますのでお願いします
222 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 22:02:58 ] .NET Frameworkのサンプルコードは、VB.NETとC#でコード書かれてて、C++が無い。 C#のコードの、ドット演算子をスコープ解決演算子に置き換えたらC++になるのかどうか。 ほかにどう変換すべきか。
223 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:19:38 ] 場合による
224 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:21:37 ] クラス・構造体にref/valueを付ける。 組込型の変化、long→long longやchar→wchar_t、byte→unsigned charなど。 参照型にハンドルを付ける。ただしusingを自動変数にする。場合によってはできないので、auto_handleを使用する。 unsafeの消失。hoge*はpin_ptr<hoge>に対応するが、interior_ptr<hoge>やhoge*にできる場合もある。 ……いろいろあって挙げていったらきりがない。
225 名前:214 mailto:sage [2009/04/04(土) 10:50:52 ] 何とか自分でできました ありがとうございました
226 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:50:07 ] 今日はこの本で1冊の学習を終えた。 www.amazon.co.jp/gp/product/images/4891002832/ref=dp_image_0?ie=UTF8&n=465392&s=books C++を使えたら、一番ワイドになれるんだろう。 C++標準ライブラリも.Net framewordもMFCもATLも何でも使えるものは使ってワイドになりたい。
227 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:03:49 ] typedef structで構造体を定義してるんですが、 新しく変数を追加しようとしても追加されなくて困っています。 同じ構造体の他の変数はマウスカーソル合わせるとunnamed〜と表示されるのですが 新しく追加した変数はintと表示されています。 どなたか原因を教えてくれないでしょうか?
228 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:37:26 ] 「追加されない」って、IntelliSence に追加されないってだけの話じゃないのか?
229 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:04:04 ] >>228 説明不足でした。すみません。 実際はエラーは出てないんですが、 候補一覧に出てこないので、不安になって質問しました。 時間置いたら今は出るようになっていました。 この候補一覧に出るようにするにはビルドする以外にも何かする必要があるのでしょうか?
230 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:23:50 ] >時間置いたら今は出るようになっていました。 通常は、これがすべて。詳細はヘルプの「IntelliSense の使用方法 」を参照すべし。
231 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 14:07:52 ] >>230 ありがとうございました。 IntelliSenceの使い方をやっと理解できました
232 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:52:51 ] ははは
233 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:06:31 ] エクセルのデータで、1の列が文字列、2〜をint型で読み込んで構造体に入れたいんですが、どうしたらいいでしょうか?
234 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 16:50:08 ] CSVファイルに、カンマ区切りかタブ区切り形式で先ずテキスト化する。
235 名前:233 mailto:sage [2009/04/06(月) 19:25:21 ] エクセルのマクロ使ってという事ですよね。 ありがとうございます。やってみますm(__)m
236 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:27:40 ] すでにエクセルのデータではなくなっている。^-^;
237 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:44:08 ] そっち方面ならC++/CLIで.NETのが楽かも でもそれならC#にしちゃうか
238 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:07:46 ] 体験版のVC++Proを入れた後に VC++Expressを入れてもMFCは使えるようになりませんか?
239 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:32:49 ] ヘッダやライブラリが揃っていればコンパイルはいけるんじゃね
240 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:27:47 ] >>238 ぐぐってみろ。使えるから。
241 名前:デフォルトの名無しさん [2009/04/08(水) 12:51:11 ] >>238 使えるようになるけど、Express上でMFC使ったアプリを 作っても配布してはならない。ライセンスでそうなってる。 MFCは無料じゃなくて有料です。勉強なら許すって感じかな。
242 名前:デフォルトの名無しさん [2009/04/08(水) 15:03:31 ] スタートページのニュースヘッダーみたいなのって出なくできますか? あれで引っかかるような挙動したりして気持ちが悪い
243 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:09:39 ] オプションで設定できるのに、何でそれくらい自分でできないの?
244 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:13:46 ] FAQだな。 ちょっと探せばわかるけど、EEの場合オプションの全表示のチェック入れてなくて 無いと思い込んでる場合も
245 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:33:12 ] VS2005、MFCで以下の様なプログラムを作っています。 しかし、for文の中の代入がうまく行かず困っています。 例えば、SysTim.wYearには2009が入っているのに、 MyDataのYearには0が入っているという感じです。 何が原因なのでしょうか? SYSTEMTIMEのメンバがWORDな所為かとも思いましたが、 結局解決策を見つけられずにいます。 struct MY_DATA { unsigned char Year; unsigend char Month; unsigend char Day; unsigend char Hour; unsigend char Minute; unsigend char Second; unsigend char Data[8]; }; MY_DATA MyData[10]; SYSTEMTIME SysTim; GetLocalTime(&SysTim); int i; for (i = 0; i < 10; i++) { MyData[i].Year = SysTim.wYear; ・ ・ ・ }
246 名前:デフォルトの名無しさん [2009/04/09(木) 00:49:51 ] charに入らないから。 wYear The year. The valid values for this member are 1601 through 30827.
247 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:09:26 ] >>246 返事ありがとうございます。 1Byteのサイズに2Byte分入れようとしてるから、という事でしょうか? 以下の例で、ちゃんと値が代入できていたので、可能という認識なのですが。 (キャストしなきゃWarningが出るのはおいといて) あと、私の書き方が悪かったですね・・・Yearだけでなく 年月日時分秒全てがうまく行きませんでした。 char Data1 = 0; short Data2 = 10; Data1 = Data2;
248 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:26:18 ] >>247 不可能。 BYTE byte; // typedef unsigned char BYTE; SYSTEMTIME SysTim; GetLocalTime(&SysTim); byte = (BYTE)SysTim.wYear; で試してごらん。無理だから。
249 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:46:40 ] 1Byte = 8 Bit = 2 ^ 8 = 256 < 2009;
250 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:08:11 ] >>248 ,249 お返事ありがとうございます。 すいません、言いたかったのは代入後の値が0なのは何故かということです。 環境によるのだとは思いますが、普通は下位1byteが入っているはずでは?という認識です。 年以外に関しては、255以下ですし。 >>247 に挙げた例で、下位1byteを代入できているので 同じような事をしてるのに、何故うまく行かないのかというところです。 とりあえず、明日もう少し考えてみます。
251 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:13:09 ] >>245 unsigendだから?綴りが違う。 #include <stdio.h> #include <time.h> #include <windows.h> #include <winbase.h> int main(void) { struct MY_DATA { unsigned char Year; unsigned char Month; unsigned char Day; unsigned char Hour; unsigned char Minute; unsigned char Second; unsigned char Data[8]; }; MY_DATA MyData[10]; SYSTEMTIME SysTim; GetLocalTime(&SysTim); for (int i = 0; i < 10; i++) { MyData[i].Year = SysTim.wYear; MyData[i].Month = SysTim.wMonth; MyData[i].Day = SysTim.wDay; MyData[i].Hour = SysTim.wHour; MyData[i].Minute = SysTim.wMinute; MyData[i].Second = SysTim.wSecond; } }
252 名前:デフォルトの名無しさん [2009/04/09(木) 07:08:02 ] VC++2005、.net framework2.0を使っています。 CSVファイルを読み込む ってのをやって見ようと思って、 using namespace Microsoft::VisualBasic::FileIO; としてみたのですが、 .\tesuto.cpp(7) : error C2039: 'FileIO' : 'Microsoft::VisualBasic' のメンバではありません。 .\tesuto.cpp(7) : error C2871: 'FileIO' : この名前を指定された名前空間は存在しません。 と言われエラーになります。 何が足りなく、いけないのでしょうか? さっぱりよく分っていないのですが、よろしくおねがいします。
253 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 09:29:24 ] Microsoft::VisualBasic::FileIOというのを定義してないか 定義してあっても参照できない
254 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 10:46:08 ] >>252 ソリューションエクスプローラーでプロジェクトを右クリックして参照(F)...を選択 Frameworkと参照が選択されている状態で、[新しい参照の追加(N)...]ボタンを押して .NETタブから、Microsoft.VisualBasicを選択してOKを押す。 XMLなら別の方法も、、、チュートリアルか何かを参考にしてるのか?
255 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 10:46:58 ] ってXMLじゃなくてCSVか
256 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:14:57 ] >>254 は2008での話で2005で確認したら[Frameworkと参照]の部分は[参照設定]だった まあわかるとは思うけど念のため。
257 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:27:35 ] ははは
258 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 18:53:57 ] >>250 はずしてるかもだけど、 ループの中身をYearだけ代入するよにしたらどうなる? 期待してる動作は、下位1Byteだけは代入されるだろうってことよね?
259 名前:258 mailto:sage [2009/04/09(木) 18:55:20 ] ごめん、後半は書いてたね 無視してくださいorz
260 名前:252 [2009/04/09(木) 23:14:16 ] 書かれた通りにやったら、出来た感じです。 どうもありがとうです。
261 名前:デフォルトの名無しさん [2009/04/09(木) 23:53:21 ] MFCでVisualBasicをオーバーライトできます?
262 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:55:07 ] 日本語で言ってくれ
263 名前:デフォルトの名無しさん [2009/04/10(金) 00:04:32 ] だから、MFCでVB7のプログラムをアルゴリズムから設計までそっくりそのままで 上書きして、同じプログラムをつくれるかな?ってことです。
264 名前:デフォルトの名無しさん [2009/04/10(金) 00:21:33 ] VB7って何だ?
265 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 01:29:40 ] Visual Basic で作ったプログラムと同じ動作をするものを VisualC++ で作れるか? という問いなら YES。 上書きだとかオーバーライドだとかといった既定の単語を、自分勝手な意味をつけて使っても他人にゃわからんよ。
266 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 03:04:35 ] だってプラグインしながらコンバートする感じでつくりたいんです
267 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 06:26:43 ] 構造体やクラスを作って実際に使おうとすると、インスタンス.と打つとメンバがズラッと出てくるはずですけど表示されなくなってしまいました。原因わかりますか? インスタンスをマウスオーバーすると構造体はちゃんとポップアップ表示されます。
268 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 09:41:20 ] よくあることなので諦めましょう
269 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 20:50:13 ] >>267 「.」を打ったり消したりを繰り返してれば復活しない? 後は、一回ビルドしなおすとか、ncbファイル消してみるとか・・・
270 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 21:41:24 ] 何度かやってると復活するな 文法が間違ってたりすると反応しないから、何度もやって復活しないなら文法ミス
271 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 21:48:08 ] テンプレートかインクルードファイルが多すぎると、バグか知らないけど認識してくれないことが多い気がする。
272 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 21:59:24 ] 2005/2008的には、仕様です。って感じだな。
273 名前:デフォルトの名無しさん [2009/04/11(土) 00:49:19 ] Windows7でたら、パソコン買おうとおもうんだけど、今のWin2000じゃスペック的にも無理があるから・・ Windows7でもVC++6.0ってインストールできるのかな・・いまだに結構使ってるから、入れたいんだ。
274 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 00:57:22 ] >273 もうサポートも終わった環境なんて捨てろw
275 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 01:23:57 ] >>273 VC++6.0なんて仕様がイミフだからもうヤダ。。。
276 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 09:31:43 ] >>273 VMWareで2000動かしてそこにインストールするのがお薦め。
277 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 11:05:41 ] 次期モデルC++0xはどれだけ対応しているのか期待したい
278 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 14:30:08 ] >>275 VC9になったところで仕様イミフだろ。
279 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 20:22:01 ] >>277 こういう感じらしい。decltypeが無いのは痛いと思う。 ttp://www.codeguru.com/forum/showthread.php?t=466893 ttp://d.hatena.ne.jp/faith_and_brave/20081217/1229503972
280 名前:デフォルトの名無しさん [2009/04/13(月) 12:34:48 ] エディットボックスコントロールや、立地エディットコントロール以外に ActiveXとかでエディタコンポーネントってありませんか?
281 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:56:59 ] 作れば何でもある
282 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 14:25:13 ] エディットボックスというのは初めて聞いた
283 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:39:12 ] VC++の得意分野って何?みんな何作るの? GUIアプリならC#で作った方が早いじゃんか。
284 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 19:29:19 ] .NET Frameworkなんて死んでも入れないという人のためのアプリを作るためとか。
285 名前:280 [2009/04/13(月) 19:58:06 ] >>281 はい、ありがとうございます。この際作ろうと思います。 >>282 ?私のVCのツールバーにエディットボックスってあるんですが・・普通はないのかな? で、自作しようと思いますが、CEditクラスを継承しようと思いますが、 自動インデントやらの独自機能を追加しようとおもいます。 その場合、ActiveXという形式で作成するのか、普通のC++クラスとして作成汁のかどっちがいいんでしょうか? なにぶんVC++はあまり知らないので、おしえてください。
286 名前:デフォルトの名無しさん [2009/04/13(月) 20:53:15 ] vc++2008のエディタをウィンドウ分割したときに 上側のウィンドウへフォーカスを切り替えたいとき キーボードでやるにはどうすればいいの?
287 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:03:28 ] >>286 上側ではないがF6で切り替え
288 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 10:12:40 ] >>287 できました!ありがとう。
289 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 21:57:30 ] 質問です。 VC++.net2003で、VB6.0のTextBoxと思われるもの(spy++によると、"ThunderRT6TextBox")より、 WM_GETTEXTで文字列を取得するアプリを作りました。 ただ、TextBoxの格納上限 > WM_GETTEXT取得上限のようで一定量を超える入力があると 全てを取得することが出来ません。 EM_GETTEXTEXで試したのですが、リッチエディットコントロールではないのか、何も返してきません。 何かいい方法ありませんでしょうか。 (スレあってますよね・・・?)
290 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 09:01:23 ] MFCのクラス階層図を網羅したExcelファイルはどこかにないかね。
291 名前:デフォルトの名無しさん [2009/04/19(日) 15:32:03 ] VC++2008EEなのですがビルドしようとすると general error c1010070: Failed to load and parse the manifest. と出てきて何もできません。どうすればよいのでしょうか?
292 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 16:06:38 ] プロジェクトのプロパティの構成プロパティのマニフェストツールの入力と出力に 変なファイル指定してない?
293 名前:デフォルトの名無しさん [2009/04/19(日) 16:19:03 ] 入力リソースマニフェスト→指定なし 出力マニフェスト ファイル→$(TargetPath).manifest となってます^^;
294 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 16:23:53 ] それ消すか、埋め込みマニフェストにしてみては あと、新規プロジェクトでゼロから作ってもそれ出る?
295 名前:デフォルトの名無しさん [2009/04/19(日) 16:27:05 ] 消しても埋め込みマニフェストにしても無理でしたorz 新規で作っても出ます;;
296 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 16:41:32 ] むむむ、、、、再インストール・・・かなあ
297 名前:デフォルトの名無しさん [2009/04/19(日) 17:43:02 ] 再インストールしても無理でしたorz
298 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:24:59 ] ためしに、[ツール]-[設定のインポートとエクスポート]から すべての設定をリセットしてみてはどうか。
299 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:48:11 ] WIN32アプリケーションで、 マルチディスプレイでプログラムをフルスクリーン表示にしている時に、 セカンダリ画面でクリックなどするとプログラムが最小化してしまいます。 この最小化を抑制する方法があるみたいなのですが、どうすれば可能なのでしょうか。
300 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:49:18 ] 最小化するか?
301 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:00:44 ] はい、Winキーを押した時の様になります。
302 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 17:08:08 ] それはお前の作ったプログラムでしか起きない問題なのか? 要するにお前が作ったプログラムに原因があるのか、 それとも元々OSがそういう仕様なのかぐらいはっきりしろ。
303 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 17:48:41 ] 元々OSがそういう仕様なのだと思います。 大抵の古いWIN32アプリでフルスクリーン時は大抵そうなってしまってます。 最近はそれに対処しているプログラムがあって、 それをどうやってるのかなと質問させて頂きました。
304 名前:デフォルトの名無しさん [2009/04/21(火) 17:55:39 ] Visual Studio 6.0を使ってC言語+MySQLのアプリを作りたいのですが、 [ツール]→[オプション]で ライブラリパスにC:\Program Files\MySQL\MySQL Server 5.1\lib\opt インクルードパスにC:\Program Files\MySQL\MySQL Server 5.1\include を設定し、 #include "mysql.h"をしてコンパイルするとMySQLのヘッダファイルでエラーが出まくります。 プロジェクトの設定が悪いのでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:02:00 ] どういうエラーよ
306 名前:304 [2009/04/21(火) 18:06:41 ] >>305 すみません。 c:\program files\mysql\mysql server 5.1\include\mysql_com.h(243) : error C2061: 構文エラー : 識別子 'SOCKET' がシンタックスエラーを起こしました。 c:\program files\mysql\mysql server 5.1\include\mysql_com.h(280) : error C2059: 構文エラー : '}' c:\program files\mysql\mysql server 5.1\include\mysql_com.h(394) : error C2143: 構文エラー : ')' が '*' の前に必要です。 等です。 ttp://www13.plala.or.jp/kmaeda/winc/sqlset.htm ↑ここを参考にしました。
307 名前:304 [2009/04/21(火) 18:23:26 ] すいません!自己解決しました。 #include <winsock.h>をしたらエラーが出なくなりました。 ここでwinsockが出てくるとは…。
308 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:49:05 ] ああ、そういえばmysql.h見てて書こうと思ってて他の作業入ってて書きそびれたわ mysql.h をinclude するまえにwindows.hをincludeしては、と書こうとしてた。
309 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:23:27 ] Visual Studio C++ 2008で #include <boost/random.hpp> を使いたいんですけどこれはブーストをダウンロードした後どうすればいいのですか?
310 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:31:34 ] >>309 今ダウンロードしたやつは忘れて、こっちのインストーラ版をダウンロードする。 www.boostpro.com/download 最も、VC++ 2008ならSP1当てれば#include <random>で 名前空間std::tr1にほぼ同じものが存在する。
311 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:39:06 ] >>310 ご親切にありがとうございます。 なるほどー SP1当ててないのでダウンロードしてみます。 インストール後はもう#include <boost/random.hpp>を使える状態になるのですか? 今環境がないため試せないんです;
312 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:44:38 ] インクルードディレクトリの設定やったことないのか? インストーラーがやってくれるならそのままでいいし、ダメなら自分で設定すればいいだけ
313 名前:デフォルトの名無しさん [2009/04/25(土) 00:03:11 ] すみません。一般的に画像を保存する際、.bmp形式より.jpg形式の方が画像サイズが小さくなります。 今度作成しようとおもっているのは、Alt+Prt Scキーにより、クリップボードにコピーされた アクティブな画面キャプチャを.jpg形式のファイルで保存しようとおもうんですが、 私のアルゴリズム?では、bmp形式のサイズで保存されてしまうのが予想されます。 私のアルゴリズムは以下です。 1.クリップボードの画像データをビットマップオブジェクトにコピーし、ファイルを保存する。 2.ファイル名の拡張子を.jpgに変換する。 以上です。 以前、Alt+Prt Scキーで取得した画面キャプチャ画像をアクセサリのペイントに貼り付けてjpegファイルに変換しても 画像サイズが変わらなかったので、上に書いたアルゴリズムでは同様のことになってしまうと思います。 jpegファイルの軽さで最初からファイルを保存するようにするにはどうしたらいいでしょうか? 画像関係のソフト制作、VC++は不慣れなものですので、すみませんが教えてください。よろしくお願いします。
314 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 00:11:29 ] >>313 GDI+
315 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 00:19:46 ] Express以外を使っているなら、ATL::CImageもおすすめ。
316 名前:413 mailto:sage [2009/04/25(土) 00:52:22 ] >>314 さん、>>315 さん。 どうもありがとうございます。教えていただいた、 キーワードでググってやってみようと思います。ちなみに MFCですので。。 コンビニいって、立ち読みしてたので、お礼が遅くなりました。すみません。
317 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 07:30:44 ] とりあえずファイルの拡張子変えただけじゃjpgにはならんよ…
318 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 08:20:10 ] >>317 俺も最初の頃は xxx.jpg.bmp なんてファイルがあったな
319 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 12:30:50 ] いい例えが思いつかなくて放置してたんだけど 昼飯食ってたらとたんに思いついた アナログテレビにペンで 「デジタル」 って書くだけじゃ地デジは映らないよ!
320 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 10:19:59 ] ペイントブラシは拡張子変えるだけでファイルフォーマットも変えるからなあw
321 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 10:21:03 ] ペイントブラシじゃなくてペイントか
322 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 13:35:30 ] いきなりですが、質問させてください。 VC++2008 ExpressEditionで、windowsアプリケーションを作成しようとしています。 CreateWindow関数の引数が多く、横に書いていくと見にくいので、途中で改行をしました。 すると、それ以後、コンマを入力するとエラー音(プンッというような音)が鳴ります。 これはどういった問題が起きているのでしょうか。 分かる方、どなたか教えていただけるとありがたいです。
323 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:18:15 ] すみません。物凄く素人な質問で恐縮なのですが。 ボタンを沢山配置したときに、リソース上で整列させたいのですが、 元々ダイアログに表示されている、ボタン位置の調整が出来る青い枠は 増やせないのでしょうか……? リソース上で座標だけ見てボタンの微調整をするのはかなり苦痛です。 宜しくお願いします……!
324 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:36:30 ] どのリソースエディタかしらないけどコントロールの整列ボタンとかないの? rcをテキストエディタで開いてみると DEFPUSHBUTTON "OK", IDOK, 129, 7, 50, 14, BS_DEFPUSHBUTTON PUSHBUTTON "キャンセル", IDCANCEL, 129, 24, 50, 14, BS_PUSHBUTTON こんな感じになってるから手入力でやってもたいした労力じゃないかもしれないよ
325 名前:323 mailto:sage [2009/04/27(月) 02:46:51 ] >324さま 使用しているのはVisualStudio2008のリソースエディタです。 複数ボタンを選択した後に右クリックして、左揃え上揃えがあるのを確認しました。 早とちりしてすみません(汗) 微調整は324さまの仰られた通り、テキストエディタで編集する事にします。 ありがとうございました。
326 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 03:01:17 ] >>325 騙されたと思って、ダイアログエディタのガイドをクリックしてみろ。
327 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:26:44 ] 先日からVC++2008を使い始めましたが、基本的な操作方法が分かりません。 ライブラリを追加するのはどこからやればいいのでしょうか? 2005ではプロジェクト→設定…とやっていたのですが。 プログラム自体初心者なのですが回答お願いします。
328 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:55:09 ] プロジェクト→設定…とやればいい
329 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:56:30 ] プロジェクト→プロパティだった
330 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:29:50 ] >>327 >プログラム自体初心者なのですが回答お願いします。 こういうの要らないだろ。 どうしてこういうの付けてくるヤツって耐えないんだろう。 …でもまあスレタイ的には今回は例外的に問題無いのか。
331 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:42:09 ] >>327 それくらい2005とろくに変わっていないだろ。
332 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:47:05 ] 図解つきのマニュアルで1ステップずつ解説みないと使えないレベルなんじゃないか?
333 名前:323 mailto:sage [2009/04/28(火) 01:45:05 ] >>326 さま 位置調整用の青点線増えました。助かりました。ありがとう。
334 名前:327 mailto:sage [2009/04/28(火) 10:48:06 ] プロジェクト→プロパティと開いたのですが、その後の項目で何を選べばいいのか分かりません。 2005ではリンクからライブラリの一覧が見れましたが、2008でリンカを選んでもそれらしい項目がありません。 他の項目も見ましたが、どこから追加すればいいのか分かりませんでした。 詳しく教えていただけないでしょうか。
335 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 10:53:59 ] 詳しくも何もヘルプに書いてあるだろ。探せなきゃ「リンカ入力としての .lib ファイル」でググれ
336 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:02:00 ] >2005ではリンクからライブラリの一覧 これ、何のこと言ってる? もしかしてC++/CLIか?
337 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 17:44:18 ] VC++用のXML SDKってどこからダウンロードすればいいでしょうか?
338 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:12:08 ] >>337 www.microsoft.com/downloads/details.aspx?FamilyID=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=ja
339 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:18:04 ] >>338 さんくっす
340 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 23:01:53 ] >>337 一応、VC付属のSDK・MSDNライブラリにもMSXML関連のものは入っていたはず。 望みのバージョンのものかどうかはともかく。
341 名前:デフォルトの名無しさん [2009/05/01(金) 15:15:49 ] MFCやWin32APIでつかうGDI+について、書かれてる本ってないですか?割とくわしめに書いてある本。。 洋書でもいいです。近くの大本屋4件くらいまわってもなかったもんで・・ もしあれば、Amazonで買おうと思います。
342 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 15:50:48 ] またお前か
343 名前:デフォルトの名無しさん [2009/05/01(金) 21:04:33 ] すみません。IEの現在表示してるアドレスを取得する事って可能ですか? vcだけじゃ無理で、IEのSDKとかつかうんですかね・・
344 名前:343 [2009/05/01(金) 21:10:14 ] 事故解決しました。ググッたら色々でてきました。うへぇ〜。
345 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 21:14:16 ] この辺見ればできると思う www.nitoyon.com/vc/tips/ie_component.htm
346 名前:344 mailto:sage [2009/05/01(金) 21:18:50 ] >>345 どうもありがとうございます><;そこは詳しく載ってますね><; 私がググって見つけたページよりも実践的なサンプルが載っています。 連休中にタスクバーに常駐するお気に入り管理ツールを作ろうと思いまして・・ ブラウザのお気に入り機能って使いにくいですよね><;
347 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 06:20:13 ] StretchDIBitsとStretchBltの違いってなんですか? メモリ上がなんとかとなってるんですが意味がわかりません
348 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 08:43:10 ] >>347 StretchBlt: コピー元がHDC StretchDIBits: コピー元がBITMAPINFO/void*
349 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 17:48:53 ] main()関数のソースファイルが、同じソリューションかつプロジェクト内の他の ソースファイルにリンクできてないようで、ビルドするとリンクエラーが出ます。 error LNK 2001:外部シンボル 〜〜〜〜 は未解決です。 fatal error LINK1120: 外部参照4が未解決です。 のメッセージが出ます。 正しくリンクできるように設定するにはどうするんでしょうか。 Visual Studio .NET 2003 Professional 作成したプロジェクトは Visual C++ プロジェクトの「コンソールアプリケーション(.NET)」です。
350 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 18:33:04 ] インクルードしてないとかいう落ちだろ
351 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 18:45:13 ] CLRならC++のみだし、、、Cリンケージの問題でもなさそうか? 参照設定してないとかいう落ちとか
352 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:14:17 ] 原因わかった。ファイルは実はリンクできてた。 vectorコンテナを使ってる箇所を直す必要がある。 前に単一のソースに書いてBorland C++ Compilerで正常にコンパイル成功 していたプログラムを拡張しようとしたが、他のファイルで定義したクラスの 変数宣言は問題無いが、 std::vector<class fileman> fman_databox1; で定義して fsize1 = fman_databox1[n1].getfsize(); のように、vectorコンテナに添え字演算子で要素を取り出したものから、 メンバー関数を使おうとする箇所があるとエラーが出るということがわかった。
353 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:19:11 ] fatal error 実はリンクできてた 直す必要がある 分裂症ですか?
354 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:44:27 ] 一度ポインターにアドレスを代入してからメンバー関数を呼ぶように変更しよう としたけど、そうやってもエラーになった。 IDEはちゃんとリスト選択が出てくるのに。 inlineを取ればリンクできた。 そんなことがあるのか、何でインライン関数にすればエラーになるんだ。
355 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 20:02:26 ] インライン関数の展開って、コンパイル時に行われるからじゃないのか?
356 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:31:41 ] テンプレートクラスで静的メンバ変数を使おうとすると、 >LNK2019: 未解決の外部シンボル のエラーが出るのですが、どういった風に解決するのが一番でしょうか。
357 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:36:02 ] テンプレートなのに何で静的なんだよ
358 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:43:27 ] クラスごとにインスタンス数を数えたいのですが、 CountingObject : BasicCounting< CountingObject >と継承して、 BasicCountingのコンストラクタ、デストラクタでBasicCounting::countの値を増減しようと考えています。 テンプレートクラスで静的メンバ変数というのは、おかしいのですか?
359 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:48:51 ] そんなくだらない話はC++スレでやれ
360 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 11:42:04 ] >>356 クラステンプレートでないクラスの場合と同じで、変数の定義が必要。 class Foo { static int Hoge; }; int Foo::Hoge; tempate<typename T> class Bar { static int Hoge; }; template<typename T> int Bar<T>::Hoge; なお、クラステンプレートの静的変数は実体化させる必要があるので、 クラステンプレートのメンバ関数などと同様、通常はヘッダに定義を書く。
361 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:56:35 ] コンパイル時にエラーがあるとVSでエラー箇所教えてくれるしエラーメッセージも出るからアサートって書く必要ないですよね
362 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:59:30 ] 構文エラー等ならコンパイル時にエラーになるが、0 division 等はエラーにならない。 よってアサートは必要。
363 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:11:44 ] コンパイルエラーが出るうちはデバッグは楽だ。 実行時エラーになるととたんに対処が面倒になる。
364 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:34:07 ] コンパイルエラーとアサートと同次元で語るやつが理解できない。
365 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:43:28 ] >>364 まあまあ、ココは初心者スレだからいいじゃないか。
366 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 19:16:07 ] 実行時エラーと言いたかったんじゃないかなあ
367 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 20:03:49 ] それは違くね?
368 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 08:46:18 ] そうか? アサートとコンパイルエラーが同レベルで出てくるなんて 初心者だってありえないだろ
369 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 08:55:35 ] >>368 「ありえない」か?確率0%か? いや、初心者ならそのくらいありえるのではないか? およそ、初心者に「ありえない」ことは「ありえない」んでは?
370 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 10:04:21 ] アサートという言葉を知ってるのにか? 当人に聞いてみなけりゃ分からないけど、 ありえないと言えるくらい見当違いなことだよ
371 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 10:09:22 ] たぶん釣りじゃないのかw
372 名前:デフォルトの名無しさん [2009/05/05(火) 20:20:07 ] MFCでなんか面白いもの作りたいんだけど、思いつかない。 サンプルが載ってるページってありますか?自力で作るのもいいんだけど・・お代が無いし。
373 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 21:02:58 ] じゃ、タスクマネージャでも作ってみろ
374 名前:デフォルトの名無しさん [2009/05/05(火) 22:54:51 ] >>373 タスクバーに入れる方法がわからないから、却下でござる。
375 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:07:59 ] C言語始めようかと思って先ほどマイクロソフトのVisual C++ Express Editionってのをダウンロードしました 試しに参考書に載ってる簡単な足し算を表示するプログラムを書き写してみたんですが、 どうやってその書いたプログラムが動くのかが分かりません・・・
376 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:23:29 ] F6でコンパイル F5で実行、だが・・・多分出てすぐ消ええる。 VCの入門本買って読むべし
377 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:38:49 ] コンパイルで調べたら↓ヒットしました msdn.microsoft.com/ja-jp/library/bb384838.aspx 手順の通りにやってみましたがやっぱりすぐ消えますね 分かるように勉強してきます ありがとうございました
378 名前:375 mailto:sage [2009/05/05(火) 23:55:05 ] [新しいプロジェクト]のとこから色々弄ったら実行出来ました! 二桁の数字が表示されただけでしたが色々作れそうで楽しいっすね スレ汚し失礼しました
379 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:28:51 ] 以下の2行をmainの最後に入れれば、実行後終了前にリーターンキー入力を待つ printf("リターン入力で終了\n"); getchar();
380 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:38:50 ] >>377 プログラムはあなたの思ったようには動かなくても プログラムはあなたの書いたようには動く という格言がある。 これから先何度も何度も味わい続ける事になるだろうが、 これを忘れないようにね。 んでオススメは、Windows環境限定で良ければ #include <conio.h> でgetch();を使うのが良いと思うよ。いかなるキーでも何か入力すれば終了するようになる。 #include <conio.h> int main() { //処理 getch(); return 0; }
381 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 12:09:16 ] >>377 main()の最後の } にブレイクポイントを置けばいいよ。
382 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 12:17:10 ] Ctrl+F5でいいよ
383 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:14:48 ] VSとかでプログラムを作らないとデバッグって出来ないのですか コマンドラインでそれ用のオプションつけてコンパイルしてあれこれして デバッガー使うことは出来ますか?
384 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:28:01 ] デバッグ自体はコンパイル方法関係ないよ Cじゃなくてもできるし
385 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:28:12 ] ↑追加で実行ファイル開いたら問題なく出来ました ごめんなさい
386 名前:デフォルトの名無しさん [2009/05/07(木) 00:03:37 ] 文字リテラルと文字列リテラルが分かれていますが、 どう言ったメリットデメリットがあるんでしょうか? 一文字の文字列を""で囲んでも何の問題もないような気がしますが メモリの使用量が少ないんでしょうか
387 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:13:28 ] C言語からやり直せw
388 名前:デフォルトの名無しさん [2009/05/07(木) 00:20:01 ] すいません、今日C++始めたばっかりなんです VBは型ぐらいなら分かるんですがどうしてもふに落ちないもので
389 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:32:58 ] 自分もC始めたばっかりなんだけど char string[] = "ABCDE"; char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' }; 文字列は文字の配列だよって理解でいいの?
390 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:56:44 ] >文字列は文字の配列 読んで字の如し
391 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 02:41:38 ] >>388 VBやったことあるなら、AscとChr$は知っているだろ。 めちゃくちゃ乱暴に言うと文字リテラル'A'は、Asc("A")と同じ。 Ascの戻り値とChr$の引数、VBではLongとかで扱っていただろうが、 Cではcharという独立した型が与えられていると思えばいい。
392 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:22:06 ] n文字型があれば1文字型は不要ではという質問だと思うが、 文字の比較や判定の基本はバイト単位だな 32bitや64bit単位でできないこともないけど
393 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:38:31 ] ああunicodeもあるから 文字単位で比較か
394 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:54:01 ] >>386 文字と文字列の理解が怪しいな。 そもそもポインタとか分かってる? いきなりC++にいくのは自殺級に難しいと思うからC言語から学んだ方が良いと思うよ。
395 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:57:40 ] >>389 > 文字列は文字の配列だよって理解でいいの? いいんじゃない。文字列は文字型変数の配列ね。 あと実際に文字列は扱えないからその先頭アドレスで扱うことになるってことを理解してくれ。 例えば "ABCDE"=="ABCDE" がtrueになるかどうかは処理系依存。 左の"ABCDE"と右の"ABCDE"が別に確保されていればアドレスが異なるから これはfalseだが、コンパイル時にコンパイラが気付いてメモリ節約のために 同一文字列をマージすればtrueとなる。 > char string[] = "ABCDE"; > char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' }; これは全く同じになりますよ。
396 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:27:08 ] で、結局メリットデメリット誰も言えないわけで
397 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:36:05 ] >>396 は?頭おかしいの?
398 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:44:03 ] データ型が違うという事実があるだけで、メリットもデメリットもない メリットは使うときがくれば分かるとしか言いようがないな 使わない人にとっては面倒なだけと言えばデメリットにもなるだろうが、それは何にしてもそうだろう
399 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:10:36 ] これだからVB厨はコンピュータのこと何もわかってないと 言われるんだよ Cやったあとはマイコンもやれよ で電子回路やってFPGAもやれ そこでやっとプログラマといえる
400 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:34:58 ] まぁ、いいんじゃないの一つずつ覚えていけば VBは直感でも何となくできるし、プログラマへの足がかりぐらいにはなってると思うよ 偉そうだったらぶっ飛ばしたなくるけどw
401 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:37:26 ] >>399 しかたないさ、何てったってvisualかつbasicだもんなw そりゃしょーがない
402 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:42:49 ] 別にVBでもいいじゃん。 ただし >>396 > で、結局メリットデメリット誰も言えないわけで 全く見当違いな質問に対して答えないだけで 「言えない」発言をする低能を除く!
403 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:44:30 ] そろそろソフトウェアとハードウェアを一緒に考えてしまってるプログラマが えらそうにしている風習を改めないと。
404 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:02:35 ] 一方しかわからないやつに偉そうにされるのはもっと嫌だw
405 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:55:25 ] 同じプロジェクトのソースをいろいろなビルド構成や複数バージョンのVCで ビルドしているのですが、ビルド構成やVCのバージョンごとに、 リソースのFILEVERSIONやPRODUCTVERSIONの右端の数字を 違う値にしたいと思っています(どういう構成でビルドされたものかを示すため)。 ビルドするたびに手動で書き換えていると絶対に忘れてしまうことがあるので、 ビルド時にこの数字を自動で書き換えたいのですが、 VC6、VC2005、VC2008に共通の方法はありますでしょうか?
406 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 21:59:44 ] それぞれの構成で 別々のコンパイラオプション /D "文字列" を定義する。あとはコード内で #ifdef "文字列"
407 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 22:06:43 ] MSC_VER見たいな定数がそれぞれ決まってたような気がするから プリプロセスでその値を見て文字列を選ぶ
408 名前:デフォルトの名無しさん [2009/05/07(木) 22:56:01 ] 数値にインクリメントは使えないのでしょうか cout<<2++; で3になると思いましたがエラー出ました
409 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:16:49 ] >>408 C言語の基礎だぞ。 ++は変数に対してのみ使える演算子です。 しかも百歩譲ってインクリメントできたとしても cout<<2++; では結局2が出力されるだけ。 その上言いたいことは >エラー出ました エラーメッセージを100回読め。
410 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:47:24 ] マネージ拡張C++する奴はおらんのか。 VB.NETでやるならまだしも、C#みたいな中途半端言語で.NETやってるのか。 C#でやるよりも、C++の標準ライブラリを生かせていいと思わないか。
411 名前:デフォルトの名無しさん [2009/05/07(木) 23:50:37 ] じゃあ、マネージ拡張を勉強するので、本を贈ってください。
412 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 23:54:54 ] マネージ拡張C++はある意味中途半端なんよ。 C#かC++のように極端のほうがいい。 C#でどうしてもスピードが足りないときのみか、C++資産使うときだけ。マネC++
413 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 01:45:13 ] VC2008EEのデバッガを使ってデバッグ中、 値が見れない(デバッグのウィンドウに表示されない)変数があるんですけど、なぜなんでしょう? その変数はforの{}内で宣言した変数なんですけど関係ありますかね?
414 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 02:03:01 ] 停止している場所がforの外なら見れない。中なら見れる。
415 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 02:34:17 ] >>414 forの中なのに見れませんでした。 何か別に原因があるのかなぁ・・・。
416 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 11:43:10 ] 再現するソースを見せろ
417 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 16:02:15 ] 最適化無効にしてないとか?
418 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:04:31 ] >>415 ウォッチウィンドウにぶち込め
419 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:05:25 ] 多分みるところ間違ってるのとたまたま表示されてないだけだろ(よくあるよねw)
420 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:36:57 ] 俺はReleaseデバッグの時はよくある
421 名前:413 mailto:sage [2009/05/09(土) 23:00:59 ] 遅くなりましたがレスありがとうございます。 >>416 全部のせるのは長くなりそうなので・・・。 >>417 最適化は有効のままでした。 >>418 シンボルが見つかりませんってエラーが出ます。 >>419 見たのは自動変数とローカルです。 >>420 Releaseでビルドしたものをデバッグしてました。 Debugでビルドにしたらちゃんと変数が表示されました。 デバッガ使う時はDebugでビルドしないとだめでしたか。
422 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:10:17 ] >>421 >デバッガ使う時はDebugでビルドしないとだめでしたか そりゃデバッグモードでしかデバッガは使えないだろw >>420 ESP乙
423 名前:デフォルトの名無しさん [2009/05/10(日) 12:20:11 ] VC2008 XP #include <stdio.h> int factn(int n); int main() { int n,fact; for (n = 0; n <= 10; n++) { fact = factn(n); printf("d%! = %d\n",n,fact); } while ( true ) { ; } } int factn(int n) { int i,fact; fact = 1; for (i = 1; i <= n; i++) { fact = fact * i; } return fact; } 関数を使って0〜10までの階乗がしたいんですが 表示がd!=1 d!=2…ってなってしまいます。 どこがおかしいんでしょうか?
424 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:25:43 ] >>423 d% → %d
425 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:31:49 ] あああぁぁorz ありがとうございます
426 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:50:11 ] nulデータを使うとエラーが出てしまうのですが、変数は絶対に初期化しなければなりませんか?. VBみたいにnull=0又は0文字の文字列という扱いには出来ないものでしょうか
427 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:56:39 ] windef.h で NULL = 0 と定義されているが、このことと 「変数は絶対に初期化しなければなりませんか?.」は 直接関係しない。
428 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:57:55 ] ありがとうございます!!
429 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:58:50 ] どういうわけか、最近のC関連の説明とか本ってオペランドの説明ばっかな。 オペランドを説明することが解説だと思ってるようだ。だから初心者にとっては わかりにくいんだよ。コンピュータの基本がわかってない奴が本を書くように なってるんじゃないのかって感じる。
430 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:01:34 ] 一理あるが、オペラント(あるいはオペレータ)がわからんと、先には進めない。
431 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:04:49 ] 初心者スレなんだからもう少し心を広く持った方が
432 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:14:08 ] >426 0文字の文字列を作るときはnulで初期化であってる
433 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:35:12 ] 配列のインデックスの最大値を取得するにはどうすればよいでしようか? ぐぐってもvbばっかり出てきます
434 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:39:08 ] sizeof()
435 名前:デフォルトの名無しさん [2009/05/10(日) 19:47:38 ] >>433 配列の名前をpenisとするとだな、 sizeof(penis);で取得できる。
436 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:53:48 ] >>435 penisは動的配列なんだな。 sizeof(penis)が一定値にならないぞ。
437 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 19:54:15 ] sizeof(penis) = 0 の場合もある
438 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:02:58 ] struct penis { int used; } myson; sizeof myson; って括弧なしでかけるんだな 最近知った。
439 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:03:43 ] >>437 いや実際には・・・ ・・・もう止めようw
440 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:07:29 ] どうusedどするのか詳しく
441 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:32:43 ] >>434 >>435 ありがとうございます、合計バイト数は出せました。 あとはデータ型に応じたバイト数で割ればインデックス最大値が出せるのですが、それも分かりません・・ 変数penisのデータ型はどうやって調べるんでしょうか
442 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:35:27 ] sizeof(penis) / sizeof(int); ?
443 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:39:21 ] >>442 int型は環境によってバイト数が変わると聞いたので・・ LBoundみたいな関数は無いものでしょうか それとも僕はよほど変なことをしているのでしょうか
444 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 20:57:21 ] >>443 環境によって変わるからsizeof(int)してるんだよ 変わらなかったら4とか決めうちでいいじゃん
445 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:02:00 ] >変数penisのデータ型はどうやって調べるんでしょうか 変数penisを宣言しているのは誰だ?
446 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:03:48 ] 何故、正体不明のデータを扱うのだろう?
447 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:06:04 ] sizeofとかあとで変更あったときに直しやすくするだけのことで その辺理解できない馬鹿だったら自分で固定で数決めとけ
448 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:08:38 ] >>444 成る程!!すいませんでした、気づいてませんでした
449 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:10:28 ] マンコ
450 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:35:25 ] デバックしたら自動的に保存されてしまうようですが、オフにすることってできますか
451 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:47:39 ] 何が保存されるんだ?
452 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:01:19 ] ソースコードだろ? 保存されたファイルを見てコンパイルするから無理じゃね? VC出身の俺からしたら保存されねぇほうが気持ち悪いけど 他の環境出身者には保存されるのは気持ち悪いもんなのかねw
453 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:06:09 ] ソースコードです 切ることは出来ないのですか、残念です ちなみにVB・VBA・HSP出身(というほどやってませんが)です
454 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:13:09 ] スクリプトじゃないんだからコンパイルしなきゃデバッグできんし、保存しなきゃコンパイルもできまい。
455 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:07:15 ] 土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに 成功した、ハンドル使わない方法でやっとだ。 そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText() のやりかた教えろや。
456 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:14:48 ] しごいて調べろっていうわけにはいんかだろうしなあああ >変数penisのデータ型はどうやって調べるんでしょうか
457 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:16:28 ] ハンドル使わないSendMessage()とか、SetWindowText()があるのか
458 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:19:22 ] >>457 それはないでしょう。 ですから、ハンドルの使いかた教えてくれって言ってる意味ととって くださってもいいです。すみませんです。
459 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:22:46 ] >>457 おおかたリソーススクリプトや(親のハンドル使うけど)SetDlgItemTextでも使ったんだろう。
460 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:24:28 ] そのとおりです。これだって本格的には、ハンドルを使うわけでしょ。 それがわからんから・・・↓こうなってるわけでして。 SetDlgItemText(IDC_STATIC1,"testest");
461 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:25:27 ] TCHAR szText[] = _T("文字列"); SetWindowText( hWnd, szText); SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
462 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:26:54 ] あ、忘れていた。つまり、455=458=460です
463 名前:455 mailto:sage [2009/05/12(火) 00:30:12 ] >>461 その場合、hWndは、どこで宣言し、どうやって代入してるわけですか?
464 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:51:42 ] ああ、そこからスタートか。 HWND hWnd = GetDlgItem( hDlg, IDC_STATIC1); hDlg はわかるよな。ダイアログプロシージャの第一引数だ。
465 名前:455 mailto:sage [2009/05/12(火) 01:11:47 ] >>464 その場合のhDlgは、当然にIDC_STATIC1が貼り付けられたダイアログのハンドル っていうことですね。その場合、以下の意味がよくわかんですね。 >「ダイアログプロシージャ」(これは、・・・・Dlg.cppって言う意味ですか?) >「第一引数」(これは意味がわからないです) (例えば、ワークスペース名が"Rocket"として、例でいくと小生の場合はvs6で、 MFC AppWizard でダイアログモードでワークスペースをを作成したんですが。 RockeDlg.cppが以下になってます。このどこで値が決まってますか? #include "stdafx.h" #include "Rocket.h" #include "RocketDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ class CAboutDlg : public CDialog { public: CAboutDlg(); // ダイアログ データ //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard は仮想関数のオーバーライドを生成します //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート //}}AFX_VIRTUAL ・・・・・もっと下ですか?
466 名前:455 mailto:sage [2009/05/12(火) 01:16:05 ] それとも、hDlgは、予約語っつーかシステムからの引数(定数)っていうことですか? ダイアログ内なら無宣言で、どこでも使える定数。
467 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:17:03 ] MFCなら先にそう言えよ。 MFCはウィンドウハンドルを意識しないでいいように作られているから、HWND型はあまり使わない。
468 名前:455 mailto:sage [2009/05/12(火) 01:22:23 ] >>467 でも、とにかくハンドルを使わないと、別のプロシージャからは、 別イのダイアログに貼り付けられたコントロールは外部参照できない わけでしょ。↓のどれを使おうが。 SetWindowText( hWnd, szText); SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
469 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:25:17 ] 何をやりたいのかを述べよ。 「別イのダイアログ」なんつうのが今ごろでてくると、何をやりたいのかわからん
470 名前:455 mailto:sage [2009/05/12(火) 01:27:02 ] >>467 >ウィンドウハンドルを意識しないでいいように なら、SetDlgItemText(IDC_STATIC1,"testest"); と同じく、同一ダイアログプロシージャ内なら、SetWindowText()やSendMessage() も、ハンドル引数(hWnd)は省略していいってことですか?
471 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:31:15 ] MFCなら CWnd::SendMessage()、CWnd::SetWindowText() を使う。 両者のパラメータにウィンドウハンドルはない。
472 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:35:24 ] CWnd* pStatic = GetDlgItem( IDC_STATIC1); pStatic->SetWindowText( _T("文字列"));
473 名前:455 mailto:sage [2009/05/12(火) 01:36:24 ] >>469 つまり、別のフォームで、RoketDlg.cppで、設定したり計算したデータを、終了前に hddに保存する場合、別なフォームから参照して保存したり、RoketDlg.cppで計算を 始める前に、RoketDlg.cppのプログラム計算を開始する前に、hddに保存したファイルから データを読んで別なダイアログでリストアップして、一覧の中から選んでRoketDlg.cppの 各コントロールのテキスト(キャプション)に値を設定する。それを読みながら計算 させる、とかです。
474 名前:455 mailto:sage [2009/05/12(火) 01:54:36 ] >>469 つまり↓を、vcに移植したいわけです。 MV魔改.bmp freedeai.com/up/index.html
475 名前:455 mailto:sage [2009/05/12(火) 01:55:57 ] vb版は、数日中に軍事板でリリースの予定です。
476 名前:455 mailto:sage [2009/05/12(火) 02:01:50 ] 日本だって、造る気になったら、ICBMなんか、H2やMVを魔改すればすぐ造れるんだ。 って北の将軍様や工作員に見せて、「だから日本を脅かしたってビタ一文出さない。 日本を恐喝したって金にならない。早く被拉致者を返せ。」って教えるためです。
477 名前:455 mailto:sage [2009/05/12(火) 02:19:42 ] >>471 >>472 ありがとうございます。
478 名前:455 mailto:sage [2009/05/12(火) 02:35:46 ] >>471 その場合、CWndは、どこで、値が決まってるんですか? >>471 と>>472 の連携がわからないです。 ↓これは記法ではないっていうことですか? CWnd::SetWindowText() つまり、上の記述の意味は、実際の記法は、 「Cwnd:」は、「CWnd* pStatic」の意味で、 「:SetWindowText(_T("文字列"));」は「pStatic->SetWindowText( _T("文字列"));」 である という意味ですか?
479 名前:455 mailto:sage [2009/05/12(火) 02:41:06 ] ↓これはあくまでも、同一ダイアログ内での話ですよね? (IDC_STATIC1は、別なフォームにもあるかもしれないわけで) CWnd* pStatic = GetDlgItem( IDC_STATIC1);
480 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 07:18:51 ] DirectXを使わないでディスプレイの垂直同期?にあわせて描画する方法ってありますか?
481 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:39:40 ] 一度VC2008++で作成したソリューションファイルは、2005では使えませんか? 家にあるのが2005しかないもので困ってます…
482 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 08:55:59 ] >>455 あなたはクラスを使ったことがありますか?
483 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 09:49:30 ] ソリューションファイルはテキストだから 適当なエディタで開いてバージョンあたり 書き換えれば2005でも開ける
484 名前:455 mailto:sage [2009/05/12(火) 11:05:05 ] 結局、VC++では、あるプロシージャで使われるオブジェクト(スタティックコントロールにせよ エディトコントロールにせよ)、そのハンドルの値というのは、その、プロシージャに 行った時(そのプロシージャが実行されたとき)しか取得(代入)できないということですか? (コンパイル時に、実行ファイルが各「ハンドル」を自動的に管理する変数としてバックグランド で管理、保有するようにはなってない、と。) だから、他のプロシージャから、他のプロシージャで定義、生成されたコントロールとかを 外部参照したい場合は、前もって、そのプロシージャに行った(実行された)時点で、 プロシージャ間で共有できる変数(パラメーター用の変数に)代入しておいて 、プロシージャ間でパラメータとして渡せ、と。 結局、ダイアログにせよ、メモリにロード(画面に出)されてなきゃ、その中のコントロールは 参照できっこないわけだから。 画面に出てるとか、とにかくその外部参照される他のプロシージャ部がメモリにロードされてる うちは、ディスティネーション(アドレス、ポインタ)としての「定数」であって「変数」では ないのだからパラメータになりうるから、プログラマー自身が渡せと。
485 名前:455 mailto:sage [2009/05/12(火) 11:07:54 ] >>482 「クラス」の意味もよくわからないわけで。「クラスとは、変数の次元でのツリー構造の一部」 という概念ですね。自分としては。
486 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:18:37 ] >484 結局、VC++では? そんな意味不明なまとめだったら 日記かブログにでも書いとけ
487 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:24:47 ] もしかしてウインドウのハンドルのことを言ってるのなら apiだからVC++は関係ない。
488 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:27:09 ] >>455 そのうちわかるからとりあえず汚くても動くように書いてみな 後で俺ってなんてVB厨だったんだと思うだろうけど仕方ないよ。
489 名前:455 mailto:sage [2009/05/12(火) 11:41:54 ] >>486 「まとめ」じゃなくハンドルを意識する場合として出発点の概念(心がまえ)としてですよ。 これだから、・・・
490 名前:455 mailto:sage [2009/05/12(火) 11:43:34 ] >>488 いや別にVBなんて、北がミサイル撃ったのでここ一月いじっただけで。
491 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:47:09 ] うぜー
492 名前:455 mailto:sage [2009/05/12(火) 11:51:16 ] Cで、ずいぶんと長いこと今でもやってる女房(独身時代はある大手建設会社のシステムで 「PLワン」とかやってたって言ってます。)女房から、「そういうソフト、どうしても造りたい っていうならVB6でつくったほうが楽ですよ。私もVC++はよくわからない。」って 言われて造ったんであって・・・
493 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:54:57 ] VB6でつくったほうが楽だよって言われたのになんでVCで作ってんの? C++をやってればわかるのにCやってたってすぐにはわからないよ。
494 名前:455 mailto:sage [2009/05/12(火) 11:56:13 ] >>487 OSファンクションだからっていっても、ファンクションコールの仕方、記法は、 言語別でしょ。MASMとVC++のファンクシションコールの仕方は同じですか?
495 名前:455 mailto:sage [2009/05/12(火) 11:58:52 ] >>493 スタックが怖くなってきたから。 あと、SLEEP使うと、途中停止できないから。
496 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 11:59:30 ] そのへんはMFCがラップしてるんだって何度言えばいいんだ
497 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:00:37 ] >>495 だったら.net使えばー
498 名前:455 mailto:sage [2009/05/12(火) 12:07:52 ] >> NET使うとVBでもスタック拡大できるわけ?
499 名前:455 mailto:sage [2009/05/12(火) 12:09:33 ] VB.NETでスタック拡大できるなんて初耳だな。
500 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:09:59 ] できる
501 名前:455 mailto:sage [2009/05/12(火) 12:10:17 ] どうやるの?
502 名前:455 mailto:sage [2009/05/12(火) 12:13:36 ] ヘルプ、とかネット検索で、スタック、STACKで、何度やっても、 VBについてSTACKでヒットしたことは一度もないな、
503 名前:455 mailto:sage [2009/05/12(火) 12:16:47 ] いま、VBのほうでは、↓つかってるけど、これだってVC++なら記法は違うでしょ。 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Const TOOLTIPS_CLASS = "tooltips_class32"
504 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:16:49 ] スタックってなんだよ
505 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:20:07 ] >503 意味的にまったく同じで何も違いがない
506 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:22:34 ] EditBinで書きかえるかカスタム定数で
507 名前:455 mailto:sage [2009/05/12(火) 12:30:17 ] >>505 中身はそうださ。OSが同じなんだから。 だけどプログラミング(言語としての言葉使い)の実践としては違うでしょ? っていうことです。 意図する中身が同じだって、言語が違えば話かたは違うのと同じことでね。 例えば、日本で「オリーブ」でも、米語じゃ「あらぶ」なわけで。 中身は同じでも米国人に「オリーブ」って言っても通じない。 日本人に「あらぶ」っていうと「オリーブ」じゃなくアラブ(の国) って言う意味にとられる。(笑
508 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:33:55 ] まずは入門書なり読めよw
509 名前:455 mailto:sage [2009/05/12(火) 12:35:21 ] >>506 それ、VB.NETの何版から?
510 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:36:57 ] 何も違わないという認識があれば言語が変ってもすぐに使いこなせる。
511 名前:455 mailto:sage [2009/05/12(火) 12:38:38 ] >>508 VC++の入門書、4冊あるけど、どれにもハンドルの変数の代入の仕方、 を系統的には書いてない。ほとんど説明してない。索引にも載ってない。
512 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:41:33 ] じゃあVC++の前に生のWindowsプログラミングを入門しろ
513 名前:455 mailto:sage [2009/05/12(火) 12:47:26 ] いや、VBでSTACKが拡大できるなら、何も、無理して、こめんどうなVC++でGUIする 必要はない。計算はC(.DLL)でやって、VBに渡せばいいだけで。若干は、DLLから 直接的にVBのLABELのキャプションに書きこむくらいはしなきゃならないだろうけど。 画面いじるのは、VBのほうがぜんぜん楽でしょ。その場合は開発時間はずいぶん短く なるよ。 ランタイムシステムがどうのこうのって嫌がらなければ・・・、だけど。
514 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:50:00 ] どんな画面かしらんがダイアログベースならVBもVCも たいして変わらんけどな
515 名前:455 mailto:sage [2009/05/12(火) 12:54:13 ] そういうことか。WINDOWS3.1時代あたりのMS-VCの本を読んでないと、 ハンドルの理解は難しいってこと? VS4.0の本はマニュアルまで女房は、廃棄しちまったらしい。
516 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 12:58:31 ] まあ www7.plala.or.jp/keny01/windows/ とかさらっと読めばわかるっしょ でC++もわかってればMFCもわかる。 だから>>455 が何がわからないのか一般人にはわからない。
517 名前:455 mailto:sage [2009/05/12(火) 13:04:05 ] >>516 どこにハンドルの型宣言、値の代入の仕方(オペランド)、その値の効力の 範囲が説明してあるの? 文法(記法)だけなら「解説書」は不要だよ。MSDNでいいわけだから。
518 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:06:12 ] そんなのヘッダーファイル見ればわかるだろ
519 名前:455 mailto:sage [2009/05/12(火) 13:07:30 ] たしかに、VC++の本にはハンドルの説明は系統的にはまったく書いてない。 ハンドルの文法は、ウィンドウができたことによるものだから、その基本は 当時の本を読まないと、ダメかもしれん。 女房も当時はUNIXをやってたから、だからVC++は弱いんだわ。
520 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:07:54 ] ハンドルの型宣言にこだわる理由がわからん。 MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。
521 名前:455 mailto:sage [2009/05/12(火) 13:11:38 ] あいつは、学校ではFORTRANで、会社のシステム部になってからは、 PLIだったし、それ以後はUNIXで育ってるからな。
522 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:13:40 ] まあUNIXは少ない知識でまわせるからな
523 名前:455 mailto:sage [2009/05/12(火) 13:15:58 ] >>520 >ハンドルの型宣言にこだわる理由がわからん。 >MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。 何度も言ってるが、値の代入の仕方とか、パラメーターとしての扱いかた がわかりにくいていうのよ。 「型宣言」といったのは「今の解説書は系統的(網羅的)には説明してない。」 という面で言ってる。
524 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:18:47 ] だから何がわからないのかわからないの
525 名前:455 mailto:sage [2009/05/12(火) 13:20:03 ] >>520 だって、プログラムは、一字間違っても、コンパイルできないわけでね。 初心者の場合は、文法上の必要な各要素について説明が網羅的な説明でない 場合、省略した要素があれば、省略されたとこは理解できない。 理解できない要素はネックとなって、それ以後は先に進まない。
526 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:23:05 ] 偉そうに理解できないと言われてもねw
527 名前:455 mailto:sage [2009/05/12(火) 13:23:30 ] >>524 だからまず、>>471 と、>>472 の関係。 それだけではないが、外はまずこれがわかってから
528 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:23:56 ] MFCなら値を代入しなくてもいいし、パラメータにウィンドウハンドルは存在しない。 すべては「オブジェクト」単位で管理する。 Aというダイアログのオブジェクトを DlgA、BというダイアログのオブジェクトをDlgBとすれば、 ダイアログBにある IDC_STATIC1 は、DlgB.GetDlgItem( IDC_STATIC1) でアクセスできる。 テキストを変更したいなら、DlgB.GetDlgItem( IDC_STATIC1)->SetWindowText( _T("テキスト")); だ。 DlgAのメンバ変数としてDlgBのポインタを保持しておけば、DlgAからDlgBにはすぐにアクセスできる。 上記の文中にでてくる用語の意味が不明なら、ここで質問する前にC++について勉強しろ。
529 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:24:20 ] C/C++の入門書でファイルハンドルの使い方でも勉強すれば 一般的なハンドルの概念が理解できると思う。
530 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:28:10 ] こんなウザいのをよく根気強く相手するなぁ
531 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:34:25 ] もう女房はいいからwww
532 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:37:10 ] >>530 暇なんだよね。不景気でw
533 名前:455 mailto:sage [2009/05/12(火) 13:37:46 ] >>528 だって、>>471 は、MFCなんだろ? ()の中であろうが外であろうが、CWnd::って、c++として記法だろうが、 とにくハンドルみたいなもんじゃないの? ハンドルとは呼ばないかもしれんが。 1,で、とにかく、Cwndの実数はどこでどうやって取得するのか? 2,またそのCWndの使いかた(値が代入された後のCWnd)は、どう使用 すればいいのか。 つまり>>471 のような記述の仕方なのかどうか? 単に「Cwnd::*****」(>>471 )でいいのか? ってことだよ。>>472 では「CWnd::*****」ではないわけだから。 ま、そりゃc++の記法だろうけどさ。 >>472 はc++でなかったら、どう記述する?
534 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:38:40 ] PL/Iだろ
535 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:39:57 ] あれ?やっぱりクラスすらわかってないんじゃね?
536 名前:455 mailto:sage [2009/05/12(火) 13:41:07 ] >>534 文字として書けばそうらしいな。俺は夫婦の会話用語で言ってただけ。
537 名前:455 mailto:sage [2009/05/12(火) 13:49:42 ] >>535 CWndが「クラス」っていうことはわかったよ。だけど 何にせよ、ディスティネーション(例。コントロールの固有アドレスを示すもの。)値 がなきゃ、他のプロシージャからは、目的のコントロールに、exeファイルは到達できない わけでしょ。 だから、そのハンドル(つまりはオフセット・アドレスポインタ)の値の取得(代入) の仕方と、使い方を教えろって言ってるんだよ。
538 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:52:44 ] だからここで質問する前にC++を勉強しろって言ってるんだよ。
539 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 13:54:42 ] だめだ。いくらなんでもここでC++教えるのは無理だw
540 名前:455 mailto:sage [2009/05/12(火) 13:58:00 ] vc++では、IDはワークスペース(プロジェクト)としてはは固有ではないから、 (別なダイアログのコントロールが、同じ”IDC_STATIC1"というID名を持つことはありうるから) ↓これは、やはりスタティックコントロールを持ってる外部プロシージャ(ダイアログ2)から ↓ダイアログ1のIDC_STATIC1を参照したい場合は意味のない記述でしょ。 CWnd* pStatic = GetDlgItem( IDC_STATIC1); >>472
541 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:00:16 ] 中途半端な知識で抽象的で意味不明な用語ならべて質問するから 本題からどんどん遠ざかってるような気がする。
542 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:02:47 ] そのGetDlgItemはAPIじゃなくてCWndのメソッドのほうのGetDlgItem
543 名前:455 mailto:sage [2009/05/12(火) 14:04:27 ] なんだって? ますますわかんなくなってきた。
544 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:11:37 ] ここ無駄な時間をすごさずVB.NETに行ったほうがいいのでは?
545 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:14:55 ] 開発環境 やりたいこと これだけ書いて質問すればすぐにまともな回答もらえたかもな
546 名前:455 mailto:sage [2009/05/12(火) 14:15:10 ] >MFCは・・・パラメータにウィンドウハンドルは存在しない。 >>528 ()の中でのハンドルの指定はない、ていうことは、うすうすは、わかったような 気がする。うすうすだけど。 では、外部プロシージャから(例えば、ダイアログ2に貼ってあるBUTTONが押されたとき、 ダイアログ1のスタティックコントロールを参照したい場合。 ダイアログ2にもスタティックコントロールは貼ってあって、両方が同じID名の場合。
547 名前:455 mailto:sage [2009/05/12(火) 14:17:25 ] 結局、>>478と>>479の質問には誰も答えてないんだよな。
548 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:20:06 ] その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。 「C++を勉強しろ」というのが回答。
549 名前:455 mailto:sage [2009/05/12(火) 14:22:32 ] ハンドルはC++関係ないでしょ
550 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:23:15 ] 外部プロシージャ ダイアログ1 ダイアログ2 唐突にこんなものが出てきたって誰も関係が理解できない 外人 かばん1 かばん2 これで関係理解できるか?
551 名前:455 mailto:sage [2009/05/12(火) 14:25:52 ] ↓俺には「外部参照の仕方はわかりません。単一ダイアログの遊びのソフトしか造ったことありませんが、 ↓一流プログラマーのように威張りたいです。」ってしか聞こえない。 548 :デフォルトの名無しさん:2009/05/12(火) 14:20:06 その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。 「C++を勉強しろ」というのが回答。
552 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:27:22 ] じゃ、何を言ってもムダだな
553 名前:455 mailto:sage [2009/05/12(火) 14:36:17 ] 「ダイアログ」でなく「ダイアログボックス」って書けってか? 「プロシージャ」という言葉は許すけど、「外部」がつくとわからん、っていうのは 「++」以前、「C」言語の基本がわかってないというか、それ以前、プログラムの基本 がわかってないとしか言いようがないけどな。 「スタックって何?」とかって聞いてる人が先生ぶってるのと同じでさ。 >hDlg はわかるよな。ダイアログプロシージャの第一引数だ。>>464 >504 :デフォルトの名無しさん:2009/05/12(火) 12:16:49 >スタックってなんだよ
554 名前:455 mailto:sage [2009/05/12(火) 14:38:00 ] 「スタック」「外部参照」の言葉の意味が理解できないのが「C(++)の先生」やってるわけ?
555 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:39:44 ] GetDlgItem( IDC_STATIC1) は this->GetDlgItem( IDC_STATIC1) と同じ
556 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:41:28 ] VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら editbin で /STACKオプションつければいい
557 名前:455 mailto:sage [2009/05/12(火) 14:44:46 ] >>555 さんくす
558 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:46:02 ] >>546 ダイアログ1にスタティックコントロールを公開するメソッドを作る ダイアログ2からはダイアログ1->そのメソッド() という形でアクセスする
559 名前:455 mailto:sage [2009/05/12(火) 14:46:52 ] ↓これは間違いだと思うよ。最近のVB2005とか2008わどうかわからないけどさ。 >VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら >editbin で /STACKオプションつければいい
560 名前:455 mailto:sage [2009/05/12(火) 14:48:58 ] VCは、当初からコンパイル時のオプションとして当初からあったけどね。
561 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:58:06 ] dumpbin /headersしてみりゃわかる
562 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:58:57 ] 間違いってやってみたのか? editbin は使ったことあるのか?
563 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:01:41 ] ↓これを間違いだと言われても困るわな
564 名前:563 mailto:sage [2009/05/12(火) 15:02:38 ] すまそ、抜けた msdn.microsoft.com/ja-jp/library/35yc2tc3 (VS.80).aspx
565 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:02:50 ] AからBにアクセスしたい場合に外部じゃ全然説明になってないだろ AとBが全然関係ないんじゃアクセスしようがない。
566 名前:455 mailto:sage [2009/05/12(火) 15:03:31 ] ++とハンドルの定義やハンドルの動作は関係ないでしょ。 ++は記法だけの問題であって。 VBは、やっぱSTACK拡大できないと思うよ。2008でも、STACKをヘルプのキーワードに入れても ヒットしない、あるなら、こんな基本的で重要なこと抜くわけないもの。 試しにヘルプでやっても、スタックフレームっていうことは出てくるが、メモリ朗域の拡大ではない¥ スタック怖かったから、2008に期待をかけてダウンロードして調べてみたが、 ↓のVB2008のヘルプで、"STACK"でヒットしたのは「実行中」の「検査」の話でね。 ↓そもそも実行中にスタックメモリ領域(コード領域も意味する)の大きさ変えれるわけないんだから(笑 スタック フレームの検査のサンプル このサンプルでは、任意のポイントでの呼び出し履歴の情報を、実行中のプログラムのコード内から取得する方法を説明します。呼び出し履歴を使用すると、現在のプロシージャに至るまでにアプリケーションが実行したプロシージャの順番を確認できます。
567 名前:455 mailto:sage [2009/05/12(火) 15:07:45 ] >>563 Cは「当初>>560 」からあったけど、マイクロソフトのVBはないって言ってるんだよ。 そのMSDNに書いてあるのは、CとかMASMの話だよ。
568 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:09:06 ] だから外部という認識だからアクセスできない 馬鹿だよな
569 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:09:55 ] こいつ人の言ったこと何も聞いてないのな。
570 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:11:58 ] スタックサイズはリンク時に決定される。 コンパイルは関係ない。 リンク後でもEXEのヘッダー書きかえればサイズは変更できる。 そのためのツールがeditbin
571 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:12:22 ] あれあれあれだよ あれってどれだよ
572 名前:455 mailto:sage [2009/05/12(火) 15:13:14 ] ↓「スタック」も理解できないおまえらは他人にいつも何を言ってるの? 569 :デフォルトの名無しさん:2009/05/12(火) 15:09:55 こいつ人の言ったこと何も聞いてないのな。 568 :デフォルトの名無しさん:2009/05/12(火) 15:09:06 だから外部という認識だからアクセスできない 馬鹿だよな
573 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:13:53 ] >571 これじゃないのがあれだろ 日本語も知らないのか?
574 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:16:00 ] 良いページ見つけた。 mail2.nara-edu.ac.jp/~asait/visual_cpp/intro_cpp.htm ここのダイアログベース読めばいいんじゃね?
575 名前:455 mailto:sage [2009/05/12(火) 15:16:11 ] ↓とにかく、VBではできない 570 :デフォルトの名無しさん:2009/05/12(火) 15:11:58 スタックサイズはリンク時に決定される。 コンパイルは関係ない。 リンク後でもEXEのヘッダー書きかえればサイズは変更できる。 そのためのツールがeditbin
576 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:20:54 ] で、結局この人はなにをやりたいの?
577 名前:455 mailto:sage [2009/05/12(火) 15:23:20 ] ↓>>568 と>>569 は、異なるダイアログボックス間で、別のダイログボックスにある、同じ名前のIDC_STATIC1を ↓参照できるって言ってるのと同じこと。C++とかなんとかの問題でなくプログラムの基本がわかってないと ↓思うけどね。 GetDlgItem( IDC_STATIC1)
578 名前:455 mailto:sage [2009/05/12(火) 15:24:53 ] 俺は、同じこと何度も答えてるよ。
579 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:29:51 ] >>455 の最初の質問を読んでみた。 一番の近道はMFCを使わないで CでWindowsプログラミングをすることだと思った。 多少記述は多くなるけど問題ないと思う。
580 名前:455 mailto:sage [2009/05/12(火) 15:31:22 ] ↓これはあくまでも、実行中のダイアログプロシージャ内で通用する話であって、 ↓別のダイアログプロシージャ(外部プロシージャ、つまり別のダイアログボックス) ↓のコントロ−ルを参照してることではないだろ。この言ってる意味がわからないかねえええ GetDlgItem( IDC_STATIC1)
581 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:34:04 ] 別のダイログだったらコントロールのIDが同じだって識別可能 使いまわすときにいちいち変えてたら面倒くさくてしょうがない。
582 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:39:32 ] 別のダイアログだろうがやることが同じなら 同じコードで実現できる。 というか同じでやった方がいい。
583 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:40:18 ] >>580 リソースファイルをテキストエディタで開いてみな
584 名前:455 mailto:sage [2009/05/12(火) 15:42:27 ] いくつも同じ名前(ID)のコントロールがある場合、実行ファイルはどうやって特定認識するの。 (通常はデフォルトの動作。つまり、カンレント(実行中)のプロシージャで動作するわけでしょ。) (じゃ別のダイログプロシージャ(別のダイアログボックス)につくられるコントロ−ルには、 どうやって参照するの?って聞いてるのよ。この質問がわからないのかねえええ) ↓はあくまでも実行中のダイアログプロシージャ(ダイアログボックス)が自分に貼られてる ↓コントロールのアドレスに関する値を渡すという関数でしょ。 GetDlgItem( IDC_STATIC1)
585 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:45:09 ] だから、>>528 の中盤に答が書いてあるだろ。
586 名前:455 mailto:sage [2009/05/12(火) 15:45:27 ] >>583 それで?
587 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:51:47 ] >>584 あー もう 考え方がCすぎるんだよ ダイアログにはクラスがひもづくでしょ ダイアログを表示するには そのクラスのインスタンスを作って表示するでしょ ってことはそのインスタンス内のIDC_STATIC1は一つでしょ だからダイアログのインスタンス->GetDlgItem()になるの!
588 名前:455 mailto:sage [2009/05/12(火) 15:54:52 ] 528? そうか。なんだ。すまん。 >>528 んじゃ、DlgBの値は、どこで、どうやって取得するわけ? 実際の記述は、取得したときにDlgBという変数を使ったら、 そのまま DlgB.GetDlgItem(IDC_STATIC1)→でいいわけ?
589 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 15:58:33 ] ダイアログB(DlgB)の実体を生成したときに、ダイアログA(DlgA)のメンバ変数(自分で定義)に値をぶちこむ。
590 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:01:36 ] やっぱりクラスという用語だけしってて中身を知らない感が ひしひしと伝わってくる。 Cだけ知ってれば他の言語は全部わかったも同然っていう 感じがする。
591 名前:455 mailto:sage [2009/05/12(火) 16:04:53 ] >>589 だから、その手法は、>>484 で聞いてたんだよな。俺。 DlgB.を先走って「ハンドル」って言ったのは間違いだったかもしれんが。 でもハンドルみたいなもんだろ。とにかく「固有」(結局はアドレスだから)の数値なんだから。
592 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:09:49 ] ハンドルで表わされる物がオブジェクト指向でのオブジェクトとなるのは 別に難しい概念じゃないと思うのだが それに何で関数のヘルプ読まないの? 芋蔓式にそれに必要な物とやり方がわかると思うんだけど
593 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:12:18 ] TBSの記者みたいなやつだな
594 名前:455 mailto:sage [2009/05/12(火) 16:14:17 ] >>592 ヘルプに書いてある? 「コントロールのアドレス(又はポインタ)はダイアログが実行中しか取得できません。」 とかって、どっか書いある?
595 名前:455 mailto:sage [2009/05/12(火) 16:16:41 ] 訂正 ・・・ダイアログが実行中しか取得できません。」 ・・・その親ダイアログが実行中(フォーカス中)しか取得できません。」
596 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:21:19 ] おまえはゆとりかw
597 名前:594 mailto:sage [2009/05/12(火) 16:21:45 ] >>592 >>594 は取り消し 根本的に質問が間違った。質問の本意は、 「ヘルプには、他のダイアログ(外部プロシージャ)にあるコントロールを 直接参照はできません。」とかって書いてある? だった。 」
598 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:27:27 ] >>597 だからね。そこはC++を勉強してたらそういう疑問は出ないの。 それが当たり前なの。 他のインスタンスの変数を直接参照できないように設計するのは オブジェクト指向の初歩の初歩なの。
599 名前:594 mailto:sage [2009/05/12(火) 16:30:08 ] >ダイアログB(DlgB)の実体を生成したときに、ダイアログA(DlgA)のメンバ変数(自分で定義)に値をぶちこむ。 とにかく、だから、俺は、そのことを>>484 で問い正していたんだよ。 そうしたら日記に書けとかなんとかって・・・・
600 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:32:31 ] ウィンドウハンドルだろうがオブジェクトのインスタンスだろうが、プログラムを実行中にしか取得できないわけだが、 ひょっとしてコード内に固定値でアドレスを書こうとしているのか?
601 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:44:48 ] 「実行中」の用語が間違ったな。 「生成中」、または「フーカスになったとき」だな。 vbだと共有変数にいちいち保存しなくても、プロシージャ(ダイアログやコントロール)の 名前だけで、その「擬似ハンドル」みたいなものは自動的に値は持ってるからね。 例えば、 Form2.Label1 って書けば別に、Form2のほうで共有変数(Public)に代入なんかしてなくてもいいわけで。
602 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:47:34 ] 別に共有変数でなくてもいいんだろ? 当然にパラメータで渡せばいいんだろ?
603 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:48:40 ] 455専用スレかよw 他の人が質問できない雰囲気になるぞ
604 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:49:30 ] すまん
605 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:51:28 ] >>601 だからVBは嫌われるんだよ
606 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:53:13 ] なんだ結局質問の内容は VBのForm2.Label1をどうやったらいい? たったこれだけか
607 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:55:03 ] >>606 !! やっぱりVB厨じゃんww
608 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 17:08:29 ] 455専用スレ立てようぜ
609 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:43:17 ] MFCだったらいちいちGetDlgItemしないで Form2.Label1みたいにメンバ変数にするのもありだな
610 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:48:57 ] アクセス頻度が高ければ当然そうする。常識だろ。
611 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:30:11 ] VisualC++でPro*Cの統合開発環境を整えたいのですが Oracleにのっているやり方が2002、2003等でのマニュアルなので開発環境の構築に手間取っています 誰かやりかたのわかるかたいますでしょうか? ぐぐっても出ないので質問しました
612 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:44:06 ] >>611 わかるけど全部教ええる気にはならん どこまでできてるんだ?
613 名前:611 mailto:sage [2009/05/12(火) 22:54:20 ] とりあえずは 実行ファイルのパス追加 インクルードの追加はしました その後の.pcを追加した時に出るなんたら規則の設定からマニュアルと違う風になっており止まっています
614 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:58:06 ] >>613 すまん。.pcファイルはいつもコマンドプロンプトで proc hoge.pc とかやって.cにプリコンパイルしてからVCでコンパイルしてたw つーわけで、他の人にまかす。
615 名前:611 mailto:sage [2009/05/12(火) 23:02:40 ] >>614 わざわざありがとうございます できないっていうことはないので何とか努力してみます
616 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:57:29 ] 150近くもレス使って>>455 から>>606 を引き出したおまいらに感動した
617 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 11:41:41 ] スタック領域を増やさないといけないロジックってどんなの? 俺はしがない業務系プログラマなのでそんなロジック組んだこと無い。
618 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 12:04:42 ] >617 たぶんVBの環境の話だから続きはVBスレでやってくれ
619 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 15:11:10 ] すたっっくぅ〜〜!
620 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:09:21 ] 実際に体験してやったことがある人が「こうすればできる。」って言うことと、 、やったことのないものが「こうすればできるはざずだ。」って権威を傘に 他人に受け売りで言うことを、同じレベルで考える人が多いけどさ、それが、 「未熟」っていうことなんだ。
621 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:40:30 ] >>616 本人は最初から言ってるわけだから、どの程度のレベルか。 ↓「引き出した」んじゃなく「忘れてた」んだろ。スレタイと同時に。 >土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに >成功した、ハンドル使わない方法でやっとだ。 455 :デフォルトの名無しさん:2009/05/12(火) 00:07:15 土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに 成功した、ハンドル使わない方法でやっとだ。 そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText() のやりかた教えろや。
622 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:44:33 ] >>616 おまえの考えなら ★Visual C++を教えるスレ★ Part01 って別のスレを建てるか、又は、次からスレタイを ★初心者にVisual C++を教えるスレ★ Part33 ↓ ★Visual C++を教えるスレ★ Part34 にするか、どっちかだわな。
623 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 05:22:23 ] なんか必死になってるぞw 単なる初心者相手ならいいが、自己防衛の言い訳だけが多い奴の相手は時間の無駄だな。
624 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:07:28 ] そもそも尿簿の話が出てくるからわからなくなる 組んでるのは誰なんだと 尿簿の経歴はどうでもよくて組んでるやつの経歴を 言えっつーのw
625 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 14:23:11 ] にょうぼ、て何?
626 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 14:25:42 ] 女房の新しい言い方
627 名前:625 mailto:sage [2009/05/14(木) 14:32:28 ] 嫁かぁ サンク^2
628 名前:デフォルトの名無しさん [2009/05/14(木) 23:36:07 ] 女なんてマンコがくせえビッチだろ。
629 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 13:06:48 ] 童貞乙
630 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:34:40 ] >>628 お前のつきあった女はみんなマンコがくせえビッチだったのか。 かわいそうすぎるww
631 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:08:36 ] MFCでの作成していますが、 既存のチェックボックス、ボタン、ラジオボタンを自分の作成したイメージ(画像)に変更したいと思います。 チェックボックスやボタンのイメージを自作して、表示させる方法を教えていただけないでしょうか?
632 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 19:11:05 ] 「オーナードロー」でググってみ
633 名前:631 mailto:sage [2009/05/17(日) 19:47:12 ] >>632 ありがとうございます。調べてみます。 ボタンに関してはCBitmapButtonが使えそうですよね。
634 名前:デフォルトの名無しさん [2009/05/19(火) 15:43:36 ] DOS窓に出力したいんですが、どうすればいいのですか?
635 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 16:05:03 ] AllocConsole()
636 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:13:11 ] ボタンの文字に色を付けるってのが鬼畜級の難易度だコレ
637 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:26:57 ] オーナードローの初歩だ
638 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:03:40 ] 最後のprintfでa,b,cの入力値を表示したいんですが、思い通りにいきません。 どうしたら表示出来るんでしょうか? #include <stdio.h> #include <math.h> main() { float a, b, c, d; printf("上底の長さを入力して下さい:"); scanf("%f", &a ); printf("下底の長さを入力して下さい:"); scanf("%f", &b ); printf("高さを入力して下さい:"); scanf("%f", &c ); d = ( (a+b)*c/2 ); printf("上底:%d、下底:%d、高さ:%dの台形の面積は、%fです。\n", a, b, c, d ); }
639 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:15:03 ] printf("上底:%f、下底:%f、高さ:%fの台形の面積は、%fです。\n", a, b, c, d );
640 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:42:38 ] >>639 ありがとうございます。 すごく簡単な事だったんですね・・・半日掛かりきりだったのにorz
641 名前:デフォルトの名無しさん [2009/05/20(水) 00:43:48 ] お願いします。 VC++2008を使っています。 今、エディタの背景色やフォント色を変更しているのですが ソリューションエクスプローラの背景色やフォント色を変更する場所が見つかりません。 どこから設定するのでしょうか?
642 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 21:58:28 ] VSC++使ってるんですけど、デバッグの時に出力メッセージが出なくなりました 成功、失敗、エラーなど一行も表示されません ソースをコピーして新しいファイルに貼り付けたら表示されるようになりましたが・・どこを触ってしまったんでしょうか?
643 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:19:50 ] >成功、失敗、エラー はビルド時のメッセージ。 ソースに変更がない限り自動的にビルドされないから必ず出る必要はない。
644 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:20:27 ] 文字列と数字の混じってる要素{1,2,3,4,5}があり、 配列[2]の時は1,2 配列[5]の時は1,2,3,4,5 と入りきらない分は単純に切り捨てたいときはどんな風に記述するのがいいでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:31:48 ] >文字列と数字の混じってる要素{1,2,3,4,5}があり、 俺には全部数値に見えるが。
646 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:43:22 ] >>644 すごい意味不明に見える。 コンパイル時に決定するものとしないものの違いとか分かってます?
647 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:19:32 ] VC++でstring変数を使って,文字列処理を山のようにしたら。 読込みー>+計算ー>””化 読込みー>+計算ー>””化 読込みー>+計算ー>””化 システムメモリーは、細かい断片化になってしまうのでしょうか?
648 名前:デフォルトの名無しさん [2009/05/21(木) 20:56:12 ] VC++2008ExpressEdition(CLR、Windowsフォームアプリケーション)で ネット上にあるhtmlファイルを取得して保存とか文字列操作して表示とか したいのですが、どういうクラスや関数を使ったらいいですか? イメージ的には2ch専ブラみたいに特定のウェブページを取得して テキストボックスとかに表示したいです。
649 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:59:07 ] WinInetとか
650 名前:648 [2009/05/21(木) 21:35:23 ] >>649 レスありがとうございます。 wininetについて今ネットで調べてみたのですがこれってwin32APIですよね。 win32APIはプログラミングが面倒だという印象を持っているんですが C++でもwebページの取得はwininetが常套手段なのでしょうか? VisualC++で使える便利なクラスみたいのはないのでしょうか? わがまま言ってスイマセン。
651 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:39:53 ] >>650 便利なMFCのクラスはあるけど、ExpressEditionじゃ使えない。 それに、Windowsプログラミングの基本はやはりWin32APIだから、それが面倒というなら VBなりC#なり、C++以外でプログラミングすればよろし。
652 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:39:22 ] >>648 boost::asioとかでいいんじゃないの?
653 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:39:33 ] 特定のウェブページを取得してテキストボックスとかに表示だったら 特に難しい処理はないだろ やっつけで用が足りる
654 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:13:42 ] >>648 WebClientとかSystem.Net名前空間の中あされ。 CLRアプリならC#スレでそれとなく聞くのがお勧め。
655 名前:648 mailto:sage [2009/05/22(金) 00:55:27 ] >>650-654 皆さんありがとうございました。 WebClientよさそうですね。あとWebRequestもいけるかな・・・ とりあえずこの辺りから勉強してみる事にします。 とは言っても正直VCもC++も全く解らなくてまず何から 手をつけていいのか混乱している状態です。
656 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:20:39 ] Microsoft Visual C++ 2008 Express Edition をインストールしたのですが、 コマンドラインからコンパイルできません。 clと入力しても 'cl' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と言われてしまいます。 どうすればコマンドラインからコンパイル出来るようになるでしょうか?
657 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:24:16 ] >>656 msdn.microsoft.com/ja-jp/library/ms235639 (VS.80).aspx
658 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:25:55 ] >>656 >>657 2005→2008に読み替え
659 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:31:29 ] ありがとうございます。 普通のコマンドプロンプトからは出来ないのでしょうか? g++と同じ感覚で使えると便利だと思っているのですが。
660 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:44:18 ] パス通せばできるだろ
661 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:58:20 ] VCVARS32 入ってないのか
662 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:01:11 ] VCVARS32というバッチファイルでコンパイルするんですか?
663 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:07:23 ] 少しは自分で調べたらどうだ? VCVARS32 でググりゃいくらでもでてくるだろ。
664 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:34:40 ] もちろん調べたんですが分かりませんでした。 確かにいくらでも出てきましたが 実行しても何もおこりません。
665 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:38:59 ] VCVARS32を実行したら、そのコマンドプロンプトではそれ以降clが使えるようになるよ・・・
666 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:51:42 ] ・・・もしかしてOSを再起動してないからclが使えないのでしょうか。 今度OSを再起動できるようになったら試してみます。 ありがとうございます。
667 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:12:09 ] >>665 見て俺も実行してみた が、アクセサリのほうのcmdからはclは使えなんだ
668 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:23:52 ] >>667 ちゃんとCALLしたのか?
669 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:25:55 ] >>667 「そのコマンドプロンプトで」って >>665 に書いてあるだろ? アクセサリのコマンドプロンプトで VCVARS32 を実行しなきゃ、アクセサリのコマンドプロンプトでは使えんよ。
670 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:43:39 ] 初めてやったが問題なく使えた、edlin があるのに驚いた
671 名前:667 mailto:sage [2009/05/23(土) 22:23:52 ] あ、出来た
672 名前:666 mailto:sage [2009/05/23(土) 23:23:52 ] できました! ありがとうございました。
673 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:55:55 ] システムの環境変数に登録しとけば? てか、VC6の頃は自動で登録してくれたのになぁ
674 名前:デフォルトの名無しさん [2009/05/24(日) 10:51:09 ] 現在、Minimalist PSPSDKを導入し、 IDEとして、Visual C++を使用したいんですが、 どうもうまくいかない状況です。。 1>Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。" sourceforge.jp/projects/dxlibp/wiki/ チュートリアル のやり方で、Makefileも作成しています。それに加え、 インクルードの検索パスに C:\pspsdk\psp\sdk\include を設定し、 環境変数のPATHに C:\pspsdk\bin としています。 ほかに何か不備があるのでしょうか? よろしくお願いします。
675 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:06:36 ] なぜそのwikiで質問しない? ここはそのサイトと関係ないだろ
676 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:10:21 ] >>675 頭がパーだからに決まってるだろw
677 名前:デフォルトの名無しさん [2009/05/24(日) 12:53:20 ] >>675 すみませんでした。。 そちらのお世話になってきます。
678 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:20:46 ] VisualStudio2005でMFCアプリをつくろうとしています。 それでコマンドライン引き数をプログラムに渡したいのですが、 スケルトンのままでビルドしてコマンドラインから、 ttt>hogehoge.exe test1(ret) と実行すると、test1というファイルをさがしに行ってしまい、 ファイルが見つからないというメッセージを出して終了してしまいます。 普通にコマンドラインを渡すにはどこをいじればいいのでしょうか?
679 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:28:30 ] CCommandLineInfo::ParseParam(); msdn.microsoft.com/ja-jp/library/bss6bxss (VS.80).aspx
680 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:57:25 ] その文章だと本人の思い込みの可能性が強く感じられるから アドバイスは遠慮する。
681 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 15:33:15 ] ___arg アンダーバーのついたargとかいうもんがあった希ガス
682 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:36:13 ] ヘルプのdocument explorerの文字を大きくするにはどうすればいいのですか? 初心者過ぎる質問ですがよろしくお願いします。
683 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:52:24 ] 「ヘルプに関するヘルプ (Microsoft Document Explorer ヘルプ)」を読め。
684 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:56:49 ] >>682 表示メニューか右クリックメニュー
685 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 17:07:54 ] 683の言われたとおりにヘルプからで探したところ、 インターネットオプションで「WEBページのフォントサイズを使用しない」を選択すればよいことがわかりました。 ありがとうございます。 >>684 オンラインのページだと、文字のサイズを変えても、ページ内の文字の大きさが変わりませんでした。
686 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:09:54 ] >>679 CCommandLineInfoでぐぐったら何とかなりました。Thxです。 >>681 それ以前にまったくアプリが立ち上がらなかったので。
687 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:23:45 ] アプリか 自分もいつか作ってみたいもんだね
688 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:50:48 ] >>686 ドキュメント/ビュー アーキテクチャを無理に使う必要はないんだぞ。:-)
689 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 00:59:35 ] >>688 ドキュメントビューアーキテクチャって何を作って欲しいのか不明だよね
690 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 11:16:32 ] >何を作って欲しいのか不明 それは君の経験不足だと思うが。
691 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 18:38:21 ] 最近VisualC++を使い始めたのですが、ソフトの特性を理解できていなくて困っているので一つ質問させてください。 main関数を含む単独のcppプログラムを2つ並行して使っているのですが、 それぞれ1つずつのVC++ウィンドウを開いて、それぞれにソリューションを表示してコンパイル(ビルド?デバッグ?)しています。 この2つを1つのウィンドウで開き、タブを切り替えてそれぞれ個別にコンパイルできるような構成にはできないでしょうか? 1つのソリューションに2つのプロジェクトを作って1つずつソースファイルを入れてCtrl+F5を押しても片方のソースだけが実行されてしまって悩んでいます。
692 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 19:19:32 ] Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)をインストールしたいんだけど、インストーラーでドライブ直下に展開されちゃう。 どなたか保存場所の指定の仕方わかります?
693 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 19:26:33 ] >>691 後者の状況で、ソリューションエクスプローラ上のプロジェクトのアイコンを右クリック、 メニューの中の「スタートアッププロジェクトに設定」を選ぶと、 Ctrl+F5などを押したときに起動するのがそっちになる。 あと、ソリューションのプロパティで両方同時になどといった設定もできる。 頻繁に切り替えることを考えた作りに見えないし、 望みどおりになるのは難しいと思う。 本質的に別のなら、最初みたいに別々のソリューションにするほうがいいと思う。
694 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 22:16:43 ] クラスを使ってゲーム作成などをし始めたのですが、作ってるうちにこんがらがってしまいます 配列はとても扱いやすくいので何もかも配列で処理させれば問題なく出来るんですが、 こういう場合はどうすればいいんでしょうか 無理してクラスは使わなくていいんでしょうか?それとも僕はC++に向いてないんでしょうか?
695 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 22:52:06 ] >>694 その配列に処理するための関数がくっついていれば便利だと思うことはないかね?
696 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 22:58:05 ] >>694 たくさん作ればそのうちわかる
697 名前:694 mailto:sage [2009/05/25(月) 23:03:34 ] ありがとうございます! >>695 説明では何度も読んでいるんですが、どうしても使いこなせないんですよね。多分理解できてないんでしょう・・ 計算はmain関数、データは配列に格納って固定概念がいつまでも離れないんです >>696 ありがとうございます。とりあえずあまり考えずに何か色々作ってみます。 その内なにかひらめくかもしれませんね
698 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 23:09:24 ] プログラミングのノウハウ、作り方や設計等、デザインパターンもそう。 本だけの知識で修得できるものじゃない、体で覚える方が大切。
699 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 02:48:19 ] 判るなぁ、その気持ち 大きいのと小さいのは判るんだけど、それを使って何かやろうとすると ウゼーと思ってオブジェクト化崩しちゃう 最後まで設計するのが面倒でコーディングに走っちゃうのが 駄目なんだろうな
700 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 09:26:35 ] この人はグローバル変数やめるところから始めるべきだ
701 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 13:04:20 ] 質問です。 開発環境はVisual C++2005です。 静止画を連続表示してGIFアニメのように見せるソフトを考えています。 今、連続画像AとBがあって、同時に再生スタートして、 ずれないように毎画像(毎フレーム)ごとにお互いの同期を取りながら再生させるには、 どのようにすればよいでしょうか? よろしくお願いします。
702 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 15:18:17 ] >>701 すれ違いではあるまいか。 答えは、同期なんかとらなくても、同じスレッドで表示すればいいだけだろ。
703 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:33:33 ] >>701 ギャハハハw ダッセーw 以下、>>701 の発言を正当化する後付け設定の嵐どぞ↓w
704 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 19:46:28 ] ┌┐ / // [二 ] __ 〔/ / | |/,ー-、ヽ / / / _,,| | ./ レ1 | / o └、 ∠/ ∧_∧ .|__| ヽ_/^ ,/ ( ´∀`) )) __ / /つ( ̄`ヽO_ノ⌒ヽ [二二_ ] / ノ ) \ )) // {.. (__丿\ヽ :: ノ:::: ) / ∠__  ̄フ.. 丿 ,:' )) ∠___ / / (( (___,,.;:-−''"´``'‐' _ / / \ / o ヽ/ / / ヽ__ / \
705 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 21:59:51 ] VC++2008 MFCダイアログベースでアプリを作成しているのですが ダイアログにファイルをドロップした時に、 ダイアログ上に設置されたリストコントロール上にドロップされたのと、 それ以外のダイアログ上の場所にドロップされたのとで別の処理をしたいのですが、 どう判別したらいいのかわかりません。 教えてください。 よろしくお願いします。
706 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:12:35 ] ダイアログにファイルをドロップした時→ダイアログにWM_DROPFILESがポストされる。 リストコントロールにファイルをドロップした時→リストコントロールにWM_DROPFILESがポストされる。 むろん、ダイアログもリストコントロールも Accept Files を True にしておく。 [別解] ダイアログだけ Accept Files を True にしておき、ドロップされた時のマウス位置で判別する。
707 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:19:41 ] 最近プログラムの流れをノートに書いてるんですが、 こういう流れの図ってなんていうんでしたっけ?
708 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:21:03 ] フローチャート
709 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:22:28 ] \  ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `'ー '´ ,. -- 、 ○ ,' , '⌒,ノ O .__ i/ ´ o ,,.. '"´ ̄ (__)r'ヽ と 。 / ` ´`ヽ 思 ,' ,、 ─- ', う ! 、 ,.i- i ハi,;-ァ!、 i i 神 i i i !,-;!、 ':,_rハiノ| .| .綺 レV!. i.ハ_r! 、 "" i |. | で i.八" _ ノ |. | あ l.|ゝ.>,,、__,,.. イノ レハ | っ レ| l | ,.イ-ーニノト.ー 、i | た .| l ,.ヘ、ニ_ノノ `ヽ! | / //不\ヽ `ヽ
710 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:34:16 ] >706 回答ありがとうございます。 >ダイアログにファイルをドロップした時→ダイアログにWM_DROPFILESがポストされる。 こちらはOKですが、 >リストコントロールにファイルをドロップした時→リストコントロールにWM_DROPFILESがポストされる。 こちらの場合の処理手順がわからないのでマウス位置判別の方法で試してみます。 どうもありがとうございました。
711 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 22:50:52 ] >こちらの場合の処理手順がわからない CListCtrl の派生クラスを作成して当該リストコントロールに結びつけ、 その派生クラスでWM_DROPFILESメッセージを処理する。
712 名前:710 mailto:sage [2009/05/26(火) 23:13:35 ] >711 試行錯誤しながら試したらうまくいきました。 ありがとうございました。
713 名前:デフォルトの名無しさん mailto:sage [2009/05/27(水) 23:39:01 ] デバッグ中にステップインでプログラムを進めているのですが、いつの間にか終わってしまいます 「何かキーを入力してください」の画面も出ません ウォッチ式のところも文字がグレーになってしまいます ループのところでハマっているかとも思いましたが、そういうわけでもありませんでした これはどういう状態なのでしょうか?
714 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 10:22:58 ] 出力ウィンドウには何か出てない?
715 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 12:26:06 ] リリースビルドだったら許さん
716 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 12:35:47 ] アクセスバイオレーションで続行して飛んでるとか オブジェクト残ってて実は終わってないとか
717 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 17:26:40 ] 猫でもわかるプログラミングさんのサイトを使っていたんですが、 WindowsSDKのプログラムを打ちこんだのですがVisual C++ 2008 EEではビルド出来なくて困っています Visual C++ 2008 EEのアプリケーション開発入門用のサイトで お勧めなのはありませんか?
718 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 18:19:08 ] ビルドできないってどんな理由で? ユニコード文字セットのせいじゃないの?
719 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 18:32:09 ] ttp://www.kumei.ne.jp/c_lang/sdk/sdk_00.htmのコードをそのままコピペして使いました そしてビルドしたところ以下のようなエラーメッセージが出ました sample01.cpp(38) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 この他に二つエラーが出ましたが、 そちらは型変更のキャストを入れています
720 名前:717 mailto:sage [2009/05/28(木) 18:38:56 ] すみません、>>719 は>>718 の返答ですorz
721 名前:デフォルトの名無しさん [2009/05/28(木) 18:42:55 ] >>719 まさに>>718 マルチバイトとUNICODEが混在してる。 プロジェクトのプロパティと使用してる文字セットを見直して。
722 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 18:57:36 ] >>721 助かりました Unicodeからマルチバイトに変更したら問題なく通りました 半日悩んでたので、ようやくすっきり出来ましたw
723 名前:デフォルトの名無しさん [2009/05/29(金) 02:03:34 ] mfcの求人がないお(;ω;) mFCこそしきょくの現代プログラミングだとおもうんだお(^ω^)
724 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 02:17:42 ] >>723 あー、わかる ホント仕事ないよなぁ・・・ っていうか別にこれに限らずプログラム組む仕事ならちょっとなれれば なんでもできるからどこへでもまわしてくれって思うけどね
725 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 08:04:27 ] MFCの求人がないお というレスに対してのレスとしてそれは正しいのか? 仕事がないおじゃなくてMFCの求人がないおだぞ 的外れにもほどがあるお
726 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 08:17:32 ] Webじゃ作れない業務に強くなるしか無いんじゃない? ムスレの話題じゃないなw
727 名前:デフォルトの名無しさん [2009/05/29(金) 16:36:55 ] ここで質問すべきなのか分かりませんが。 8FFFFFFFU と 1U では _BitScanForwardした結果を返すスピードは 変わらないのでしょうか? 上位のほうにあろうと下位のほうにあろうと関係ないのでしょうか。
728 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 16:52:55 ] 自分で試しても違いがわからなかったら変わらないと言える。
729 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 16:53:31 ] >>727 homepage1.nifty.com/herumi/diary/0811.html のページによると_BitScanForwardはアセンブラレベルでは bsfの1命令に落ちるみたいなので、変わらないんじゃないの 確実な答えがしりたいなら人に聞くんじゃなくて、Intelのサイトとかで 対象CPUの命令のスペックを調べること
730 名前:デフォルトの名無しさん [2009/05/29(金) 19:51:56 ] 今、学校の課題をやっているところなのですが、 「関数 'erfc' は定義されていません。」と出てしまいました。 erfc()はmath.hのエラー関数の関数で、 ぐぐったところ、標準ライブラリ(拡張)と出てきました。 どうすればいいでしょうか。お願いします。
731 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:20:17 ] なんだ、まだ解決してないのか 先生に聞いてみな
732 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:44:58 ] >>725 ないのはしょうがねぇじゃんw でもそれ以外不可ってのが俺的にネックだなぁ・・・ って感じでレス書いてる内に俺の都合レスになったw
733 名前:デフォルトの名無しさん [2009/05/29(金) 20:58:57 ] >729 1命令で収まりそうですね。 ビットを探すためにループ処理はしていませんね。 ありがとうございました。
734 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:38:59 ] >>724 畑違いだとめっちゃしんどいぞ。
735 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:40:12 ] >>734 っていっても俺はじめゲーPGだしw
736 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 17:33:07 ] 関数を作ると、 関数に 2 個の引数を指定できません。 と出るんですが、どうすればいいでしょうか
737 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:00:51 ] 関数プロトタイプを見直せ。
738 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:01:23 ] それは作ったほうじゃなくて呼び出したほうのエラー 具体的にどうやったのか?
739 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:49:23 ] >>737 ,>>738 分かりました、ありがとうございます いままで関数のほうばかり見て、 関数プロトタイプの括弧の中を記述し忘れていました
740 名前:デフォルトの名無しさん [2009/05/30(土) 20:01:17 ] さっきVisual C++ 2008 Express Edition をインスコしたとこで、とりあえず簡単なプログラム実行させようとしたんだけど、 include ファイルを開けません。'iostream.h': No such file or directory って出てコンパイル通らんという状態なんだが Cygnusでは実行できたからソースコードが悪いわけではないと思うんだが・・・ それとも新規プロジェクトはWin32コンソールアプリケーションじゃあ駄目だったのか?
741 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:13:08 ] インクルードパスに追加すればいいだけでは?
742 名前:740 [2009/05/30(土) 20:16:25 ] #include <iostream.h>は#include <iostream>にしたらエラー吐かなくなった。 なんか新しい書式だと.hを付けないから古いほうだとエラーになるとかなんとか…? でも俺らの参照する文献(ネット上も含めて)には旧バージョンもまだまだあるだろ…迷惑な でも#include <iomanip.h>のほうはエラー吐き続けるんだが・・・
743 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 20:32:56 ] #include <iomanip>
744 名前:デフォルトの名無しさん [2009/05/30(土) 20:48:24 ] すみません。書籍スレと迷ったんですが、こっちで聞かせてください。 大分、MFCにもなれ、自作アプリを3個くらい手の込んだのを作りました。ある程度のアプリなら ネットやら書籍で検索しながら作れるような気はしてます。 書籍もオークションやらブックオフで色々あさって技術評論社とかAsCIIのを 12冊くらい持ってます。で、色々お勧め本をみるとハーバートシルトのMFC6.0という分厚いやつがお勧めらしいですが 本屋でぱっと見た限りほとんど知ってる事だと感じました。実際読んでないんでわかりませんが、 それでも含蓄あるから買ったほうがいいとか そういうことありますか?
745 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 21:00:59 ] 人それぞれだと思うよ。 もっとも、趣味範囲でのプログラミングなら、参考書に載っていない部分を、工夫しながら作っていくのが面白いのだけどな。
746 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 21:13:51 ] 他に持ってる本で用が足りてれば買ってもしょうがないだろうけど そんなの全部内容比較しなきゃ誰にもわからんだろ
747 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:45:45 ] プログラミングに限らず大抵の分野について初心者用の本ばかりなんじゃないの。 中級向けの本なんて作るの大変なうえに売れないし、作る人いないんじゃないかな。 雑誌でちょっとずつ高度な話を連載して書籍化ってパターンがあるけど雑誌が売れなくて消えてく時代だし。
748 名前:デフォルトの名無しさん [2009/06/03(水) 00:07:40 ] すいません。教えてください。 #include <string> #include <iostream> using namespace std; class User { private: public: User() { cout << "デフォコン" << endl; } }; int main() { User x; User y(); return 0; } User y();でデフォルトコンストラクタが呼ばれないのは何でですか?
749 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:16:32 ] >>748 User型の戻り値を持つ関数yのプロトタイプ宣言とみなされてるとか
750 名前:デフォルトの名無しさん [2009/06/03(水) 00:25:40 ] >>749 ありがとうございます cout << typeid(x).name() << endl; cout << typeid(y).name() << endl; してみたら、さらに納得がいきました。 てか、よんでる入門書にそういう記述があったので・・・ 本の正誤表に出てるかもしれないですね。 ありがとうございました
751 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:40:11 ] >>750 てか、このパターンはぱっと見関数宣言と変数定義の区別が つかないような気がするのでコンパイラによっては(VCでもバージョンによっては) 動作が異なるのかも知れない C++相談室スレとかにいけば、どう解釈するのか正しいのか教えてもらえるかも
752 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:10:44 ] Visual Studio 2008付属のVisual C++で、ダイロアグベースのMFCアプリケーションを 作り始めてみました。 エディットコントロールの使い方について教えてください。 エディットコントロールの使い方として、 ・変数の追加で、カテゴリControlの変数を追加する。 →GetWindowText()で内容を取得する。 ・同様にカテゴリValueの変数を追加する。 →UpdateData()で変数を更新して内容を取得する。 ・変数を追加しない。 →GetDlgItem()とGetWindowText()を使って内容を取得する。 このようにいくつか方法があると思っています。 それぞれの方法の長所や短所、使い分ける時の基準、みたいなものはありますか?
753 名前:750 [2009/06/03(水) 01:18:26 ] www.geocities.jp/bleis_tift/cpp/defaultctor.html こんなの見つけました。 コンパイラによっては警告を出してくれんですね ちなみに私が使ってたのはVC++ 2008です ありがとうござました いろいろ氷解しました
754 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:26:20 ] >>753 リンク先にもあるようにVisual C++は警告を出すコンパイラなんだけど気付かなかった? そうなら、警告もエラーと同じくらいよく目を通したほうがいいよ。
755 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 06:18:35 ] >752 数値の場合はDDX DDVが便利。 ただ複雑なことはできないのとUpdateDataが面倒 文字の場合は直にGetWindowTextが手っ取り早い 毎回GetDlgItemが面倒ならメンバ変数にしておく。 あとCEditのメンバ関数と使い分け
756 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 06:21:25 ] と思ったけどDDX DDVの中味を自作する方法もあったな
757 名前:デフォルトの名無しさん [2009/06/03(水) 19:24:40 ] 入門書を一通り読み終えて 簡単なアプリを作りながらVisualC++の使い方を覚える本をはじめたのですが 最初の方で String^ msg = now.ToString(); という記述が出てきました。 この^は見た覚えがないのですがなんか演算子なのですか? 今この書き込みかいててちょっと思いついたんですけど もしかしてクラス名が String^ ってことはないですよね?
758 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:39:37 ] それは、C++のようでC++でない.NET用の拡張C++/CLIの構文。
759 名前:757 [2009/06/03(水) 19:41:40 ] ありがとうございます。 すいません。取り除いてコンパイルしてエラー文検索で見つけました。 msdn.microsoft.com/ja-jp/library/ms235261 (VS.80).aspx ですね。
760 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:51:48 ] どっちみちC++とは違うものだし、.netがやりたいなら普通はC#にする。
761 名前:デフォルトの名無しさん [2009/06/03(水) 20:08:17 ] satou
762 名前:757 [2009/06/03(水) 20:51:42 ] >>760 C++を選んだのはオブジェクト指向でネイティブアプリが作りたかったんですけど CLIはネイティブじゃないんですよね。 C++でwindowsのネイティブアプリを作るとなるとVisual Studio 2008 Standard Editionあたりを買って MFCで作るのですか? そもそも見た目をグラフィカルに配置して、モデル部分やボタンなどのアクションをC++で書くというのを イメージしてたのですが、製品版買えば、MFCアプリをフォームエディタでのようにペタペタはって 作れるのですか? アマゾンでC++ MFCを検索すると2003年から新刊出てないようなのでMFCってもういまさらって感じですか? 何かをプラスでインストールしないと動かないアプリっていうのがいやなんですよね。 いろいろ聞いてすいません・・
763 名前:757 [2009/06/03(水) 21:12:16 ] なんか色々あってややこしいですね・・・ いろいろ見てみたけど 勉強するならWin32APIですかね?
764 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:13:51 ] とりあえずネイティブは無料版でも扱える(MFCは有料のみ) 俺的考えはビスタ以降は標準で.NETがインストールされてるからそこまで嫌う必要はないと思ってる
765 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:25:55 ] 757はなにをやりたいのかさっぱり分からん 例えばゲーム作りたいならC++とネイティブとDX、 ブラウザとかのツール系なら.NETのほうが開発しやすいし、 win系OS全部に対応させたいならWin32APIのみで開発するし 目的によって勉強する言語は変わってくるんだがなー
766 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:25:24 ] mfc使ってみようと思う時はribbon触りたくなった時くらい
767 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:06:10 ] そのリボンもWindows 7からWin32 APIの仲間入り。
768 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:41:00 ] ループを抜け出すときにはbreakを使いますが、これを自分で手定義した関数から実行することは出来ますか? void aaa() { break ;} int main(){ for(int i=0;i++;i>5) { aaa() ;} return 0;} のような感じです
769 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:44:04 ] 不可。
770 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:52:55 ] >>769 ありがとうございます
771 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:39:32 ] VC++2005でCStringを使おうとすると以下のエラーが出てしまいます。 何か設定など必要なのでしょうか? error C2065: 'CString' : 定義されていない識別子です。
772 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:48:17 ] #include <tchar.h> #include <atlstr.h>
773 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:01:37 ] >>771 VC++2005eeじゃね? 有料版じゃないとMFCは使えないよ
774 名前:771 mailto:sage [2009/06/04(木) 04:55:54 ] >>772 様 >>773 様 御回答ありがとうございます。 VC++2005eeにて文字列変数のコピーをするにはどうしたらよいのでしょうか?
775 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 07:11:09 ] lstrcpy
776 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 07:28:37 ] 文字列変数というのがchar*なら>>775 #include <string>してstd::string使うとか。 C++/CLIならSystem::Stringもあるけどまあ別物か
777 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 08:11:08 ] もしかして標準C/C++の基本がまだできてないなら C/C++スレへ行け
778 名前:757 [2009/06/04(木) 11:55:50 ] >>764 C++と.NETだとC++のランタイムがスタティックリンクができないので .NETが入ってたとしてもC++のランタイムのインストールが必要って聞いたんですけど そんなことないですか? プロジェクトのプロパティでランタイムライブラリを マルチスレッド デバッグ (/MTd) に変えてリビルドしたら コマンド ライン error D8016 : コマンド ライン オプション '/MTd' と '/clr:pure' は同時に指定できません。 と言われました。 マルチスレッド デバッグ (/MT)でも同じ感じです。 >>765 作りたいのは「ブラウザとかのツール系」です。 .NETなのかな〜 まあ、両方ザックリ本読んで考えて見ます。
779 名前:デフォルトの名無しさん [2009/06/04(木) 13:44:07 ] RPGゲームを作っています main関数の中でとりあえず作ってみたのですが、 これをそのままクラスにするいい方法はありますか? コード自体はたいした量ではないので、作り直すのは簡単なのですが 後学のためにも教えてください。 それとも戦闘画面をメインにし、フィールドを歩くときは別フォームを呼び出したりするほうが良いでしょうか
780 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:11:49 ] 地道に作り直せ
781 名前:デフォルトの名無しさん [2009/06/04(木) 14:29:42 ] VS2003で作成されたActiveXコントロールの更改をしているのですが、 最適化オプションが、 ・プログラムサイズ ・実行速度 の時は問題ないのですが、 ・無効 ・最大限の最適化 ・カスタム にして、リビルドを行うと、Regsvr32で以下のエラーが発生します。 「LoadLibrary("○○.dll")に失敗しました。指定されたモジュールが見つかりません。」 原因が全くわかりません。 どなたか原因をご存知の方教えて下さい。
782 名前:デフォルトの名無しさん [2009/06/04(木) 14:41:48 ] >>780 うーん、残念です ありがとうございました〜
783 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 15:18:13 ] >>781 Dependency Walker などを使って依存しているライブラリに違いが ないか調べてみるとか
784 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 16:12:10 ] 元々自分で作った物じゃないから作りを理解してないんだろ
785 名前:781 [2009/06/04(木) 18:13:26 ] >>783 素晴らしいToolの紹介をありがとうございました。 最適化無効でビルドされたDLLと最適化実行速度でビルドされたDLLを 調べてみたところ、Regsvr32が失敗する方(最適化無効)で開けないDLLがあるというようなエラーが出ました。 そのDLLをプロジェクトに配置してみたら、ビルド後イベントのRegsvr32が成功し、エラーはなくなりました。 リビルドではエラーはでなくなったのですが、コマンドでRegsvr32を実行すると、 やはり同様のエラーが出て登録はできません。(リビルド時に登録されたDLLを登録解除もできません。)
786 名前:781 [2009/06/04(木) 18:15:00 ] 続きです。 これは何がいけないのでしょうか…? 引き続き、ご存知の方教えてください。
787 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:55:51 ] class Test1 { virtual ~Test1() = 0 {} }; class Test2 { virtual ~Test2() = 0 {} }; class Test3 : virtual public Test1, virtual public Test2 { virtual ~Test3() = 0 {} }; これをコンパイルすると、 warning C4505: 'Test3::~Test3' : unreferenced local function has been removed という警告が出るのですが、何が問題なんでしょうか?
788 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:58:19 ] >>785 気になるのはDLLの配置場所かな 確かDLLのロードは - 環境変数PATHで指定されたディレクトリ - exeのある場所 - カレントディレクトル などを参照したと思うけど、 VC上からビルドして実行すると、たまたまカレントディレクトリが上記の <project> になるので、DLLは <project> 直下においても読み込んでくれる しかし、コンソールから実行する場合、カレントディレクトリやPATHに注意しないと うまくロードされないとか
789 名前:781 [2009/06/04(木) 19:25:52 ] >>788 まさにその通りでした。配置場所をバイナリファイルと同じ場所に配置することで解消しました。 (一層上のプロジェクトファイルに配置してました。) 本当にありがとうございました。 ただ、最適化オプションの違いでエラーになったり、ならなかったりするのが 不明のままなのが気になりますが…。
790 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 19:44:00 ] C++初心者です。 TextBoxを画面に表示したいんですが上手く作成できません。 プロジェクト作成でWIN32を選択してからテキストボックスを作りたいと思っています。 TextBox textBox1; textBox1 = gcnew TextBox; textBox1->Location = Point(100, 16); Controls->Add(textBox1); をソースに追加したのですが error C2065: 'TextBox' : 定義されていない識別子です。 error C2146: 構文エラー : ';' が、識別子 'textBox1' の前に必要です。 error C2065: 'textBox1' : 定義されていない識別子です。 error C2065: 'gcnew' : 定義されていない識別子です。 error C2146: 構文エラー : ';' が、識別子 'TextBox' の前に必要です。 error C2227: '->Location' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 型は ''unknown-type'' です。 error C3861: 'Point': 識別子が見つかりませんでした error C2065: 'Controls' : 定義されていない識別子です。 error C2227: '->Add' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 型は ''unknown-type'' です。 というコンパイルエラーが出ます。 テキストボックスはフォームでないと作成できないのでしょうか? 環境はMicrosoft Visual C++ 2005です。
791 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:02:55 ] いろいろ間違いすぎてどこから説明したものやら・・・ とにかく最初から最後まで間違ってる
792 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:32:30 ] >>790 そのTextBoxは.NETのWindows Formsの一部。 CLRプロジェクト以外では使えない。 おとなしく.NET Frameworkの世界にいなさい。
793 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:08:25 ] 一体どこからそういう情報もってきてんだ? 情報仕入れたとこに全部書いてるだろ
794 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:09:20 ] 入門書を4〜5冊はやらないと全体が見えないよな
795 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:11:38 ] >>793 は>>778 にレスね
796 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:17:58 ] VC6 での質問です 変数の値が変更された時にブレークポイントがひっかかるようにする方法って どのようにすればできるのでしょうか?
797 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:41:39 ] [編集] メニューの [ブレークポイント] をクリックします。 [ブレークポイント] ダイアログ ボックスで、[データ] タブをクリックします。 [評価される式を入力してください] ボックスに変数名を入力ます。 [OK] をクリックしてブレークポイントを設定します。
798 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:53:07 ] >>797 できました ありがとうございます
799 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:50:52 ] VC2008EEでデバッグしています。 forのループ内にブレークポイントを置いてステップアウトしているんですが、 ループの回数が1000単位なので、1回ずつ変数の状態を見るのは手間がかかりすぎてしまいます。 例えば100回に1回だけ変数の状態を見たい場合、いい方法はないですか?
800 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:55:42 ] >>799 >>796-797 の応用
801 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:22:52 ] >>800 6と2008EEの違いのせいか、>>797 の項目が見つからず、 いろいろいじってたらヒットカウントというぴったりの物がありました。 どうもでした。
802 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:21:37 ] いまここに、Ansi C で書いたスタティックライブラリ c.lib があります。 そのライブラリをつかって、C++で書いたアプリケーション(GUIに依存しない部分を記述したもの)myapp があります。 GUI はお手軽に C# で書きたいので、アプリケーション部分 myapp を dll 化して、それを C# から呼び出したいです。 そこで、myapp.dll をつくりたいのですが、いざビルドしてみると、myapp から c.lib の関数を参照している部分でリンカエラーになります。 c.lib をスタティックリンクさせた状態で myapp.dllをつくるにはどうすればよいでしょうか? c.dll を作るのがめんどくさいので、myapp.dll が c.lib を内包してくれるとありがたいのですが。
803 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:22:08 ] できるはずだから、リンカオプションがまずいだけ。
804 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:17:43 ] extern "C" { #include "[c.libの関数のヘッダ]" } でもリンクエラーが出る?
805 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:19:15 ] リンカオプションですか.... c.lib をスタティックリンクするのって、もしかして myapp.dll のソースで #pragma comment(lib, "c.lib") だけではダメだったりしますか? (もちろん c.lib のあるディレクトリにパスが通ってるのが前提として)
806 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:34:56 ] それであっている。EXEでLIB使うときと同じ。 そういえば、そのLIBとDLLでCRTの設定は同じ? 異なっているといるとよくリンカに怒られる。
807 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 23:58:52 ] 現在デバッグビルドで試していますが、ランタイムライブラリの設定は c.lib と myapp.dll の両方で 「マルチスレッドデバッグ (/MTd)」で統一してあります。 呼び出し規約が c.lib だとデフォルトの設定のままで __cdecll に、 mydllではDLLのお約束(?)に従って __stdcall になっているのが気になりますが、 これは問題があったとしても実行時にでるものであって、リンカエラーとは関係ないですよね... 書き忘れましたが、リンカエラーというのは 未解決のシンボル "int __stdcall AAA()" (?AAA@@BBB@@CCC@D" が関数 "public: int __thiscall EEE::FFF() (?FFF@EEE@@GGG) で参照されました というのがつらつらでてくるものです。 myapp(C++)もともと exe として作っていて、そこから c.lib を参照するために、 cライブラリには既に extern "C" が記述してあります。 そしてその exe はきちんとビルドできて、実行できていました。 それでも念のため、ライブラリの #include をさらに extern "C" で囲んでみると、 なぜか Direct3D のヘッダ d3dx9math.h で大量の "operator *" Cのリンゲージ関数はC++のクラス D3DXVECTOR2を戻せません メッセージがでました。 もうすこし試してみます。
808 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:34:48 ] 呼び出し規約の違いはdefファイル使わねえとそのまま名前装飾に影響する
809 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:54:26 ] そういうことで惑うなら、呼出規約はソースコードに いちいち書いたほうがいいよ。コンパイラオプションにて一括で指定するのではなく。
810 名前:デフォルトの名無しさん [2009/06/06(土) 02:08:13 ] MFCのMDIで秀丸みたいなマルチドキュメントにしたいんだけど(タブ形式) 普通にEditビューじゃタブ形式にならないんだけど、どうすればいいの?
811 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:03:48 ] なるだろ? 2008のSP1限定だけど
812 名前:807 mailto:sage [2009/06/06(土) 11:32:31 ] なるほど、呼び出し規約を変えたら嘘のようにエラーがなくなりました。 いままで呼び出し規約を気にした事はなかったので、良い勉強になりました。どうもありがとう。
813 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:15:31 ] なるほどなるほど
814 名前:デフォルトの名無しさん [2009/06/06(土) 12:30:33 ] VC++でWin32プログラムを作成しています。 VS2008の雛形を元に、DialogBoxを追加しようとしているのですが上手く出来ません。 現在はファイルとヘルプの2個だけです。 やったこと (1)WndProc()のmessage引数で、WM_CREATEが渡された場合に DialogBox(hInst, MAKEINTRESOURCE(IDD_XXXBOX), hWnd, Xxx); と書いた (2)Xxxは以下のような関数です INT_PTR CALLBACK Xxx(HWND, UINT, WPARAM, LPARAM); コンパイルは出来たのですが、DialogBoxは増えませんでした。 どうかやり方を教えてください。
815 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:46:35 ] その手順で普通にやればできるから、コードがどこかおかしい。
816 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:02:13 ] ShowWindowしてないだけだったりして。
817 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:07:01 ] 通常はそれも不要だが。
818 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:21:55 ] モーダルで停止
819 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:26:23 ] ダイアログボックスなら「表示」と書くと思うが「追加」だとか「増えません」だとか表現している点が気になる。 ・・・見当違いのことをやろうとしているのではあるまいか?
820 名前:デフォルトの名無しさん [2009/06/06(土) 14:06:02 ] libjpegのライブラリにjpegtran機能も組み込みたいと思ってるのですが、 ソース・ヘッダファイルにjpegtranプロジェクトに入ってるもの(transupp等)を足しても、 そっちで宣言されている関数だけ、 ライブラリを呼ぶ側のアプリでリンクエラー(外部参照未解決)が出てしまいます。 その他の標準でlibjpegプロジェクト内で既に宣言されていた関数は(使えるかはともかく)エラー出ません。 ソースはIJGのではなく、VC++のプロジェクトファイルも入ってる高速化版(ソフトウェア工房α)です。 nasmも入れてあり、コンパイル自体はエラー吐くことなく成功します。 ビルドの仕組みを理解できてなくてSource/Header Files に入れるだけでは駄目っぽい以外解らず助言頂けませんでしょうか。 ただし、lib自体の容量は大きくなります。 VC++のバージョンは6.0です。Win32アプリ開発。
821 名前:デフォルトの名無しさん [2009/06/06(土) 14:36:50 ] しかし、 Vc6の開発者おおいね。。libjpegとかつかったなあ。VC6ってGDI+つかえるんだっけ。。
822 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:47:15 ] ライブラリの開発者に直接聞かないで全然関係ない掲示板で質問されてもな
823 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 18:52:55 ] >>821 使える。
824 名前:820 mailto:sage [2009/06/06(土) 19:40:49 ] ライブラリそのものは自分でビルドしてます。 また、ソースコードはほぼIJGそのままで、IJG提供のソースを、調べたnmakeでのコンパイルしても transupp等の組み込みが出来てないので、同様のエラーを吐きます。 日経ソフトウェアダウンロード からプロジェクトファイルを落として見たものの同様の状況で jpegtranに使用される関数をライブラリに組み込む事が出来ませんでした。 ただSource/Header Filesに入れるだけではライブラリ作成時にエラーが出なくとも呼び出し側でリンクエラー同じです。 bccでlibjpegライブラリを使ってjpegtranの無劣化回転処理を組み込んでいる方が居たので、 可能な事は確かなのですが・・・。(そのライブラリはVC++からでは使用できず)
825 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 20:05:58 ] すみませんひとりごとでした
826 名前:デフォルトの名無しさん [2009/06/06(土) 20:08:50 ] そこで#pragmaですよ。。
827 名前:デフォルトの名無しさん [2009/06/07(日) 07:29:11 ] Win32アプリケーションを選択してC++でプログラムを書いてるのですが、 std::cout<<message<<std::endl; とかやってもどこにもメッセージが出力されません。どうすればよいですか?
828 名前:デフォルトの名無しさん [2009/06/07(日) 08:01:24 ] AllocConsole()とかを使おうかと思ったのですが、よく分からなかったので HWNDをMessageBox()に渡して、メッセージを出すことにしました。 ありがとうございました。
829 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:41:00 ] 下のように、クラスAAのインスタンスを、メモリーに割り当てたときに。 コンストラクタとデストラクタをどうやって起動したらいいのでしょ? class AA { int i1,i2; AA(); ~AA(); } void func() { char dat[100]; AA *dat; dat = (AA *)dat; }
830 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:44:43 ] 割り当てたら勝手に実行されるんじゃないの 解放したらまた同じく
831 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:46:14 ] 上の場合、ポインターがセットされるだけなので、実行されないです。 この場合の実行の仕方を知りたいです。
832 名前:デフォルトの名無しさん [2009/06/07(日) 10:46:35 ] Win32アプリケーションとWindowsフォームアプリケーションでは、何が違いますか?
833 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:48:55 ] >>832 フォームの使用・非使用
834 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 11:46:45 ] WinMain/main
835 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:38:05 ] VisualStudio 2008 EEのVC++で公開ソースをビルドしようとしたのですが、 afxwin.hがないとエラーが出たので”Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う” を見て設定しました。そして、ビルドをしたら error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません というエラーがでます。ソースは _AFXWIN_INLINE CMenu::operator==(const CMenu& menu) const { return ((HMENU) menu) == m_hMenu; } _AFXWIN_INLINE CMenu::operator!=(const CMenu& menu) const { return ((HMENU) menu) != m_hMenu; } _AFXWIN_INLINE HMENU CMenu::GetSafeHmenu() const { ASSERT(this == NULL || m_hMenu == NULL || ::IsMenu(m_hMenu)); return this == NULL ? NULL : m_hMenu; } となっており、2行目と4行目でエラーがでます。 どう書き換えればエラーが直るでしょうか。
836 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:45:37 ] MFCはEEじゃ使えないからダメ。
837 名前:835 mailto:sage [2009/06/07(日) 13:03:46 ] >>836 ということはソースを修正しても無駄ということですね。ありがとうございました。
838 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:57:38 ] >>829 の質問別スレで聞いて見ます。
839 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:10:05 ] 実体がないのにコンストラクタは働かない。
840 名前:デフォルトの名無しさん [2009/06/07(日) 14:53:27 ] 小生、昨日、サッカーを久しぶりにテレビ観戦して 試合後、ニュー速で試合を見て思ったことを、色々書いたら ぼっこぼこ馬鹿にされたなりよ。やっぱ小生がそこそこ偉い発言できるのはMFCしか無いと思ったなりよ。
841 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:00:06 ] DLLなど複数プロジェクトが含まれるソリューションを開発する時、 ソース内のincludeパスの指定どうしてますか? VC++の場合はProjectDirとSolutionDirの2つがデフォルトで 使えると思いますがこれの使い分けとか気にしてます?
842 名前:デフォルトの名無しさん [2009/06/08(月) 11:21:47 ] VS2008で、Cのプログラムをコンパイルするとき、CとしてコンパイルするかC++として コンパイルするかというのは、自分で決められますか?
843 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:27:48 ] できる。 IDE内ならオプションにあるべ。 コマンドラインでも指定できるし、何も指定しないと拡張子から区別される。
844 名前:デフォルトの名無しさん [2009/06/08(月) 12:40:49 ] >>843 ありがとうございます。 別ファイルにある double func(); というのをmain()から呼んでる時、main()のすぐ上でint func();という宣言があるので C++では呼び出せてたのですが、ふとこれがCだったら呼び出せてなかったっけ、と気になった ので…。
845 名前:デフォルトの名無しさん [2009/06/08(月) 14:15:29 ] ソースを書いてる時のコメントの色が見づらいので変更したいのですが色とかはどうやって変更したらいいですか?
846 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:19:03 ] ツール - オプション - 環境 - フォントおよび色
847 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:36:58 ] >>846 ありがとうございます!!
848 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:17:07 ] VC6 いまだに使ってますけど ゲーム作成にしか使わないんですがバージョンアップする必要ってあります? 値段とファイルサイズだけがバージョンアップされあまり期待できないのですが
849 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:00:50 ] >>848 VC6はもうC++対応じゃないと思った方がいい。VC6言語だと思った方がいいくらい、標準と違う。 それを踏まえると、標準C++を学びたいわけでもなく、 現状のゲーム作成で困ってないなら変えない方がいいんじゃないかな?
850 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:02:05 ] Microsoft Visual C++ 2008 Express Edition 無償で公開されているから体験してみるもよかれ!
851 名前:デフォルトの名無しさん [2009/06/08(月) 20:08:53 ] 便乗質問・・・ VC6のStandardでしこしこ アプリ作ってんだけど、 ぷろになりたいと思ってきた。その場合、Proffessional editionの方がいいのかえ?
852 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:17:07 ] VC6のサンプルプログラム見せるよりは、新しいVCのサンプルの方が可能性は高い
853 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:18:38 ] サンプル −> 自作ソフトのサンプル
854 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:21:19 ] >>850 EE版だとMFC動かないんだよね .netFrameworkは開発者のオナニーがたくさんつまった作品 オナニーたくさんやった挙句なにも便利になっていない 相変わらず細かいことをするにはいつもどおりの苦労を迫られるし 今度はやけにネットの情報が少ない
855 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:01:31 ] .NETで楽するならC#やVB.NETのような新言語でやらないとだめだ。 C++でやったら両方の悪いとこ同士が増幅されるだけ。 >>851 VC6の頃だと、Standardでは作ったものの商用利用が認められていなかった気がする。 そういう意味でProfesionalが必要だった。 あと、Stdでは最適化が使えない。 VC2005 (VC8)の辺りから、エディション問わず商用利用可能になっている。 最適化も基本的なものは全エディションで使えるし。
856 名前:デフォルトの名無しさん [2009/06/08(月) 21:05:55 ] Visual C++ Express Editionにboostを入れようとしています。 (1) boost のダウンロードwww.boost.org/ のWelcome - Download から boost_1_38_0.zip とboost-jam-3.1.17-1-ntx86.zip をダウンロード (2) boost_1_38_0.zip を展開し、内容をC:¥develop へ展開する。(他のディレクトリでも可) (3) boost-jam-3.1.12-1-ntx86.zip を展開し、bjam.exe をC:¥develop¥boost_1_38_0 へコピー (4) コマンドプロンプトを開き、ディレクトリを移動。 CD C:¥develop¥boost_1_38_0 (5) "C:¥Program Files¥Microsoft Visual Studio 9.0¥Vc¥bin¥vcvars32.bat" を実行 (6) bjam --build-type=complete msvc stage を実行 (7) Visual Studio を起動し、[ツール] > [オプション] を開き[プロジェクトおよびソリューション]>[VC++ディレ クトリ] を開く。 右上の「ディレクトリを表示するプロジェクト」で「インクルードファイル」を選び、新しい行を作って "C:¥develop¥boost_1_38_0" を追加する。おなじく「ライブラリファイル」に"C:¥develop¥boost_1_38_0¥ stage¥lib" を追加する。 と手順どおりにしているのですが、 fatal error C1083: include ファイルを開けません。'boost/array.hpp': No such file or directory というエラーがでてコンパイルができません。 どうしたらいいですか??
857 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:17:20 ] そのエラーメッセージに書いてある通り
858 名前:デフォルトの名無しさん [2009/06/08(月) 23:39:12 ] クリティカルセクションの質問なのですが、 main()でInitializeCriticalSection()やって、その後_beginthreadex()します。 その後以下の処理を行うスレッドを100個起動させます。 EnterCriticalSection() カウンターをインクリメント LeaveCriticalSection() そして、main()関数内でWaitForMultipleObjects()で全スレッドの終了を待ちます。 WaitForMultipleObject()の直後にカウンターの数を表示させているのですが、 これが100になりません。(95とか55とか) クリティカルセクションの使い方が間違ってるのでしょうか?
859 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:43:40 ] カウントの処理に問題があるのでは?
860 名前:デフォルトの名無しさん [2009/06/08(月) 23:58:22 ] WaitForMultipleObject()が全スレッドの終了まで待っていないようです。
861 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:12:24 ] >>858 それ以前に、そのスレッドちゃんと全部生成されていることを確認したか?
862 名前:デフォルトの名無しさん [2009/06/09(火) 00:21:34 ] >>861 確認しました。やっぱりWaitForMultipleObject()がスレッドの完了待ちをしてませんでした。 WaitForMultipleObjects(100, hThreads, TRUE, INFINITE); この形で呼び出していて、戻り値は-1でした。
863 名前:デフォルトの名無しさん [2009/06/09(火) 00:31:03 ] とりあえず自己解決しました。 main()の最後に while(count!=100) ; みたいなループを入れると動きました。なんとか動きそうです。
864 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:39:48 ] WaitForMultipleObject の第一パラメタ(最大ハンドル数)は 64 まで
865 名前:デフォルトの名無しさん [2009/06/09(火) 00:50:56 ] >>864 ええーっ、64ですか? そうか、MAXIMUM_WAIT_OBJECTSですか… じゃあ65以上のスレッドを待ちたい時はどうすんのかと思ってMSDN見たら、 64個のスレッドを待つまとめスレッドを作って、そのスレッドを待つようにしろ、 と書いてました。そんなの今からかけないよ〜 でもありがとうございました。
866 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:26:07 ] スレッドが100個とかどういうとき必要になるんだろう。
867 名前:デフォルトの名無しさん [2009/06/09(火) 10:37:05 ] HTTPサーバみたいなサーバプロセスを書いているのですが、コネクションが来るたびに スレッドを生成してWorker Threadパターンでやってます。今朝は100個のコネクション が一挙にキタ場合のテストをやろうとして、ああなってしまいました。
868 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:53:55 ] アルゴリズムってなんですか? 分かりやすい例えを教えてください
869 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:17:33 ] >>868 アルゴリズムすなわち解法 問題と答えをつなぐものがアルゴリズム。 たとえば「1〜10の総和はいくら」という問題に Aさんは 1+2+3+4+5+6+7+8+9+10 Bさんは 11×5 と考えるだろう。 Aさんの解法もBさんの解法も「1〜10の総和はいくら」の答えを求めるアルゴリズム。
870 名前:868 mailto:sage [2009/06/09(火) 16:19:35 ] 当然正しい答えが出なきゃならんし,有限の時間で答えが出なきゃならん。 ってかスレ違いだと思われ。
871 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:44:48 ] ググれ
872 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 19:37:15 ] MFCについて質問があります。 ダイアログ上のボタンを押下したときに、エディットボックスを追加する関数を加えたいのですが、 エディットボックスを追加する関数というのはあるのでしょうか? また、エディットボックスを追加すると同時にメンバ変数も追加することができるのでしょうか?
873 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:50:02 ] >エディットボックスを追加する関数 動的に追加するならCEdit::Create(); 動的に追加せずとも、非表示でエディットボックスを作成しておき、ボタンをクリックしたときに表示させる という手法もある。 >メンバ変数も追加することができるのでしょうか メンバ変数はあらかじめ用意しておく必要がある。
874 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:59:32 ] CObject は動的生成機能もサポートしています。これは実行時に特定のクラスのオブジェクトを作成する機能です。
875 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:03:27 ] >>873 さん ありがとうございます。
876 名前:デフォルトの名無しさん [2009/06/09(火) 22:09:10 ] 仮想関数やWindowsハンドラをオーバーライドして 基低クラスの関数を最後に呼び出すかどうかってオーバーライドする関数によって違うみたいなんだけど 初心者じゃそこらへんわからないよね(´・ω・`)
877 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:12:00 ] 「非標準の拡張機能が使用されています : 右辺値のクラスが左辺値に使用されます。」って警告ってどうやったら取れるんでしょうか めっちゃいっぱい出ていて困っています
878 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:12:48 ] >>876 何を...>>876 君、君が何を言っているのか分かんないよ
879 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:14:44 ] >>877 とりあえず再現するソースを公開しろ
880 名前:876 [2009/06/09(火) 22:17:22 ] たとえばPrecreateWindow関数をオーバーライドすると BOOL CMyNaviView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを // 修正してください。 return CView::PreCreateWindow(cs); } って、最後にreturn CView::PreCreateWindow(cs);の一文が入るんだけど、 本を読んでるとこれをreturn TRUE;に変更するとか、初心者じゃわからないよね(´・ω・`)
881 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:30:54 ] PreCreateWindow()の戻り値の意味を知っていればわかるだろ。 で、君がわからないのか、それとも他人がわからないことを嘆いているのか、どっちだ?
882 名前:876 [2009/06/09(火) 22:34:36 ] わしがわからんのじゃけど。
883 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:38:24 ] PreCreateWindow()が FALSE を返すとウィンドウは作成されない。 じゃ、CView::PreCreateWindow() はどういう時に FALSE を返すのか、オーバーライドした関数ではどうすべきか、 なんてなことを勉強していくしかないな。AAAA
884 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:39:33 ] うう、すまぬ。最後のAAAAは無視してくれ。 Shiftキーと同時に押しちまった。
885 名前:876 mailto:sage [2009/06/09(火) 22:42:07 ] わかりました。ありがとう。 道は長そうだけど、そういうふうに意識して勉強していきます。 ありがとう。
886 名前:デフォルトの名無しさん [2009/06/10(水) 01:08:54 ] _beginthreadex()で作ったWindowsのスレッドに、各スレッドごとに独自のデータを 保持させることはできますか?
887 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:18:39 ] >>886 つTlsAlloc, TlsFree 等
888 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:34:25 ] >>886 生成するスレッドにはパラメタを1つ渡せるので、スレッドの単位で作成したクラスや構造体の インスタンスアドレスを渡せば良い
889 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:29:45 ] フォルダごとコピーしてデスクトップに持ってきてデバッグしようとしたらデバッグ情報が読み込めません、シンボルが一致しません って警告が出るんですけどどういう意味ですか?
890 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:39:29 ] >>889 デバッグ情報にはソースファイル位置などがフルパスで格納されているから フォルダを移動すると正常にデバッグできない
891 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:40:12 ] >>890 じゃあ、どうすればいいんです?
892 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:42:49 ] 元の位置でデバックする
893 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:47:20 ] それじゃ意味ねええええっうぇwっうぇえww
894 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:52:43 ] シンボルサーバ作ればいいだけだろ
895 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:02:50 ] /::::::::::::::::::( /::::::::::ヾ ヽ ヽゞ::::::::::::::::ヽ /::::::::::::::::::::::::::::::::::ヾ i i ソ::::::::::::::::: ヽ /:::::::::::::::::::::::::::::::::::::ゞ ! i ゞ::::::::::::::::::ヽ /:::::::::::::::::::::──< ̄● ̄>─ | i |─< ̄● ̄>─:::::::ヽ |:::::::::::::::::::::/  ̄  ̄ ─ 、  ̄  ̄ ヽ::::::::| . |:::::::::::::::::::/ / ヽ ヽ:::::::| ..|::::::::::::::::::/ i | \:::::|ぶぁぁか .|:::::::::::::::::/ ヾ 丿 _ \::::| ..|::::::::::::::::/  ̄ ─ _ ` ─ ̄ ' ─ ̄ ヽ:::| |:::::::::::::::: ─ ー | | ー─ ̄ ヽ:| ヽ:::::::::::::: | ━ ─ ─ ー ─ - | | ─ ー ⌒ ─ | ヽ:::::::::::::| _ _─ ─││ ──/ヽ_ヽ | ヽ::::::::::::| ─ ̄ _─ ̄ ノ /─ | ヽ:::::::::::| _ _ ─  ̄ / 丿 | ヽ::::::::::| ヽ ̄ / ̄ - -_ / / / \:::::::::| \ ノ -_ _ ) / / / \:::::::| \ ノ ─' ノ / \:::::| ─ _ __ ー ' /
896 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:06:23 ] リモートログインしちゃえよ
897 名前:デフォルトの名無しさん [2009/06/12(金) 02:02:02 ] MFCのために¥15000だしたいんだけど、金無いなりよ。
898 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 02:03:59 ] >>897 学生ならドリスパでタダでVS2008プロを落とせる
899 名前:デフォルトの名無しさん [2009/06/12(金) 09:55:20 ] VC++eeなんですけど プロジェクトフォルダで、自分の書いたソースファイルとかプロジェクトの設定が書いてあるファイルなどと、 ビルドした時の中間ファイル?とかビルドファイルとフォルダを変える事ってできますか? どこでも参照できるように自鯖のサブバージョンに入れてみたんですけど、容量がどんどん肥大化していく・・・
900 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 10:01:52 ] ドリスパって何?
901 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 11:19:53 ] サッカーのチーム
902 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:22:13 ] >>899 プロジェクトのプロパティの全般カテゴリに中間ディレクトリ指定できんだろ。 んまーそこで困ってるならsvnの無視プロパティ活用しろよとは思うが。