1 名前:デフォルトの名無しさん [2006/11/29(水) 17:00:54 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 Visual C++使いが優しくコメントを返しますが、 お礼はVisual C++の布教と初心者の救済をお願いします。 ■過去スレ 前スレ pc8.2ch.net/test/read.cgi/tech/1150105712/ 前々スレ pc8.2ch.net/test/read.cgi/tech/1141087248/ ■遠い親戚スレ くだすれC++/CLI(初心者用) pc8.2ch.net/test/read.cgi/tech/1142144110/l50 ■関連ページ Visual C++ Home Page www.microsoft.com/japan/msdn/visualc/
82 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:36:51 ] >>77 デフォルトのテンプレートがインストールできてないのかな? インストールしなおしてみては
83 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 21:41:53 ] Express EditionってなんかファイルをいじらないとWin32のプロジェクトが出てこないとか言うことはなかったっけ?
84 名前:73 [2007/01/17(水) 21:46:21 ] >>82 様 ありがとうございます。やってみます。
85 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 22:51:09 ] 久々にVC++インスコしてみたら書式が変わってるんですがこれはいったい何事ですか? なんかすべての処理がヘッダファイルに書かれていてcppの方はヘッタファイルのインクルードしかないんですけど・・・ マネージコード、アンマネージコードとかいうヤツのせい? それとも.NETとかいうヤツから変わったの?
86 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 23:01:09 ] >>83 MSのサイトにそういうのあったようなきがす。 PlatformSDKあたりに。
87 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 23:21:53 ] >>85 ウィザードの種類によっては、cppファイルの生成とかいうオプションがあったと思うよ。
88 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 02:54:45 ] >>87 だから、それで生成したcppファイルが・・
89 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 03:08:11 ] よーわからん、クラスのプロパティ出してメッセージ選ぶとハンドラが作成される。 ってそういう話でまくて?
90 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 06:36:05 ] どーせVC++がVC#っぽくなってるってことだろう
91 名前:73 [2007/01/18(木) 17:11:06 ] たびたびすいません、>>82 様のいうとおりやったのですが、document and settingなどと書かれたものが 有効な win32アプリケーションではありませんとでました。 どうしたらよろしいですか?市販のVisual C++ 2005 Express Editionを買えば できるでしょうか?
92 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 19:39:13 ] >>91 ログ読まずにいきなり回答してみる こういうことで合ってる? ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
93 名前:73 [2007/01/19(金) 12:57:22 ] >>92 様どんレスですいません、ありがとうございます やってみます
94 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:02:17 ] エディットボックスに入力した日本語を、ボタンを押すとtestという 関数に取り込みたいのですが下のようにしてみたんですがうまくいきません。 どのように変更すれば取り込めるのか教えていただけないでしょうか? よろしくお願いします。 char ss; m_edit.GetWindowText(ss); void test(char *ss) { while(*ss != '\0'){ ・・・・処理・・・ ss++; } }
95 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:21:15 ] 何がどううまくいかないのか説明しろ。話はそれからだ。
96 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 15:45:46 BE:23292162-2BP(222)] >char ss; >m_edit.GetWindowText(ss); コンパイル通らん。
97 名前:94 mailto:sage [2007/01/19(金) 16:38:11 ] すいませんchar ss;じゃなくて、CString ss;でした。 エディットボックスにコントロール変数m_editをつくって、 ssに取り込んで、そのデータをtestにとりこんで処理をしたいと考えています。 *ssでよめるようにするには、エディットボックスからどのようにとればいいの かわかりません。よろしくお願いします。
98 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:59:42 ] void test(LPCTSTR ss)で受け取る
99 名前:デフォルトの名無しさん [2007/01/20(土) 16:26:02 ] MFCのダイアログベースのプログラムからスレッドを生成した場合、 生成した子スレッドに対してダイアログの方は親スレッドと考えて良いのでしょうか? つまりスレッドの識別子などがあるのでしょうか?
100 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 19:58:56 ] スレッド間に親子関係は無い。 ライブラリの初期化・終了処理を考慮しなければ、全て同等。 スレッドの識別子は両方にある。
101 名前:デフォルトの名無しさん [2007/01/20(土) 21:38:38 ] ifの条件が増えたとき、下のどちらの記載が望ましいのでしょうか? if ( (条件1)&&(条件2)&&(条件3)&&(条件4)&&(条件5)&&(条件6) ){ ; } if ( (条件1)&&(条件2) ){ if ( (条件3)&&(条件4) ){ if ( (条件5)&&(条件6) ){ ; } } }
102 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 21:45:22 ] >>101 スレ違い
103 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 21:51:11 ] >>101 関数化しろ
104 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 23:24:15 ] >>101 どっちでもいいけど自分なら前者で書くかな。 条件部分が長すぎて画面からはみ出るなら適度に改行したり。 if((条件1)&&(条件2)&& (条件3)&&(条件4)&& (条件5)&&(条件6)){ ; }
105 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:55:25 ] >>100 返信ありがとうございます。 では、生成されたスレッドからダイアログの方へメッセージを投げたい場合は どうすればいいのでしょうか? スレッドを生成する際に引数としてダイアログのスレッドIDを渡す、など必要になるのでしょうか?
106 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 19:48:13 ] ダイアログなんだからウィンドウハンドルでも渡しておけばいいのでは?
107 名前:101 mailto:sage [2007/01/21(日) 20:41:18 ] >>103-104 トンクス ifを分割すれば余分な条件を弾けて得かなって思ったので質問しました。 クラス内で関数化するのが一般的かもしれませんが、 if() の括弧の中を全て#defineに入れてみようと思います。
108 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 21:25:49 ] スレ違い
109 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:24:17 ] 実行ファイルにjpgなどを格納することはできますか? 使用しているのはVC++.net2003です。
110 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:34:54 ] >>107 >103
111 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:36:46 ] >>109 できます。この板のどこかのスレでそんな話題を見かけました。
112 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:36:56 ] fgets や std::getline を使わずにテキストファイルからデータを一行ずつ読み込みたいのですが、 ReadFile で改行文字か EOF が来るまで1バイトずつ読み込んでバッファに取り込むという方法しか 思いつきません。もっといい方法ってありますか? ReadFile でファイルを全部読み込んでから、一行毎に分解するという方法は出来れば避けたいです。 扱いたいのは200万行以上あるファイルです。 いまだにVC6
113 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 17:54:39 ] >もっといい方法ってありますか? あなたにとって、どういうものが良いものなのか説明してください。
114 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:11:46 ] >>112 素直にfgets()やstd::getline()を使うことにするのが、「もっといい方法」だと思います。
115 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:34:12 ] ならメモリマップトファイルはどうだ。
116 名前:112 mailto:sage [2007/01/22(月) 19:16:40 ] 回答ありがとうございます。 >>113-114 std::getline() でやってたのですが、処理に時間が掛かるのでどうにかならないかなと思いました。 根拠はありませんが、 API で同様の機能が提供されていればもっと効率よく出来そうだとも思ったのですが どうやら無さそうですね。 素直に std::getline() のままで処理内容を見直すことにします。 >>115 CreateFileMapping() とMapViewOfFile() でファイルをメモリ空間にマップできるんですね。 これはこれで面白そうなので別件で試してみようと思います。
117 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 19:41:58 ] 全部読む必要があれば結局同じことだけどな
118 名前:名無しさん(66) mailto:sage [2007/01/22(月) 21:27:44 ] 待ち状態のまま終わらないプログラムの int nRet = WaitForMultipleObjects(NUM_OF_THREADS, hThread, TRUE, INFINITE); このWaitForMultipleObjectsを終了させるか、 INFINITEYのまま何かを読み込んだらタイムアウト、 のような動作はできるものなのでしょうか? >>69 さんのsetjmp/longjmpを使ってみたのですが、 WaitForMultipleObjectsの後ろにジャンプすると、何故か ジャンプした後にプログラムが勝手に終了してしまいます。
119 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:38:05 ] WaitForMultipleObjectsExとQueueUserAPCという手がなくはないが、 なんかお前がいきあたりばったりで使いそうで嫌だ。
120 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:52:50 ] >>118 スレッドのいずれかが終了すればWaitFor....から制御が返る。 戻り値から終了したスレッドを特定できるので、それ以外のスレッドを終了させればOK。 66でreturnしても駄目だったと書いてるけど、何が駄目だったのか不明。
121 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:55:27 ] あ、第3パラメタTRUEか。120じゃだめです。
122 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 21:57:12 ] FALSEにして120すれば良い気もする
123 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:25:46 ] でも結局>>67 なんだよな……。
124 名前:デフォルトの名無しさん [2007/01/23(火) 01:05:12 ] Visual C++ 2005 Expressエディションでまずは Hello Worldからと思い 新規プロジェクトでCLRコンソールアプリケーションを選びました。 そうしたら、もうビルドするだけになってるんですね。 まぁこれはいいんですが、このときこんな感じで自動生成されたんですが、 -- #include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World"); return 0; } -- ここで int main(array<System::String ^> ^args) の部分の意味がさっぱりわかりません。 多分引数を受け取る?配列?な気がしますが、良く分かりません。 C言語でやったように int main( int argc , char *argv[] ) パラメタを処理できることが出来るのは判ったのですが、やっぱり int main(array<System::String ^> ^args) の意味と具体的なパラメタの処理方法が知りたいです。 よろしくお願いします。
125 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:28:37 ] >>124 くだすれC++/CLI(初心者用) pc10.2ch.net/test/read.cgi/tech/1142144110/l50 普通のがよければWin32コンソールアプリを選べ
126 名前:デフォルトの名無しさん [2007/01/23(火) 01:37:22 ] >>125 Visual Studio にインストールされたテンプレートってのが表示されて その中に Win32コンソールアプリってのはありません あるのは クラスライブラリ CLRコンソールアプリケーション 空のCLRプロジェクト Windowsフォームアプリケーション の4つだけです。 それと知りたいのは、 int main(array<System::String ^> ^args) の意味するところです。 できれば解説願えませんでしょうか? あっ、くだすれC++/CLI(初心者用)で聞くべき質問ってことですか? すみません、良く分かってなくて。
127 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:47:31 ] MSDN読めよ、糞が。 とか言いたくなっちゃうから、きちんとマニュアルは読もうな。 C++/CLIで探せばすぐ判るから。
128 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:13:59 ] MSは初心者にはC#やVBを推奨してるから VCは使いにくい面があるかもしれない。 特に目的が決まってないならC#やVBをお勧めする。
129 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 09:33:31 ] PlatformSDK入れてMSDNの該当ページ(>>92 )に従え
130 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 21:23:48 ] >>126 そりゃ左でCLRを選んでるからだろ Win32選んでみな
131 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 15:29:36 ] Visual C++だとstring型のハンドルがありますが、 C++のstringは使えないでしょうか? Visual C++はC++の拡張と聞きましたが、C++が分かっていても、 Visual C++はほとんど一から型とかライブラリの使い方を勉強する必要が あるのでしょうか?
132 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 22:08:59 ] 使いたければ使えばいい。
133 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 23:02:30 ] 組み込み型じゃないからな
134 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:00:37 ] VC++.NET2002で質問です。 MFCアプリケーション上でダイアログボックスを作って、 DoModal()でモーダルダイアログボックスを表示してます。 ところが、そのダイアログボックスのOnInitDialog()内で メッセージボックスAfxMessageBox( "HogeHoge");を表示すると OKで閉じた後、なぜかモードレスダイアログになってしまいます。 (ダイアログ表示中でも親ウィンドウが操作できてしまう。) これってこういう仕様なのでしょうか?
135 名前:質問者A mailto:sage [2007/01/25(木) 09:21:22 ] Visual Studio C++ Express Edition使っています。 初めてwindowsプログラムします。 猫でもわかるプログラミングのWindowsSDK編第1部の イントロダクションのsample01.cppをビルドしたんですが、 エラーが出てしまいます。 ★プロジェクトの作成方法 [ファイル]-[新規作成]-[プロジェクト] [新しいプロジェクト]ダイアログで [プロジェクトの種類]→Win32 [テンプレート]→Win32コンソールアプリケーション と選択して、 プロジェクト名(lesson)を入力して [OK]をクリック。 [Win32アプリケーションウィザード] で、 [アプリケーションの種類]→Windowsアプリケーションにチェック [追加オプション] で、 [空のプロジェクト]→チェックせず(デフォルト) [プリコンパイル済みヘッダー]→チェック(デフォルト) で、[完了]ボタンを押しました。
136 名前:質問者A mailto:sage [2007/01/25(木) 09:21:54 ] あらかじめ用意された↓をビルドすると正常終了します。 //lesson.cpp #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; }
137 名前:質問者A mailto:sage [2007/01/25(木) 09:22:33 ] ★プログラムの変更 これを猫でもわかるに変えたいんですけど、 関数名が@とAで違うので、 Aの関数名だけ@の名前(_tmain)に変えて 実行しました。 @↑ int _tmain(int argc, _TCHAR* argv[]) A猫でもわかるのサンプル int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow)
138 名前:質問者A mailto:sage [2007/01/25(木) 09:24:23 ] すると、↓のようなエラーが出てしまいました。 ★エラー内容 lesson.cpp d:\lesson\lesson\lesson.cpp(24) : error C2440: '=' : 'HGDIOBJ' から 'HBRUSH' に変換できません。 'void*' から非 'void' 型への変換には明示的なキャストが必要です。 d:\lesson\lesson\lesson.cpp(26) : error C2440: '=' : 'char [25]' から 'LPCWSTR' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 d:\lesson\lesson\lesson.cpp(40) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 d:\lesson\lesson\lesson.cpp(47) : warning C4244: 'return' : 'WPARAM' から 'int' への変換です。データが失われる可能性があります。 ビルドログは "file://d:\lesson\lesson\Debug\BuildLog.htm" に保存されました。 lesson - エラー 3、警告 1 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== プロジェクトの作成の仕方が悪いのでしょうか? 教えてください。
139 名前:質問者A mailto:sage [2007/01/25(木) 09:27:11 ] 変更後のプログラムです。(長いので分割して書きます。すみません) #include "stdafx.h" #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); char szClassNme[] = "ウィンドウクラス・ネーム";
140 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 09:51:35 ] www.kumei.ne.jp/c_lang/ ここの2005と書いてある部分を参照
141 名前:質問者A: mailto:sage [2007/01/25(木) 10:09:30 ] (「連続投稿です」と言われて書き込みが途中で止まっていました) >>140 ありがとうございます。気付きませんでした。 [VS2005の設定方法]見ました。 >次に、Win32APIを利用したWindowsアプリケーションの設定です。 >「新しいプロジェクト」では、プロジェクトの種類を「Visual C++」、テンプレートを「Win32 プロジェクト」にします。 私の環境だと「Win32 プロジェクト」がありません。 「Win32コンソールアプリケーション 」のみです。 (これってVC++2005のExpressだと無理ということでしょうか?) とりあえず「Win32コンソールアプリケーション 」として 残りはサイトに書かれている通り、 「アプリケーションウィザード」で、 アプリケーションの種類を「Windowsアプリケーション」 追加のオプションを「空のプロジェクト」 にしました。 しかし、>>138 と同じエラーがでてしまいました。
142 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 10:58:36 ] >>141 プロジェクトのプロパティの「全般」に文字コードの指定があるからMBCSに変更。 24行と47行のは明示的にキャストしとけ。 にしても、初心者が見る箇所に Win16を引き摺ってるようなコードを放置してあるのは良くないな。
143 名前:質問者A: mailto:sage [2007/01/25(木) 11:19:00 ] >>142 >プロジェクトのプロパティの「全般」に文字コードの指定があるからMBCSに変更。 できました!ありがとうございます。
144 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:28:52 ] OS:WindowsXP SP2 環境:VS2005 MFC使用 教えていただきたいことがあります イミディエイトウィンドウにメモリリーク時の情報が表示されますが、発生したファイル名 を表示したいのですがどのようにしたらよいのでしょうか? MFCでは標準でDEBUG_NEWが定義されており、これでファイル名も表示されるという情報を ネットでよく見かけるのです。この情報に間違いがなければデフォルトで表示されるはずなのですが・・。 今のアウトプットウィンドウの表示 Detected memory leaks! Dumping objects -> {15027} normal block at 0x01322E30, 346 bytes long. Data: <5 9 9 9 E Q> 35 00 39 00 39 00 39 00 00 00 45 00 00 00 E6 51 Object dump complete. おそらくこうなるであろうファイル名付属のアウトプットウィンドウの表示 Dumping objects -> C:\MyProjects\TestProt\Test.cpp(17) : {16} normal block at 0x00780EC0, 4 bytes long. Data: < > CD CD CD CD Object dump complete. よろしくお願いいたします。
145 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:49:44 ] その質問に答えようと思ったら 適当なプロジェクト作ってわざとメモリリークさせて結果を見てみるだけだから 自分でやってみればいい
146 名前:144 mailto:sage [2007/01/25(木) 14:04:43 ] >>145 ためしに新規のプロジェクトを作成し、ってわざとメモリリークさせてみたところ、 ファイル名が表示されていました。 DLL参照したり、ソースファイルとプロジェクトのディレクトリを別々にしたりしてるんで それが原因なのでしょうか?
147 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 17:13:19 ] >>135 猫でもわかるなら、VS2005サンプルプログラムのところも見てみろよ。
148 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:16:50 ] >>147 は死ね このスレは「くだすれVisual C++(超初心者用)その4」だぞ 馬鹿か貴様
149 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:18:56 ] >>135 そのコードのURL書いてみて
150 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:32:31 ] 超初心者には147程度の記述では不親切だったか?
151 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:40:35 ] 135の件は142の答えで解決済み。
152 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:15:33 ] Visualstudio.NET2003使ってる者ですが プロジェクトを作って 新しい項目の追加を選択して a.cとか適当名前いれて ソースファイルに何も書き込まずに デバッグ無しで開始を選択すると エラーが発生して デバッグを開始出来ません 指定されたファイルが見つかりませんのウインドウと error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 _WinMainCRTStartup で参照されました。 fatal error LNK1120: 外部参照 1 が未解決です。 とでます。 どうしたらよいのでしょうか・・ さっぱり見当が付かないんですが。
153 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:33:04 ] main(wmain/_tmain)関数から始まるプログラムを書きたければ、Win32コンソールプロジェクトを作れ。 そうでなければWinMain(wWinMain/_tWinMain)関数を書け。
154 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:55:53 ] プログラム以前のレベルですが2点教えてください。 10年近く前までC(++ではない)やってた者ですが、 突然ゲーム作りがしたくなりまして 一から勉強し直しのつもりでVisual C++を買おうと思ってるんです。 でも何を買ったらいいのかさっぱり判りません! 1.VC++.NET2003ってStandard版しかないのですか? Professionalとか、上位版が出ていたりするのですか? 2.VC++.NET2003って今でも店頭で入手できるんでしょうか? 2005を買ってダウングレード、みたいな方法もできるのですか? その場合には2005のどれを買えばいいのですか? とりあえずDirectX関連の本を買って読んでるんですが その本がC++.NET2003までしか対応していないのです。 ↓漏れが買った本 ttp://www.kohgakusha.co.jp/books/detail/978-4-7775-1043-6
155 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:06:33 ] >>154 2003を買う必要は全くありません。 2055EEを入手するか、それで飽き足らなければ2005PRO辺りを買えば宜しいかと。
156 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:13:21 ] 2005EEはフリーだよ
157 名前:154 mailto:sage [2007/01/28(日) 15:31:30 ] >>155-156 ありがとう あえて2003を買おうとしているのには訳があって この本にソースとかプロジェクトファイル?が収録した CD-ROMが付属してあるわけですが、 2003用のファイルを2005の環境で開いたら、 何かと細かいエラーとか警告とか、いろいろ出てきそうな 気がするんです。(問題ない?) いちばん恐れているのは、2005の環境で変なエラーがいっぱい出て、 それを直すためにコンパイラの設定とかソースの修正とか いろいろ見直してるうちに結局ワケわかんなくなっちゃって、 しかもそれでもなお直らず、本当に勉強したい部分にまったく 触れられないまま、挫折してしまうことです。 ・・・すいません、実はVC6の頃に一度これで挫折してるんですorz とりあえず2003の環境なら、あまり深く考えずに 本に書いてある通り操作したら、一通りサンプルもうまく動いて 勉強に専念できそう、と考えたんです。 本読んでて、昔と今じゃあ技術が全然違う事だけはよくわかったので、 初心に帰ってがんばろうと思ってます 長文スマソ
158 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:35:56 ] 10年近く前までCをやっていたと言い張る人間にしては、随分と情けない話だ。
159 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:55:02 ] 古本屋で買って来たVC1の本でもほとんど同じだったよ 昔の方が機能が少なくてわかりやすいという点もあるけど
160 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 02:32:23 ] 途中で挫折するのは基本ができてないくせに応用したがるからじゃまいか
161 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 11:13:42 ] そういうこと。 順調に進歩する人と いつまでたっても進歩しない人と 途中で投げ出す人を見てきたが、 性格というか気分というか、 そういうが現れてるような気がした。
162 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:21:12 ] >>157 まあVC++ 2005はセキュリティ関連で色々と細かい警告を出すようになったが、それは有名だしググれば対処法はすぐ見つかる。 その程度のプログラムならそのほかには、特にVC++ 2005に持っていったからといってエラーになるということはないと思う。 せいぜいSDKを入れていない、入れたけどVC++で設定し忘れることに気を付けろというくらいかな。
163 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 00:06:14 ] もう一つ、文字コードの違いにも注意。
164 名前:デフォルトの名無しさん [2007/01/30(火) 00:08:27 ] 10年前ってオレ学生だな DOSのBorlandCと窓のC++習ってたけど 似たような事やるにしても DOSベースか窓ベースかで難易度に死ぬほど差を感じた で、その頃C++Builderとか出てきたけど あれはMSVCとは比べもんにならんぐらい簡単で驚いた
165 名前:デフォルトの名無しさん [2007/01/30(火) 00:43:43 ] 失礼します。 今日C++をはじめてみた者です。アホらしい質問かもしれませんがお願いします。 以下のプログラムについて質問です。 #include <iostream> using namespace std; class Glass {int nakami; //水の量 public: Glass(int x) : nakami(x){} //引数を取るコンストラクタ //ユーザかプログラマに渡される値(xで表される)をnakamiに格納 void dasu(int); //水を出す関数 }; void Glass::dasu(int x){ if(nakami >= x){ nakami -= x; cout<< "水を出しました。" << endl; cout<< "現在のコップの中身は" << nakami << "です。" <<endl; } else{cout<< "そんなに水がありません。" <<endl; cout<< "現在コップの中には" << nakami << "入っているだけです。" <<endl; } } int main() {int x; //整数の「いれもの」xの定義。下のcinの前ならどこにあってもよいのです。 cout << "コップを生成します。どれだけ水をいれるか入力してください。" << endl; cin >> x; Glass glass(x); //引数を取るコンストラクタが呼び出され、 //水がxだけ入ったglassという名のコップが生成される cout << "さあ、glassから水を出します。いくら出しますか。入力してください。" <<endl; cin >> x; //上のxを使いまわしている glass.dasu(x); cout<<"終了"<<endl; } これは、とある(おそらく有名な?)C++入門ページの所からの引用なんですが、 なぜ、変数のxを使いまわすことができるのかわかりません。 一回目に指定した物がnakamiに入って、二回目に指定した物がdasu量になるなんて、 そんな都合のいいようになるわけが・・・と思ったら普通になったわけですが、どうなってるんでしょうか?
166 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 01:02:34 ] >>165 何が聞きたいか分からん・・・ たとえば、 x=5; cout << x; x=10; cout << x; これでも x を2回使いまわしてることになるが(1回目は1"5"、2回目は "10" が出力される) 何か疑問があるか?
167 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 01:09:00 ] >>166 あーーーーーー、簡単な形で見ると、わかりました。 つまり、cinでユーザーがxに入力した値はそのすぐ下にあるxに 反映されると言うわけ・・・かな? いや、そうですね。 解決しました。ありがとうございます。
168 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 06:17:17 ] >>167 今更どうでもいいけど、ここはVCのスレだから、どうせならC++初心者のスレに逝けばよかったのに。
169 名前:デフォルトの名無しさん [2007/01/30(火) 12:26:49 ] foobar2000のプラグインを作ってみたいんだけど、 当方、組込み系のプログラムが専門で、Windowsのプログラムは未経験です。 VisualC++を使ってみようかと思ってるんですが、Foobar2000のプラグイン開発って ExpressEditionでもできるの?
170 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 12:31:16 ] 超初心者とかいう以前の問題かもしれないけど、教えてください。 ttp://www.imgup.org/iup324420.jpg このOrchisのブラウザ→firefox.exeの部分はなんていう名称でしょうか? Orchisではサブメニューとなってますが、VC++でいうには? マウスポインタが来ると展開されるもの…というか…メニューバーとも違いますし…
171 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 16:04:29 ] フラッシュ板かこっちか迷いましたがプログラム側で起動すると思ったのでこちらに書きます インターフェイスをswfにしたいんですがプログラム側ではどういう処理が必要ですか? .exe起動→swf起動→swfをウィンドウに貼り付け 今ここで行き詰ってます よろしくお願いします
172 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 16:37:24 ] さあ?
173 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:38:54 ] pc10.2ch.net/test/read.cgi/tech/1153542424/785-786 このような状態なんですがどうすればいいんですか?
174 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:45:41 ] >>173 プロジェクト作った?
175 名前:173 mailto:sage [2007/01/30(火) 18:32:03 ] 今プロジェクト作成に気をつけながらやってみたらうまく行きました 朝のやつは何かおかしかったみたいです。ありがとうございました
176 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 23:23:54 ] openfiles.exeのように、 ロックを取得しているプロセス名を取得する方法ってどんなやり方がありますかね?
177 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 01:16:18 ] includeファイルの中身を見ても仕組みがよくわからないんですが インクルードファイルの機能を見るにはどうすればいいですか? ヘルプを見ましたがいまいちよくわかりませんでした・・・ 何かよい検索方法があれば教えてください よろしくお願いします
178 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 19:38:21 ] もう少し具体的に書いてくれ 普通は、この機能を使うには どのヘッダファイルをインクルードすればいいのかを 調べるから順番が違って参考になる答えがだせるかわからんけど
179 名前:デフォルトの名無しさん [2007/01/31(水) 23:01:33 ] タブ(CTabCtrl)を使ったプログラムを作ったのですが、タブ内の処理(他クラス・チャイルド)と親クラス(?)で変数を共有する方法を教えてください。 親クラスの変数をタブのクラスで参照できれば良いです。 また、親クラスからあるトリガで子クラスの表示処理を走らせたいのですが、子クラスを起こすor親クラスから直接描画できますか? よろしくお願いいたします。
180 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 23:06:16 ] スルー
181 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 00:12:34 ] >>179 正直言っている意味がわからんのだが、 参照できる親クラスメンバは、子クラスからならばprotectedかpublic、 継承関係にないならばpublicのみだぞ。
182 名前:デフォルトの名無しさん [2007/02/01(木) 04:52:51 ] 親ってことは、CWnd::GetParent()か?