1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
273 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:20:30 ] >>270 それだけの用途なら、そんな滓みたいなテンプレート関数作る必要なんてさらさらないじゃん。 A a = {0}で充分。
274 名前:270 mailto:sage [2008/05/30(金) 13:52:27 ] >>273 A a = {0} なんて書き方があったんですか。ありがとうございます。 わざわざ関数呼ばずとも、こちらを使った方が断然良いですね。
275 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:09:04 ] CHAR chStr[128]; wsprintf(chStr , "インスタンスハンドル : %d" , hInstance); MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK); wisdom.sakura.ne.jp/system/winapi/win32/win5.html これやると 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 っていわれるんだけど・・。なんか昔やってたソースを2008でやろうとしても同様にエラーがでる・・。 関数にcharのlong pointerの引数があったらそこに単純に"abc"ってやってもpointerわたしてるんだよね?
276 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:27:35 ] 作者じゃないから TCHAR じゃなくて CHAR を使う意図がわからない 下の方ではTCHAR 使ってるし
277 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:31:29 ] だからそんな間違いや過去の遺物だらけのサイトで勉強しちゃダメだって。
278 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:57:13 ] 初心者には良いか悪いか分からないし(´・ω・)
279 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:43:44 ] VC++ 2008で、windowsフォームアプリケーションのスケルトンを作成したところ、 LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM){ } みたいなメインループ部分が見当たりません。 メインループさせたい場合、どのように書けばよいですか?
280 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:46:47 ] とりあえず、.NET Frameworkについて勉強しようか。
281 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:59:23 ] >>279 Win32アプリケーションのプロジェクトを作ればいいと思うよ。
282 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:07:50 ] charとかLPSTRとかstrcmpとかstrcatとか_atoi_sとか C#から入ってきたので文字列周りの処理が死ぬほどムズイ 文字列処理に特化して説明してるHPとかありませんか
283 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:12:31 ] ソース読んでデバッガでトレースすれば理解できるよ
284 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:41:49 ] lexical_castで。
285 名前:デフォルトの名無しさん [2008/05/31(土) 00:34:25 ] VBAの処理時間短縮のためVC++でDLLを作って処理させようと思ってます。 VC++はいじったことないのでお勧めの書籍あるいはURL等ありましたら 教えて貰えませんか。
286 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 00:42:18 ] >>285 とりあえず本屋で適当に選んできなよ
287 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 07:57:34 ] >>282 std::stringを使えばいい
288 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:49:37 ] >>279 CLR使わなきゃいい
289 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 12:33:09 ] リソースキットツールってのは必要なの?
290 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:31:59 ] gccの拡張機能のweakシンボルと同等のことを VCでするにはどうすればよいでしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:13:16 ] 2008なんですがコマンドラインからの引数を受け取って 動作をデバッグするにはどうしたらいいんでしょう? 具体的には int main( int argc, char** argv ){ の引数をいろいろ変えながらデバッグしたいんですが・・・。
292 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:16:26 ] と、思ったんですが、すごい勢いで解決しました。 すごいよMSDNむすどんむすどん。
293 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:01:16 ] Thumb.dbのフォーマットを解説してるサイトとかって存在しますか?
294 名前:デフォルトの名無しさん [2008/06/01(日) 23:59:57 ] VC++ 2005 でsprintfを使うと警告が出るのですが。 sprintf(msg1,"%d:%s",no,str); 警告 1 warning C4996: 'sprintf' が古い形式として宣言されました。 c:\_将棋\fj-sai\fai001\fai001\メッセージ送信1.cpp 33 この警告を出さなくする方法ありませんか?
295 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:07:29 ] 日本語ファイル名かよw
296 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:14:43 ] >>294 #pragmaで抑制できたはず。 詳しくはググれ。
297 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:15:09 ] >>294 sprintfを使わずに、boost::formatを使う。
298 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:21:24 ] >>296 出来ました.ありがとうございます。 >>297 調べてみます。ありがとうございました。
299 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:42:52 ] >>291
300 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:47:04 ] >>291 メニュー[プロジェクト] -> プロパティ -> デバッグ -> コマンド引数 を変更すればおkなはず。 面倒なときはイリーガルだけど、 #ifdef DEBUG char* argv_[2] = { "application", "" }; argc = 2; argv = argv_; #endif みたいにでばっぐしてみればどう?
301 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 06:42:55 ] >>292
302 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:12:08 ] >>299 できるよ。 以上。 はい、次。
303 名前:MFC始めて2日目 [2008/06/02(月) 10:42:54 ] ファイルの読み込みをやろうとして void CDeepPurpleDoc::Serialize(CArchive& ar) { CString ss; // CEditView は、すべてのシリアル化を処理するエディット コントロールを含んでいます。 reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar); if(ar.IsStoring()) { ar << ss; } else { ar >> ss; } } 既存のテキストファイルを開こうとしたら 予期しないファイル形式 というエラーが出た。 シリアライズってなんだ?
304 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:12:43 ] ttp://www.vipper.org/vip833994.jpg VC++2008で、BとCの下のスピンボタンの値を足し算して、Aの下の部分に表示したいんですが どのように記述すれば値を取得して計算・表示できるのでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:21:03 ] スピンボタンの値を取得するサンプルならそこらじゅうにあるだろ
306 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:37:34 ] >>304 Bの下、Cの下、それぞれのスピンボタンの値を取得し、それらを加算してから文字列に変換し、 Aの下に直接書き込むか或いはAの下に配置したスタティックテキストを書き換えれば宜しい。
307 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:37:05 ] シリアライズってのは、「専用形式」で「なるべく簡単に」 オブジェクトを保存・読み込みする、みたいなコンセプト。 そこいらにあるファイルをデシリアライズするのは大変。
308 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:28:04 ] >>271 遅くなりましたが、今、無事できました! コンパイルもリンクもうまくいき、 ちゃんとdll内の関数も呼び出せました! 本当に、ありがとうございました。
309 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:41:31 ] CStringってすごいな。これを使えば2バイト文字の扱いが楽だな。 これはMFCなのか、ATLなのか。
310 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:57:20 ] 今は共用になってる
311 名前:MFC始めて3日目 [2008/06/04(水) 14:32:28 ] void CDeepPurpleDoc::Serialize(CArchive& ar) { reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar); BYTE* pByteBuff; CEditView* pEditView = ((CEditView*)m_viewList.GetHead()); if(ar.IsStoring()) { CFile* pFile = ar.GetFile(); UINT size = (pEditView->GetEditCtrl()).GetWindowTextLengthA(); pByteBuff = new BYTE[size + 1]; UINT len = (pEditView->GetEditCtrl()).GetWindowTextA((LPTSTR)pByteBuff,size + 1); pByteBuff[len] = 0; pFile->Write(pByteBuff,len); } else { } delete pByteBuff; } とやってファイルに書き込むと2回書き込まれる。 MFCがなにかやってるのか。
312 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:42:10 ] SerializeRaw したあと同じものを自分でも書いてんの?
313 名前:MFC始めて3日目 [2008/06/04(水) 15:07:56 ] SerializeRawの1行を削除したらエラーになった。 (ソースコードの else の行に矢印がついてプログラムがストップ)
314 名前:MFC始めて3日目 [2008/06/04(水) 15:16:44 ] うまくいった。 (313 はデバッグの機能が働いただけだった) >>307 >>312 ありがとう。
315 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:30:51 ] VC++使い始めて間もないのですが、質問させてください 現在MSVC++2005ProのMFCを用いてソフトを作ろうと考えております 一次元での温度分布をグラフィック表示するものを作ろうと考えていて 物体の二点の温度を入力した際に、その間を一次関数的に温度が増減すると仮定した上で その温度分布をモノクロの色の濃さで表現するようなものを作りたいと思っています このようなグラデーション表示を描画するためにはどのようにすればよいのでしょうか? よろしくお願いいたします。
316 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:58:18 ] static void CALLBACK TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2){} の中で、同クラス内のフィールドを参照したい場合どうすればいいの? ふつーに参照しようとすると、 関数呼び出しには引数リストがありません。 って言われるんだけど・・・
317 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:57:54 ] 非staticメンバにアクセスしたいなら、クラスのインスタンスをどうにかして得る。
318 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:17:41 ] そのためのDWORD dw1とDWORD dw2
319 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:01:21 ] 使用環境VC++2008 Expressで、win32コンソールアプリケーションのプロジェクトです 下記のコードをビルドして実行すると点数の表示が-184563みたいに変な数字になってしまいます どうすればちゃんとしたのを作れるでしょうか? Visual Studio 2008 コマンドプロンプトからコンパイルすれば思ったとおりの結果になります #include<stdio.h> int main(void) { int score; printf("点数を入力してください:"); scanf_s("%d",&score); if (score > 100) score = 100; printf("あなたの点数は %d 点です。"); return 0; }
320 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:18:11 ] printf("あなたの点数は %d 点です。",score);
321 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:58:10 ] >>320 できました ありがとうございます
322 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:10:32 ] C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/
323 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 11:29:24 ] >>317 どうやるの?
324 名前:デフォルトの名無しさん [2008/06/05(木) 20:28:29 ] CStringってATLでも使えるようになったんだ MFCじゃなくてもOkになってたとは
325 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:41:55 ] >>323 CALLBACK関数には、クッキーと呼ばれる自由に使っていいパラメータが用意されている場合が多い。そこにインスタンスのポインタを乗せて渡したりする。
326 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:13:37 ] textBoxに内部処理で得たchar型の2次元配列を表示させるにはどうしたらよいのでしょうか? textbox->text = 配列変数名 だと型がcharをstringにできないとコンパイルエラーが出てしまいます。 環境は.Net2008です。 よろしくお願いします。
327 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:19:44 ] >>326 どんな風に出したいのか詳細に決めたら、一気にプログラムを書く
328 名前:326 mailto:sage [2008/06/05(木) 22:42:30 ] 今思いついたんですけど、 ループで1文字ずつstring型変数に入れて文字列にしてからtextBoxに 入れるしかないんですかね?
329 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:56:16 ] 整形しなくてよければまとめて出せるだろ 文字列だって配列なんだし
330 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:58:38 ] そもそもなんで二次元配列なんだよ
331 名前:326 mailto:sage [2008/06/06(金) 01:07:32 ] 読み込むデータが最大64個で 4ビット区切りの16進数が12個並んでるからです。 EE000FF00002みたいな。 それをテキストボックスに1行ごとに表示させたいんです。
332 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:02:58 ] VC++っていうよりも、C/C++の話なのかもですが。 自作のクラスを.cpp/.hで作って、 それらのファイルをプロジェクトには追加せずに、 .hをインクルードするだけで使うことはできませんか? イメージは、stdio.hをインクルードしてprintfを使う、みたいな感じで。 ツール→オプション→VC++ディレクトリ、でパスは通してあります。 宜しくお願いします。
333 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:09:07 ] ライブラリにする
334 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 06:28:07 ] 全部hに書けばいいじゃんw
335 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 07:39:01 ] www.auction.co.jp/mem1/item/mem_itm_item.asp?LOT=1138644
336 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:29:31 ] >>332 printfと同じようにするなら>>333 のいうとおりライブラリにする ついでに、pragmaいれとけばlibのファイル名指定はいらなくなる 適切な場所にlibをおく必要はあるが。
337 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:38:52 ] VC++で作ったexeファイルをネットワークドライブに置き、 繋いである他PCから起動するとエラーが発生します。 HDDにコピーせず直接起動させるのにはどうしたら良いでしょうか? パソコン自体に設定するのではなく、ファイル自体に設定したいので よろしくお願いします。 エラー内容 問題が発生したため、.exeを終了します。 ご不便をおかけして申し訳ありません。
338 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:12:33 ] deki.psv.org/JoyToKey.htm みたいなツールを作ろうと思い、keybd_eventでキーイベントを発生させてみたのですが、 MHFでキーイベントを認識してくれません.(JoyToKeyは認識する.) どうすればよいでしょうか?
339 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:22:08 ] ここって何でも相談室だっけ?
340 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:47 ] >>333 >>336 ありがとうございます。 やっぱりライブラリにするべきなんですね。 なるべくならライブラリにはしたくなかったんですが、 とりあえずその線で行くことにします。
341 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:35:45 ] >>339 答えられるものだけ答える側が判断して答えればおkなんじゃないの?
342 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:07:01 ] 遠まわしにスレ違いを指摘してやってるだけだろ
343 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:21:30 ] MinGWにて作成したDLLをVC++にて呼び出そうと下記のようなソースをコーディングしました。 DLL作成側で生成したポインタのハンドラを呼び出し側に渡そうと 引数にて受け渡ししようとしていますが、 呼び出し側で確認をすると、ハンドラの値は0のままです。 DLL連携をすると引数受け渡しは不可能なのでしょうか? ■DLL作成側(MinGW) ●cpp extern "C" __declspec(dllexport) int __stdcall GeoOpen(char* chrLicence, char* chrGeoDBDir, char* chrNormalize, long* lngHandler) { Geo *geo = new Geo(); lngHandler = (long*)geo; return 1; } ■DLL呼び出し側(VC++) ●h typedef int (__stdcall *GEOOPEN)(char*, char*, char*, long*); ●cpp GEOOPEN geoOpen = (GEOOPEN)GetProcAddress(hGEOCODERDLL, "GeoOpen@16"); long* lngHandler; if (geoOpen != NULL) { int intRes = (*geoOpen)(chrLicence, chrGeoDBDir, chrNormalize, lngHandler); }
344 名前:デフォルトの名無しさん [2008/06/06(金) 19:59:22 ] そもそもDLL側で作成したポインタのハンドラ貰っても またDLLに渡す頃には消失されてる・・・のかな?
345 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:05:56 ] >>343 int型の値を引数で返すには、引数をint*やint&にするだろ。 それと同じで、long*型の値を引数で返すには、long**やlong*&にしないといけない。
346 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:41:03 ] >>340 プロジェクトに属するcppファイル内で使用したいcppをインクルードするという方法を ときどき使ってる。
347 名前:346 mailto:sage [2008/06/06(金) 20:42:35 ] プロジェクトに属するcppファイル内で、 使用したいcppをインクルードするという方法をときどき使ってる。 // CppIncluder.cpp #include "included.cpp"
348 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 08:20:23 ] >340 DOS時代はコンパイルだけしといて バッチファイル内のリンカのコマンドラインにobjファイル追加してた。 今はVCなのでプロジェクトに追加するだけ。
349 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:41 ] まあそのうちprintfがどこに入ってるかを知ることになるだろう
350 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:36:34 ] Visual Studio 使ってる場合で、ちょっとした言語仕様とか 確認するために簡単なプログラムを書いて試したい時、 どうしてますか?
351 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:58:15 ] コマンドラインから cl してるな。俺は。
352 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:06:16 ] テスト用に使ってるプロジェクトがある
353 名前:350 mailto:sage [2008/06/07(土) 15:31:37 ] >>351 >>352 ありがとうございます。 コマンドラインで cl することにしました。 こりゃいいですね。こういうの無いと辛いです。
354 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:15:40 ] const int size = (int)pow( (double)2, (double)10 ); int ary[size]; 上記のようなコードを書いたところ、コンパイルエラー error C2057: 定数式が必要です。 となりました。 sizeはconst指定なので問題ないように思ったのですが、 何か解決策はありますでしょうか?
355 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:40:36 ] vector じゃだめ?
356 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:46:54 ] >>354 pow
357 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:48:44 ] >>354 #define POW2_10 (1024)
358 名前:354 mailto:sage [2008/06/07(土) 19:56:24 ] そうですね。おとなしくvectorを使うことにします。 gccでは通ったのでVCでもと思ったのですが…。 ありがとうございました。
359 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:40:22 ] int main() { CoInitialize(NULL); // 内部でCOMを使うクラス COMClass cClass CoUninitialize(); return 0; } ってやった場合先にCoUninitialize();が呼ばれそうですが cClassのデストラクタでRelease()出来ますか?
360 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:44:41 ] >>358 一応言っておくが、VCではなぜダメかというと C99に対応してないので可変長配列が使えないから。
361 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:52:21 ] >>360 可変長配列が普通の配列と同じように宣言できるの? それってヤバくね?
362 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:01:18 ] >>359 int main() { class inner_ { public: inner_() { CoInitialize(NULL); } ~inner_() { CoUninstialize(); } } inner_ in; COMClass cClass; return 0; }
363 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:03:21 ] >>362 なるほど!ありがとうございます!
364 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:45:55 ] >>358 可変長配列の話じゃなくて、constつけてるのになぜ定数にならないかという話だと思う。
365 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:52:15 ] >>364 関数呼び出しは静的じゃないからな。 constexpr を待ってくれとしか。 まあ、2の累乗ならビットシフトでできるから そっちでやればいいけどね。
366 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:25:26 ] strcat(a, b); ってやると aのサイズが1で bのサイズが1を超えててもおKみたいなんだけど 勝手にaのサイズをかえてくれるってことでつか? 勝手にサイズ変えてくれるならどんなサイズでも問題ないよね? って思ってどんどんstrcatしつづけるとそのうち原因不明のエラーが で、aのサイズを増やすとエラーでなくなる
367 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:28:08 ] ? バッファを超える文字列入れると 他の変数の置いてあるメモリを破壊するぜ。
368 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 08:43:30 ] >>366 たまたまエラーにならなかっただけでしょう。
369 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 13:09:28 ] >>367 368 トンクス やっぱりそれなりのサイズを用意しないとだめですか そろそろstd::stringかCStringあたりを使うのを検討したいと思います C#からきたのでString型でたいがいのことが済んでしまう環境に慣れてて 辛いです
370 名前:366 mailto:sage [2008/06/08(日) 16:16:52 ] 最初はつらいでしょうね。使える環境であればstd::stringの使用を勧めます。
371 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:35 ] 370は366でなく368
372 名前:デフォルトの名無しさん [2008/06/09(月) 11:01:21 ] visual studio 2005のWindowsフォームアプリケーションで作成中です。 String^ str = "12345"; この文字列を数値に変換する方法を教えていただけませんか?
373 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:24:24 ] int num = int::Parse(str) ;
374 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:10:37 ] ありがとうございます。 無事解決しました。
375 名前:デフォルトの名無しさん [2008/06/09(月) 17:20:01 ] 質問させて下さい。 以下のような2つのクラスを作成しました。 目的は clbBクラス を clsAクラス に包含させるためです。 これをコンパイルすると C2061 エラーが発生します。 どなたか問題点とその対応を御教授いただけると幸いです。 //-------------------------------- // clsA.h //-------------------------------- #include "clsB.h" class clsA { public: clsA(); virtual ~clsA(); private: clsB m_b; } //-------------------------------- // clsB.h //-------------------------------- #include "clsA.h" class clsB { public: clsB(); virtual ~clsB(); private: clsA m_a; }
376 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:23:43 ] >>375 勉強しなおすことをお勧めするよ。(マジデ)
377 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:36:24 ] 無限に巨大なクラスインスタンスを作成しようとしている人がいると、飛んで来ました。 クラスが無限ループしている…ブルブルガクガク…
378 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:00:30 ] 【初心者歓迎】C/C++室 Ver.54【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1210694402/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/
379 名前:デフォルトの名無しさん [2008/06/09(月) 19:09:09 ] 恥ずかしながら375です。 これではどうなのでしょうか?だめなら↑に行きます・・・ よろしくお願いします。 //-------------------------------- // clsA.h //-------------------------------- #include "clsB.h" class clsA { public: clsA(); virtual ~clsA(); private: clsB m_b; } //-------------------------------- // clsB.h //-------------------------------- class clsA; class clsB { public: clsB(); virtual ~clsB(); private: clsA m_a; }
380 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:19:14 ] 逝ってこい
381 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:51:18 ] >>379 スレで聞いて解決というレベルの話ではなく>>376 の言うとおりだと思うよ
382 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:38:23 ] AはBを持っていて、そのBはAを持っていて、そのAはBをもっていて、そのBは(ry
383 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:33:13 ] 関数の中で文字列の長さを取得しようとしているのですが、 どんな文字列を入れても「4」しか返ってきません。 関数は int func(char*strName, char strValue[]) の様にして、関数内で int intValue1 = (int)sizeof(strValue1); としています。 関数の外で(int)sizeof(strValue1)する分には正しい数値が得られます。 どうしたら関数内で正しい文字列の長さを取得できますでしょうか?
384 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:48:04 ] strValue1って何を指してるんだか strValueのことだとしても、関数の外(呼び出し元ってことだよね?)だろうが中だろうがsizeofでは文字列長は取れない 文字列の長さなら素直にstrlenでも噛ませばよかろう つーか、VC++じゃないよね >>378 の方が勉強になるんじゃない? ついでなので >関数の外なら正しい数値が得られる 文字列長ではなくて多分配列長(文字列長+終端文字の1バイト)が取得できていると思われる
385 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:55:43 ] >>384 ありがとうございました。 strlenでうまくいきました。 配列長が関数の引き数からは うまくとれないのは渡し方の問題 ですかね?初心者スレで検索・質問 してみます。
386 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:33:12 ] つくづく思うんだが、なぜ先に質問しようとか考えるんかね? 俺だったら自分で調べようと思うが
387 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:58:00 ] ググったりすると、それに関連した事も書いてあったりして 知りたい情報に関連する知識も得られたりするよね。
388 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:00:00 ] sizeofはコンパイル時に確定するが、 その関数じゃ実行時にしか長さわからんだろ。
389 名前:MFC始めて2週間目 [2008/06/10(火) 14:58:06 ] CEditView で Rect を指定してテキストを印刷するとき 行間値の調整はどうするの?
390 名前:デフォルトの名無しさん [2008/06/10(火) 15:08:20 ] vs2005 使ってるんですが、デバッガ変数ウィンドウで 配列の全要素を並べて表示することは出来ないのでしょうか? 変数一個一個しか確認できないので配列の全要素の値を追いたいときにすごく面倒なんです
391 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:09:47 ] 配列名だけ書いておいたら勝手にツリー表示されないか?
392 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:17:07 ] ああ勘違いしてました。 配列じゃなくて、ポインタにnewした複数個のデータの表示法でした。 某CWだとツリー表示することが出来るので、VSでも出来ないのかなと・・・
393 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:20:26 ] 最近答えたんだけど、このスレじゃなかったかな。 ウオッチ式のとこ、ポインタ,要素数 でやってみ。 p,100 とか
394 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:25:48 ] すみません。何をしろと言ってるのかわかりません
395 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:27:57 ] 自分が何やってるのか書き出してみろよ
396 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:32:08 ] >>393 言ってることがやっとわかりました。 ポインタ変数の名前の後に ,100 と追加すればいいんですね いや、ポインタ、要素数でググれってことか勘違いしました 見れました。ありがとうございます。 しかし、これってただvc使ってるだけだと気付かないですよね? ヘルプも見たんですけど、載ってなかったような・・・ こういう機能ってどこで知ったんですか?
397 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:34:10 ] オレはヘルプたどってってみつけた。
398 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:39:36 ] ありがとうございました。 自分の調査能力が足りないみたいです
399 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:45:10 ] ちょっとわかりにくい位置かもね。 この話出たの2008のスレだった。 そこで出たリンクに↓があるのでみてみて。 ttp://msdn.microsoft.com/ja-jp/library/75w45ekt.aspx
400 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:49:17 ] 書式指定のところかあ 書式指定でどうこう出来るもんだとは全然思わなかったのでスルーしてました ありがとうございました
401 名前:デフォルトの名無しさん [2008/06/10(火) 20:38:31 ] VisualC++の頂点を極めあらゆる質問に答えて下さる皆さんに質問があります。 VS2003のVC++のGDI+なんですが、 Font font = new Font(dc, &logfont); とするとフォントをインスタンス化できますけど、logfontのフォント名に "@MSゴシック" のように横に傾くフォントを指定すると、うまく指定され ないように思われます。 たとえば LOGFONT lf1, lf2; lf1.lfFaceName = "@MS ゴシック" Font* font = new Font(dc, &lf1); font->GetLogFontW(&graphics, &lf2); というように確認してみると、lf1には確かに"@MS ゴシック"がセットされて いるのに、lf2には"@"が外れて"MS ゴシック"がセットされてしまいます。 私は何を勘違いしてるでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:54:05 ] ぐぐったらサンプルいっぱい見つかるから 動くの使えばいいんじゃないか?
403 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:25:47 ] @が付くフォントと付かないフォントって何が違うんだっけ?^^;
404 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:28:47 ] @が付くと90度振られる
405 名前:401 [2008/06/11(水) 09:30:19 ] >>402 何というキーワードでググったんですか?
406 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 09:59:41 ] 名前よりも優先度の高い項目のセット忘れとか?
407 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:08:30 ] つーか、変な省略しないできちんと検証したときのコード書けよ。
408 名前:ごー [2008/06/11(水) 14:49:52 ] Visual C++ (2003) のデバッグモードで、 プログラム側からコールスタックの情報を取得することってできる? __FILE__ と __LINE__ だけでは、その場所の情報しか取れないのが不満。
409 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:34:23 ] できなきゃプログラム動いてない
410 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:33:26 ] www.codeproject.com/KB/threads/StackWalker.aspx こういう話か?
411 名前:デフォルトの名無しさん [2008/06/12(木) 22:14:37 BE:280248454-2BP(380)] class test { public: test(void){}; ~test(void) {}; }; #include <stdio.h> #include "test.h" int main() { test x = new test(); printf("Hello World! \n"); } 1>c:\documents and settings\default\my documents\visual studio 2005\projects\test\test\main.cpp(7) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'test *' (or there is no acceptable conversion) なにこれ?
412 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:16:31 ] test* x = new test(); にしろといってるんだろ
413 名前:デフォルトの名無しさん [2008/06/12(木) 22:35:32 BE:1008893489-2BP(380)] やだ! test x = new test(); にしたいびょん オペレ〜タ定義しないといけないにょ?
414 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:41:21 ] GerDlgIntの戻りがおかしい unsigned short ss = (u_short)GetDlgItemInt( hDlg, IDC_TBX, &FLG, FALSE ); と書いてるのにIDC_TBXに入力された値と違う値を返すときがある 数値が10000超えたあたりからおかしい
415 名前:デフォルトの名無しさん [2008/06/12(木) 23:26:03 BE:672595968-2BP(380)] こういうのって ありびょん? test x = *(new test());
416 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:37:06 ] >>415 だめだぴょん
417 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:58:50 ] >>414 エスパーさんの出番です
418 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:01:42 ] つーか、65535を越えるとおかしくなるんだろ。
419 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:41:21 ] >>415 #define test* Test
420 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:28:16 ] これならおk。 test &x = *(new test());
421 名前:デフォルトの名無しさん [2008/06/13(金) 22:36:17 ] >>411 test x = new test(); を test *x = new test();
422 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:41:25 ] 今ずっとttp://www.kumei.ne.jp/c_lang/intro/no_54.htmこれを読んでます。 Visual C++でやってるんですが、ライブラリのファイル?の作り方を教えてください。
423 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:52:05 ] ライブラリのファイルって? .libのプロジェクトを作りたいってのなら、 Win32のウィザードでスタティックライブラリを選ぶだけだが。
424 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:20:11 ] >>423 ごめんなさい。初心者なんで全然わかんないんです。 スタティックライブラリは選びました。プロパティでもスタティックライブラリって なってるんですが、プロジェクトのファイルの中に.libのついたついたのは Debugフォルダの中に1つだけあります。それでいいんですか? .cppのはビルトできたのですが、ライブラリってそれをどこからでも使えるってことですよね? もしかして新しいプロジェクトではそれをincludeしても使えないんですか?
425 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:03:16 ] >>424 インクルードするのはlibファイルじゃなくてヘッダ。 ライブラリに入れた関数の、プロトタイプ宣言やらなんやらのヘッダは自分で作らないと駄目。 (あるソースの関数を、別のソースから参照する時と一緒) libファイルはリンカで結合するものなんで、 VC++のIDEなら、プロジェクトの構成プロパティのリンカ→入力→追加の依存ファイルに 追加しとけばリンクしてくれる。 他にもソース中に、#pragma comment(lib, "hoge.lib") とか書く方法もある (VC++依存)。
426 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:13:34 ] 正直、自分用のプログラムをlib化する意味なんて ほとんど無いと思うんだが。
427 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:59:09 ] >>425 すいません。全くできません。上のページの次のページの #include <time.h>〜 return (day_of_week[mytime->tm_wday]); }を.cppに、int get_time(int *, int *, int *);とchar *get_date(int *, int *, int *); を.hに、プロジェクト名は1です。構成の種類はスタティックライブラリ。 そしてprivateという別の(構成の種類は実行)プロジェクトのcppに #include <stdio.h> #include "1.h"〜 return 0;}を、(hは空です)とやっている のですが、1.hをincludeできませんNo file みたいなのになるんです。 そもそもどうなるのかさえわかりません。追加の依存ファイルも候補みたいな感じで 出てきませんし、手打ちで入力してもビルドしても同じ結果です。
428 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:55:24 ] ライブラリの作り方がわからないんじゃなくて ライブラリの使い方がわからないんじゃないか?
429 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:01 ] 質問です。一応、自分でも調べてみたんですが、分からなかったので・・・ 長いので2つに分けます。申し訳ない。 /* windowsapp.h */ class CWindowsApp{ /* 中略 */ public: void Initialize(HINSTANCE,INT,char*,int,int); bool CreateWindow(); // 53行目 } /* windowsapp.cpp */ bool CWindowsApp::CreateWindow() // 48行目 { // 49行目 /* 中略 。やってる事は、WNDCLASSを作ってCreateWindowEx()を使って ウィンドウを表示させるという流れ */ } /* script.cpp */ bool initialize(){ /* 中略 */ // ウィンドウの作成。成功or失敗をそのまま返す // g_WindowsAppInstは、既述したCWindowsAppクラスのインスタンス return g_WindowsAppInst.CreateWindow(); // 76行目 }
430 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:41 ] /* エラー */ C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : error C2059: 構文エラー : 'constant' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : error C2059: 構文エラー : ',' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : error C2059: 構文エラー : ',' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2143: 構文エラー : ';' が '{' の前に必要です。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2447: グローバルスコープで中カッコ ({) が見つかりましたが、対応する関数ヘッダーがありません。 関数のオーバーロードは、引数が異なれば可能というのは調査済みだったのでやってみたら、こんなエラーが・・・ しかし、このCreateWindow()関数の名前を、CreateWndとかCreateWindowCという名前に変更したら、すんなりコンパイルしてくれました。 どうしてこのようなエラーが出るのでしょうか。オーバーロードの条件について、何か勘違いをしているのでしょうか・・・
431 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:33:59 ] >>430 CreateWindowはマクロでCreateWindowA/CreateWindowsWのどちらかになるが、 さらにCreateWindowAとWの両方ともCreateWindowExAとWを呼ぶ関数マクロになっている。 つまり、関数でないCreateWindowに多重定義は無理だから、ほかの名前にするしかない。 たとえばMFCやATLみたいにCreate()とか。
432 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:42:03 ] なるほど、そもそも関数のオーバーロードとは少し異なる原因だったのですね。 迅速な対応、ありがとうございました!
433 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:18:12 ] >>427 プログラミング以前にフォルダとかパスとか判ってなさそう・・・
434 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:24:59 ] >>433 すいません。 ようするにどうやったら違うプロジェクトで あるプロジェクトで作った関数を使えるようになるかってことなんですけど。
435 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:57:49 ] ソースファイルをプロジェクトに追加する。
436 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:06:25 ] >>435 つまり同プロジェクト内で作った関数のソースファイル、それを 一般化?したヘッダファイルの一対がライブラリってことですか?
437 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:13:07 ] ヘッダは何のためにあって誰がどこで使ってるかわかってる?
438 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:17:20 ] >>437 いろんなソールファイル内の関数をメインのソースで使うためのまとめ役?橋架け役? みたいな感じじゃないんですか?
439 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:21:54 ] ググれ
440 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:22:25 ] 入門書ぐらいは読め
441 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:26:20 ] スコープとか理解してるのかな?
442 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:29:17 ] www.nitoyon.com/vc/tutorial/project/build_detail.htm ビルドは何をしている? [VC++の使い方]
443 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:31:50 ] とりあえず、>>427 については、 lib と .h を使うプロジェクトのフォルダにコピーするか、 プロジェクトのプロパティの、 「追加のライブラリディレクトリ」と「追加のインクルードディレクトリ」を設定するか、 #includeと「追加のライブラリファイル」でパスまで指定するか、 好きなの選べ。 最後のは、あんまり推奨しないが・・・
444 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:00:09 ] >>439 めちゃググリましたよ 逆にヘルプでわからなくなった感じです すいません。 >>440 入門者のゲームプログラム作る本とか他にも入門書はいくつかやりました。 >>441 変数のスコープは知ってますが関数のスコープはわかってないかもしれません。 ゲームプログラムの本の経験も含めて、1つのプロジェクト内でcppとhを対にしていくつも作る、 それで各対の関数を引き出す?そしてメインで使うみたいなのはできてるんです。 要するに疑問というか想像なのは、標準ライブラリみたいにcppとhの対が見えない、タグが無いというか・・ 内部にしまわれてるというか、そうゆう状態で、どのプロジェクトでもhをincludeすれば 使えるようになる のを作るのがライブラリを作るってことではないのですか? >>442 ありがとうございます!わかりやすかったです。
445 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:10:42 ] >>443 ありがとうございます。 プロジェクトのプロパティの、「追加のライブラリディレクトリ」に今なにも入ってない状態なんですが、 参照で見ていっても条件に一致するファイルはありません。となります。 そもそもここにどうゆう拡張子のものを追加できるかもわからないので、なぜ、どんな候補が無いかも 全くわからない状態です。
446 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:28:39 ] なんで候補があるとか思うのか・・・ フォルダの指定だから、ファイルの候補は無くていいんだよ。
447 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:39:48 ] >>446 今フォルダごと追加のライブラリ ディレクトリに指定しましたが、やっぱり<1.h>をincludeできません。となります。>>427 の状態です。
448 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:52:49 ] ライブラリとインクルードは別物だし 全然別の場所に置いて使うのが普通
449 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:56:38 ] 釣りじゃないなら、 ライブラリ作成に挑戦するのは、 もうちょっとプログラミングそのものが 判ってからにした方がいいと思うよ。 個人的なライブラリなら、 別にソースファイルのコピーでも十分だし。 ちなみにヘッダをインクルード出来ないのは ちゃんと.hファイルのあるインクルードディレクトリとファイル名を指定出来て無いだけで、 ライブラリとか関係無いからね。
450 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:04:41 ] ライブラリとインクルードは全然別の場所に置いてあると考えて下さい。 たまたま同じ場所にあってもいいけど
451 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:20:10 ] >>448 >>449 >>450 みなさんありがとうございます。ライブラリからincludeしたhの関数を探し出してくる ぐらいに考えてたのですが、違うようですね。 もうちょっと総合的な本を読んでみたいと思います。
452 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:35:12 ] いや違わないけど・・ (正確には、includeした関数じゃなくて、 実際に呼び出しされてる外部関数を探し出す) 君がひっかかってるのは、それ以前の ヘッダファイルとライブラリファイルの ディレクトリ指定段階でしょ。 イロハで言えばイ以前だよw
453 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:22:51 ] >>452 >ヘッダファイルとライブラリファイルのディレクトリ指定段階 こうゆう風に言うんですね。ありがとうございます。
454 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:12:25 ] #include<1.h> と #include"1.h" の違い理解してる?
455 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:19:35 ] 高学歴の俺の意見 お前と関わるにおいて高学歴であることが何の意味もなさない(位お前とかどうでもいい) お前の前で本当の自分(頭がいいこと)でいてもメリットが無い。アホなふりしてるほうがマシ、失敗を笑いにできるから。 お前から吸収できることがないと思われてるってこと。知り合いとしての優先順位の潜在的低さがでてる。 まだ情で関わってもらえるだけ有り難いと思え。
456 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:28:35 ] コンパイラ・リンカについて勉強するべし。
457 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:32:43 ] >>454 知りませんでしたが、調べました。自作のhは""で囲むんですね。 ゲーム作りの入門本に似たようなのがあって、 ツール→オプション→ディレクトリを表示するプロジェクトで ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、 そうすると、未解決のシンボルというエラーに変わりました。
458 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:48:26 ] >ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、 ディレクトリを指定するところにファイルを追加するというのはどうかと(単なる記述ミス?)。 その関数が記述されてるソースをプロジェクトに追加するのが一番楽。 1.プロジェクト開いてる状態でソースファイルをドロップ。 2.開いたソースウィンド上で右クリック→プロジェクトへファイルの挿入。 これで出来んかな?
459 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:04:55 ] >>458 ありがとうございます。コマンドプロンプト的なので軽く見た程度 なのでディレクトリ=ファイル=フォルダぐらいな感じの理解しかないんです。 したのやり方ですがもう少し具体的に書いていただけませんでしょうか? それと既存項目の追加とは違うのでしょうか?
460 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:08:34 ] いいかげんにしろよ。
461 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:22:57 ] つーか、ゲームとか作る前にC言語とVCの使い方を習熟するのが先だよチミィ。 そのレベルで教えて君じゃ、ゲーム出来てもバグだらけで遊べんだろうよ。 何のために本やグーグル先生があると思ってるんだね? 味噌汁で顔洗って出直してこい。
462 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:52:50 ] >>461 わっかりました!みなさんいろいろありがとうございました!
463 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:57:29 ] 習熟までは行かずとも、ある程度使えれば特に問題ないんじゃね
464 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:08:19 ] >ディレクトリ=ファイル=フォルダ ダメだこりゃ。 ディレクトリ=フォルダ≠ファイル
465 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:44:33 ] ディレクトリとフォルダは違う
466 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:04:26 ] フォルダとは 【folder】 - 意味・解説 : IT用語辞典 省略 WindowsやMac OSではフォルダと呼ぶが、UNIXやMS-DOSでは同様の概念を「ディレクトリ」と呼ぶ。
467 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:11 ] Windows ではシェルから見える物がフォルダ、 シェルを通さず見える物がディレクトリと区別している。
468 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:55 ] してねーよ。
469 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:06:10 ] してるよ。
470 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:09:29 ] パスをアイテムIDリストで扱う関数名ではFolderが使われ、 C:\みたいな形で扱う関数名ではDirectoryが使われている。
471 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:10:59 ] してねーよ。 普通にNTFSフォルダとか言うから。
472 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:11:51 ] フォルダとディレクトリの違い 一般的な解釈 Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。 二つは同義です。 細かく言えば 物理的に存在していて、絶対URI(file:///C:/WINDOWS/ とか)を使って場所を示せるのがディレクトリ。 ディレクトリに、あたかもディレクトリのように見える仮想的なものをあわせたのがフォルダ。 マイコンピュータに入っている「コントロールパネル」などは、フォルダではあるけれど、ディレクトリではありません。 Mac OS: フォルダ、ディレクトリ、パス名について “フォルダ”とは、ディレクトリを見てわかるように表現したものです。 Finder(図 2 参照)と合わせてフォルダを使うことにより、ファイルシステムを見たり、操作することが理解しやすくなります。 Finder でフォルダからある項目を出したり入れたりすると、基本的なディレクトリが変更されます。 “フォルダ”と“ディレクトリ”という用語は、特に区別する必要がない場合は、同じ意味で使用されることがあります。 面倒だから同じ意味でいいよ。
473 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:13:16 ] そろそろ>>468 =471の弁明が欲しい所だな。
474 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:15:56 ] >シェルを通さず見える物がディレクトリと区別している。 少なくともこれは間違いだな。
475 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:16:48 ] この中に意味を理解し、普段から正確に使い分けている人がいるのだろうか…。
476 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:17:32 ] >>474 シェルって何なのか分かってないんだろうな。
477 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:18:28 ] >>476 は>>474 がWindowsの言う所のシェルって何なのか分かってないという主張。
478 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:26:40 ] 判ってないのはお前。 ファイルシステムの段階で、フォルダって言ってるんだから、 Windowsシェルは関係無い。
479 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:02:12 ] こうなると思ったw
480 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:09:52 ] CreateDirectory ディレクトリを作成します。ファイルシステムがファイルとディレクトリのセキュリティをサポートしている場合は、 指定されたセキュリティ記述子を新しいディレクトリに適用します。 BOOL CreateDirectory( LPCTSTR lpPathName, // pointer to a directory path string LPSECURITY_ATTRIBUTES lpSecurityAttributes // pointer to a security descriptor );
481 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:22:22 ] ディレクトリっていってんじゃん
482 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:23:50 ] 誰もディレクトリとは呼ばないなんて言ってないような。
483 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:33:04 ] プログラミング環境では慣習や過去からの互換性から、 Directoryを使ってるだけでしょ。 普通は、 >一般的な解釈 >Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。 >二つは同義です。 で問題無いよ。
484 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:40:57 ] マイコンピュータをディレクトリとか言うのはナシだろ
485 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:51:04 ] みんなオナホのために争わないで!
486 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:34:28 ] >>484 Macの真似してフォルダにして無かったら、 パネルとか言ってたかもよ。 3.0時代からあった、コントロールのフォルダは コントロールパネルだし。
487 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:55:49 ] C++でグラフの描画をしたいんですがなにから手を付けていいのかまったくわかりません アドバイスまたは参考になるサイトとかあれば教えてください・・・
488 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:04:27 ] C++にグラフなんてない
489 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:28:11 ] えーとそれはGUIがどうのこうのって話になってくるのでしょうか?
490 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:32:15 ] 棒グラフ **************** ******* ************************* ************
491 名前:デフォルトの名無しさん [2008/06/14(土) 22:24:44 ] 今度 C++ でタイピングゲームを作ることになったのですが、 if,printf,switch,while,int,char これしかまだ知らないのにできるわけがない。。。 と、いうわけで誰か教えてください(つω・`)
492 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:28:21 ] >>491 ifとwhileが出来れば大丈夫 プログラムなんてどんなえらそうなこと言っても順次・選択・繰り返ししか出来ないんだから。 それが分かってるんなら後はC++独特の方言を覚えるだけ。 C++の簡単な入門書とかサイトでじっくり勉強してみなよ
493 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:31:29 ] >>491 あと、キーの読み取り方と、文字の表示方法さえ知ってれば何とかなる。
494 名前:デフォルトの名無しさん [2008/06/14(土) 22:41:26 ] できればサイトのURLお願いします!
495 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:48:48 ] 最初に本を買うことを薦めるぞ。
496 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:34:09 ] >>484 シェル特殊フォルダ
497 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:54:27 ] フォルダは概念でディレクトリは実装ってことでいいよ、もう。
498 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:47:18 ] 違うからw
499 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:27:08 ] マイクロソフトがMacに対するコンプレックスを解消するために、ディリクトリをフォルダーに読み替えたり、拡張子の表示を隠してみたりした。
500 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:13:51 ] シェルネームスペースではフォルダ ファイルシステムではディレクトリ
501 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:49:23 ] ファイルシステムでもフォルダだよ
502 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:02:34 ] FAT、HPFS、NTFS ファイル システムについて support.microsoft.com/kb/100108/ja フォルダなんかどこにも出てこないけど?
503 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:16:57 ] ググればNTFSフォルダと言ってる例がいっぱいひっかかるが。
504 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:22:38 ] マウントはレジストリ使うんじゃなかったかな? よくトラぶって起動しなくなるらしい
505 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:33:53 ] DOSやWindows 3.1やWindowsNT → ディレクトリ Windows95以降 → フォルダ NTFSはWindowsNTで作られた物だから、 解説ではディレクトリと言う事も多い。 今では、区別なくフォルダと言っている。 例えば、圧縮フォルダはNTFSの機能だけど、 あんまり圧縮ディレクトリとは言わない。
506 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:40:31 ] つまりディレクトリとフォルダは違うものなんだ
507 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:48:49 ] >>491 じゃないけど作ってみたyo〜 #include <stdio.h> #include <conio.h> int _tmain(int argc, _TCHAR* argv[]) { TCHAR sKey[] = _T("test") ; printf("plz enter [ %S ] \n", sKey) ; unsigned int nCount = 0 ; for(;;) { if(::_getch() == sKey[nCount]) { printf("hit! [ %C ]\n", sKey[nCount]) ; if(_tcslen(sKey) <= ++nCount) break ; } else printf("miss\n") ; } printf("\(^o^)/") ; return 0; }
508 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:54:19 ] あれだろ、 昔からDOSやWindowsでプログラミングやってる老人が、 ディレクトリをフォルダって言う事に抵抗感じるって事でしょ。
509 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:14:24 ] もうフォルダとかディレクトリとかどうでもいいよおまえら 専用スレでも立ててほかでやれ と思ってるやつが何人いるんだろう 一人もいないのか?
510 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:24:26 ] どうでもいいよ
511 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:34:16 ] 他人の間違いに一々噛み付くのはアマチュア。 脳内で的確に修正し、さりげなく指摘できるのがプロ。 間違いを訳のわからん理論で正当化しようとするのは厨ニ病。
512 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:49:51 ] >>511 で、君はそれのどれ?
513 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 01:30:08 ] 悪いのはいちいち名前を変えて同じ物をローテーションしてるMSだろ 俺たちゃ振り回される被害者だってばよ!
514 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:29:55 ] Express Edition 使っているんですけど ソリューションにソリューションを追加できないものでしょうかね 自分は MFC や ATL を使わないので この機能のためだけに Standard 買うのもちょっと…
515 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 09:54:43 ] Stdにだってそんな機能はありませんよ 異なる言語のプロジェクトをひとつのソリューションで扱えるだけ なんでそんな要求が出るのかしらないけど MSBuildあたりを調べればなんか代替案出てくるんじゃない?
516 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 10:19:18 ] >>461 >何のために本やグーグル先生があると思ってるんだね? 何のために2chに初心者質問スレがあると思ってるんだね? という発想。
517 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:06:46 ] EEには無いがSEには有るというなら多分ソリューションフォルダのことだろう。
518 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:21:37 ] VS2008 MFC使用です CStaticオブジェクトに絵を描いています。 OnPaint()でLineTo()等を組み合わせて絵を描いているのですが、 ウィンドウの大きさを変えたとき、OnSize()で描画領域の大きさも変えて、絵も拡大縮小するような処理を行っています。 しかし、絵を拡大したとき、新たに描画されるところは拡大されて表示されるのですが、 既に表示されている部分の再描画が行われません。 これが処理を早くするための工夫(仕様?)であるところまでは調べられたのですが、 実際にどのように対処したらいいかがわかりません。 OnSizeでサイズを変更したときに全体が再描画されるようにするにはどうしたら良いでしょうか。
519 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:25:46 ] >>518 Invalidateで全体が無効領域だということをシステムに教えてやる
520 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:26:40 ] けちけちしないで全体を再描画すればいいだけじゃん。
521 名前:518 mailto:sage [2008/06/16(月) 18:48:09 ] >>519 Invalidateを初めて知りました。ありがとうございます。 OnSizeでInvalidate(TRUE) OnExitSizeMoveでInvalidate(FALSE) とする事で対処しました。
522 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:43:55 ] ダイアログクラス間での、構造体データのやりとりで悩んでいます。 [ダイアログA]から、作成した登録ボタンを押して[ダイアログB]を開き、 Typdef struct Data { int Number; char Name[10]; }stDATA; をそれぞれに用意した2つのエディットボックスで入力して登録するもの なのですが、UpdateData(TRUE);で取得したデータを、[ダイアログA]の保存ボタンを 押したときにファイルに保存するための処理が作れません・・・。 [ダイアログB]でファイルオープンし、そのまま保存することならできる のですが、ダイアログAの保存ボタンで保存したい場合は、構造体のデータ をどのようにやりとりすればよろしいでのしょうか? もしかしたら、MFC以前の問題なのかもしれないのですが、 C言語とC++を初めて1か月半なので、なにとぞよろしくお願いします。
523 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:06:50 ] 失礼しました。ファイルへの保存は、 FILE *fp でファイルを開いて、fprintfで保存します。
524 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:10:10 ] fwriteでメンバを一個ずつセーブ freadで一個ずつロード
525 名前:デフォルトの名無しさん [2008/06/17(火) 11:33:24 ] Visual Studio2005のC++を使っています. 複数のフォルダーを取得するにはどうしたらいいでしょうか? 複数のファイル名を取得するにはCFileDialogを使って、Shift+ マウスクリックで複数ファイルを同時に選択できました. それと同じようなことをフォルダーに対して行いたいのです。 BROWSEINFOを使って一個のフォルダは選択出来ますが、 同時に100以上のフォルダーを選択したいので、Shiftやcntlなどを 使ってさくっとやりたいです。 なお、フォルダー選択後、各フォルダー内にあるデータファイルを 順番に全て処理していきます.
526 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:36:10 ] >>522 ダイアログBが生きてるなら、Bのパブリック変数なりゲッタなりで。 Bが消えるなら、消える前に上記。あるいは、AのポインタをBに渡しておいて BからAのパブリック変数に代入なりセッタなりで。
527 名前:デフォルトの名無しさん [2008/06/17(火) 16:14:55 ] VisualC++2005でMFCアプリケーションをダイアログベースで作成しています。 メイン画面からサブ画面を開くのに DoModal(); を使って開いているのですが、 このときサブ画面のエディットボックスなどに初期値を入れたいです。 メイン画面ではOnInit関数内でセットできたのですが、 サブ画面ではどこに記述して良いかわかりません。 初歩的な質問で申し訳ありませんがよろしくお願い致します。
528 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:19:44 ] サブ画面のダイアログのクラスにOnInitDialog()を作れ。 クラスビューからクラス選択してプロパティでオーバーライドをクリックして OnInitDialogを探せ。
529 名前:527 [2008/06/17(火) 16:48:10 ] >>528 おぉ☆★☆ 早速のレスありがとうございました!! 早々に解決できました。 ありがとうございましたm(_ _)m
530 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:24:34 ] >>524 >>526 まだ完成はしていないのですが、無事解決しそうです。 どうもありがとうございました。
531 名前:デフォルトの名無しさん [2008/06/17(火) 20:59:57 ] すいません。すごく今困ってます。 今先生から内緒でCDに焼いてもらったVisual Stadioなんですが、 #include <stdio.h> void main(void) { printf("Hello"); } これを実行すると プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。 ってなるんですが、どうしたら良いですか?? お願いします。
532 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:06:54 ] とりあえずMSにメールしといた
533 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:07:26 ] 環境変数のpathに %SystemRoot%\system32 を追加。 PCを再起動 コピーは良くない。逮捕されるぞ Visual studio のアカデミック版は安いんだから、買え。 一番基本的なバージョンは無料ダウンロードできるんじゃなかったっけ?
534 名前:デフォルトの名無しさん [2008/06/17(火) 21:11:24 ] >>533 あの・・・すいませんが 環境変数ってどこですか?;
535 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:18:50 ] 流石にこれにはレスしない方向にしたいな
536 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:21:23 ] 無料で使えるExpressEditionがあるのになぜこの程度の 事をするのにコピーしてもらうのかと、そもそも学校の課題とかなら EEでも十分すぐる
537 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:36:30 ] ていうか先生に聞けよw
538 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:04:52 ] ていうか、学校名晒せよ。
539 名前:デフォルトの名無しさん [2008/06/17(火) 23:17:23 ] >>531 これはさすがにまずいな、まして教職者がやる行為ではないね TV用
540 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:21:19 ] 内緒って書いてあるな、 約束を破っちゃいかんよ
541 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:26:19 ] これはすごい釣りですね
542 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:35:27 ] 国際学生証作ればMSから正規にタダでダウンロードできるだろう
543 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:36:00 ] MouseButtons & Windows::Forms::MouseButtons::Right ; Noneになるクソワロタ あれ・・・?
544 名前:デフォルトの名無しさん [2008/06/18(水) 10:50:59 ] こんにちは! ボタン押しでファイル保存をしたいのですが、エクセルやワードを保存するときのように、 フォルダを選べて、名前をつけて保存したいです。 まず、その画面はどうやって表示したら良いでしょうか?? 環境はVisualC++2005のMFCです。よろしくお願いします。
545 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:54:23 ] CFileDialogで検索
546 名前:デフォルトの名無しさん [2008/06/18(水) 12:21:17 ] クラスについての質問です。 class MakeWindow { public: char Name[256]; int Width; int Height; int Bit; int ScreenMode; } MakeWindow mWindow = new MakeWindow("A", 640, 480, 32, SELECT_MODE); このようにしてオブジェクトを作成したのですが、 エラー 2 error C2661: 'MakeWindow::MakeWindow' : 5 個の引数を伴うオーバーロードされた関数はありません。(Line 6) と表示されます。 受け取り側の変数も5個で設定しているのですが、何が原因なのでしょうか。
547 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:35:09 ] コンストラクタでググれよ
548 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:50:11 ] エラーをよく見ろ 'MakeWindow::MakeWindow'という関数はないと言ってる そのまんま
549 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:54:28 ] 548はアホ スレ違いだから終了
550 名前:デフォルトの名無しさん [2008/06/18(水) 16:01:45 ] 質問させていただきます。 Microsoft Visual C++ .NET でアプリケーション (.exe)作成しました。 void main()を実行した所 実行画面が立ち上がりません。 出力の表示は ”XX.exe: ネイティブ' はコード 0 (0x0) で終了しました。” となっています。 実行画面が表示されれば Sleep(2000)が入っているの目視できるはずです。 ステップインで実行した所次のようになっていました。 ・appmodul.cppの_tWinMainが実行 ・crtexe.cのif ( !managedapp )でmanagedapp=0 ・exit(mainret)が実行 ここで終了しているようです。 何とかmainの中身を実行させたいのですが何が原因なんでしょうか? 当方のスキル:社内プログラマ1年目 申し訳ありませんが何とかお力を御貸し頂きたいと思います。
551 名前:MFC始めて3週間目 [2008/06/18(水) 16:12:49 ] CEditView でフォントを設定するのはどうするの。 ちなみに以下ではできない。 int CDeepPurpleView::OnCreate(LPCREATESTRUCT lpcs) { if(CEditView::OnCreate(lpcs) == -1) return -1; CDC* pDC = this->GetDC(); CFont screenFont; screenFont.CreatePointFont(600,"MS ゴシック",pDC); CFont* pOldFont = pDC->SelectObject(&screenFont); return 0; }
552 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:33:42 ] >>550 MFCのプロジェクトを選んでいないか?main関数から始まるプログラムを作りたいなら、 Win32コンソールアプリケーションのプロジェクトを選ばないといけない。 あるいはMFCを使いたくてそうしているのなら、 プログラムの実行開始はmain関数でないというのがMFCの流儀。
553 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:40:41 ] フォントの寿命がOnCreate終わるまでなんだろ
554 名前:550 mailto:sage [2008/06/18(水) 17:10:31 ] >>552 ありがとう御座います。 MFCを使用しないため Win32コンソールアプリケーションで プロジェクトを組みなおした所 問題が解決しました。 ありがとう御座います。
555 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:15:45 ] mag.autumn.org/Content.modf?id=20060122170124 の SetWindowsHookExのサンプルをvc++2008でコンパイルしてみたんだけど、 フックされる気配がない・・・どこか間違ってるの?
556 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:25:08 ] >>554 そういえばvoid main()は普通やらない。int main()にしろ。
557 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:44:35 ] >555 そのあとに、NyaRuRuセンセが「CLR上でフック動かすとか無謀すぎ」 って書いてるのに、何でコンパイルしたの?
558 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:30:55 ] >>543 MouseEventArgs^ a = (MouseEventArgs^)e; a->Button == MouseButtons::Right こうですか!わかりません><
559 名前:デフォルトの名無しさん [2008/06/19(木) 04:09:40 ] MFCで使われるCrectをCLRでも使いたいんですけど代わりのものってありますか?
560 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:41:04 ] 代わりって言うと微妙かもしれないけどRectangleとかかな?
561 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:37:53 ] >>551 まず、CFontが破棄されないように自動変数はやめてメンバーにでもして、 ↓でどうよ。 int CDeepPerpleView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CEditView::OnCreate(lpCreateStruct) == -1) return -1; screenFont.CreatePointFont(600, _T("MS ゴシック")); SetFont(&screenFont); return 0; }
562 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 17:46:53 ] TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2) のdw1とdw2って、ドキュメントには予約って書いてあるけど、実際には使えないの?
563 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:51:27 ] そこに値設定する方法無いのに、どうやって使うつもりなんだ。
564 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:38:13 ] 予約領域のある関数や構造体なんてイヤというほど有るぞ。
565 名前:デフォルトの名無しさん [2008/06/19(木) 23:02:34 ] みなさんすみません。5日前からC++を始めた初心者です。 >383さんと関連するのかもしれませんが、下記のコードを実行すると、 期待した結果と異なる(結果は同じになると思うんですが)出力されます。 関数の引数を値渡しすると、初期化と同じとテキストに書かれているので、 こういう結果がなぜ起こるか分からないのです。 Visual Studio 2008 Express Edition Windows Vista void Print(char str[]) { cout << "サイズは" << sizeof(str) << endl; } int main() { char str[] = "Test"; cout << "サイズは" << sizeof(str) << endl; cout << "サイズは" << sizeof("Test") << endl; Print("Test"); Print(str); } 結果: サイズは5 サイズは5 サイズは4 サイズは4
566 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:16:26 ] >>565 "Test"の文字列を長くしたらどうなるか見てごらん。
567 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:17:31 ] 【初心者歓迎】C/C++室 Ver.55【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1213466622/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/
568 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:18:45 ] はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/
569 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:40:00 ] >>565 Print関数にはポインタを渡してるに過ぎない。 サイズが4なのはポインタのサイズ(32ビット)
570 名前:デフォルトの名無しさん [2008/06/20(金) 11:36:05 ] >>569 >>566 565です。ありがとうございます。そういうことなんですね。 すっきりしました。
571 名前:デフォルトの名無しさん [2008/06/20(金) 11:43:06 ] こんにちは! 現在VisualC++2005のMFCでプログラムを組んでいます。 Cのstr関数を使用しているのですが、下記のような警告が出ます。 warning C4996: 'strcat' が古い形式として宣言されました。 string.hを見ろって言われて見たのですが、 まだまだ未熟な為、よくわかりません。 一応動作は問題なくできるのですが、気になったので教えて頂けませんか? 自分としてはこの警告を、 問題はありませんが、古い形式で宣言されてるので新しい形式にした方が良いよ。 というニュアンスでとらえています。 それでOKでしょうか?また、OKな場合新しい形式とはどういう形式でしょうか? よろしくお願いします。
572 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:53:54 ] これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。 新しい形式は、strcpy_s を調べてね
573 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:54:41 ] strcat だったか、こっちに対応するのはもちろん strcat_s ね
574 名前:デフォルトの名無しさん [2008/06/20(金) 14:45:50 ] >>572 ありがとうございます。 確かに _s をつけたら警告がなくなりました。 ANSIではstrcatとかですが、 VisualC++では _s を付加した新しい形式になってるってことでいいんですか? ちなみに >これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。 やってみたんですが、警告は消えませんでした・・・orz
575 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 14:53:05 ] ISOのCライブラリ標準にはなってるから、そのうちANSIにも入るかもしれないが、わからんな。 CRT のセキュリティ強化 ttp://msdn.microsoft.com/ja-jp/library/8ef0s5kh(VS.80).aspx
576 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:33:10 ] 標準入力をファイルへリダイレクトした時のデバッグ (コマンドから[c:\hoge.exe < c:\hoge.txt]と入力した時のhoge.exeのデバッグ) をするにはどうしたらいいですか? プロジェクトのプロパティ→デバッグ→コマンドライン引数 に" < c:\hoge.txt"を足せばいいかと思ってやってみたのですが、上手くいきません。
577 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:38:56 ] >>576 それでうまくいくはずだけど、どうなるの?
578 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:16:56 ] >>577 hoge.exeの中身です↓ int _tmain(int argc, _TCHAR* argv[]) { std::string line; while (std::cin) { std::getline(std::cin, line); std::cout << line << std::endl; } return 0; } hoge.txtの内容が出力されるはずですが、何も出力されないのです。 (コマンドプロンプトから[hoge.exe(のフルパス) < c:\hoge.txt]とした場合は内容が出力されます。) 引数は argv[0] --- hoge.exe (のフルパス) argv[1] --- < argv[2] --- hoge.txt になっているのですが・・。
579 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:34:17 ] それがコマンドライン引数で出来たのは VisualStudio6以前だけ。 リダイレクトはシェルの機能なんで コマンドライン引数には書けない。
580 名前:574 [2008/06/20(金) 17:42:07 ] >>575 ありがとうございます。 参照させていただきました。 ネットだと、_CRT_SECURE_NO_WARNINGS を ヘルプだと、_CRT_SECURE_NO_DEPRECATE を 定義すれば良いとありますが、どちらを定義しても警告が消えません。 ちなみに _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES を 1 として定義する もやってみましたが警告が消えません。 もしかして定義する場所が違っていますか? str関数を使用しているファイル内で定義してるのですが。。。
581 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:50:22 ] >>580 多分、<string.h>をインクルードする前に 定義しないと駄目だと思うぞ。
582 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:51:46 ] >>578 VC++のバージョンは? こっちでやってみたら、VS2005だとそのまま動作して2008だと無理だな
583 名前:579 mailto:sage [2008/06/20(金) 18:06:32 ] あれ、2008のヘルプにも出来るって書いてあるな。 >>579 は取り消し。
584 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:07:43 ] ヘルプには両方できるって書いてあるんだけど、2008はできなかった。 2005だとそのままでできるから設定がいるか、ヘルプが間違ってるか、どっちかかもね
585 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:22:52 ] なんか、2008でも「デバッグ無しで開始」だとうまくいった。 バグっぽいな。
586 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:29:38 ] Sleepとダミーの行置いてデバッグ無しで開始してからプロセスにアタッチしたら なんとか動いたw
587 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 19:51:09 ] VC2008で作成したDllをVC2005をインストールしているPC上から呼び出したところ dlがありませんといわれました。 VC2005で作り直すとちゃんと呼び出せるdllができます。なにが原因でしょうか? VC2008で作ったdll→VC2008のPCでは動くがVC2005では認識されない。 VC2005で作ったdll→VC2005のPCでもVC2008のPCでも動く
588 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 20:00:08 ] 他に依存しないなら単体で動く
589 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 21:22:39 ] VC入れてないと使えないんじゃ普通の人には使えない
590 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:12:11 ] featurepackどうですか?
591 名前:578 mailto:sage [2008/06/20(金) 22:34:52 ] >>582 バージョンはVS2008です。 皆様の言うとおりデバッグ無しでは動作しました。 バグ?ですかね。あきらめつつ設定でできないか頑張ってみます。 レス下さった皆様ありがとうございました。
592 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:32:27 ] >>587 dllがないなら、dll入れればいいじゃん
593 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:47:42 ] DLL自体じゃなくてプロジェクトのことだというオチじゃないだろうな? 2005のプロジェクトは2008でも読めるが、逆はできんぞ。 まあソリューションとプロジェクトのヘッダ書き換えればほぼイケるけど。
594 名前:デフォルトの名無しさん [2008/06/21(土) 22:51:53 ] 本当にくだらない質問だとは思うんですけど Visual C++っていうのはソフトなんだよね? それはれっきとした売り物でフリーじゃないよね? そしてプリグラムを勉強したかったら何かしらのプログラミングソフトを購入することが必要?
595 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 22:54:22 ] >>594 フリーの開発環境もあるからググレ
596 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:08 ] >>594 マイクロソフトのホムペを隅から隅まで確認しろ
597 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:56 ] >>594 Visual C++ 2005/2008 Express Edition はフリー
598 名前:デフォルトの名無しさん [2008/06/21(土) 23:08:12 ] ありがとうそれを落としていろいろ勉強してみるわ
599 名前:デフォルトの名無しさん [2008/06/22(日) 01:36:36 ] >>597 のを落として実際にプログラムをサイトからみたの拝借して打ち込んでるんだけど再現できない #include <iostream.h> void main() { int i; i = 5 + 15; cout << "計算すると"; cout << i; cout << "になります。" << endl; } これなんだけどなぜだろうか?
600 名前:デフォルトの名無しさん [2008/06/22(日) 01:56:16 ] >>599 iostream.hはC++標準の一部ではありません。 現代的なCompilerの多くではサポートされません。 VC7以降も同様です。
601 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 01:58:20 ] #include <iostream> using namespace std;
602 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 04:56:11 ] 都合上 using namespace std; してるところが多いけど 本当は using namespace は使わない方がいい。 今は気にしなくていいけどな。
603 名前:599 [2008/06/22(日) 07:52:34 ] ということは<iostream.h>を<iostream>にかえれば大丈夫になるわけかな?
604 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 09:28:13 ] ここはC++を教えるスレじゃないよ
605 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:14:40 ] std::endl; を書くのがめんどくさいです(><
606 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:21:21 ] >>605 >>601
607 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:25:51 ] 【初心者歓迎】C/C++室 Ver.55【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1213466622/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/ はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/
608 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:31:19 ] 前から気になってたんだけどC++の話駄目だとこのすれってどんな話題が主なの? Win32やMFCもNGだよね? そうすると環境の設定とか?w
609 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:37:13 ] >>608 よくわかってるではないか。
610 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:00:13 ] VCの入門書よりC/C++の本を読んだ方がいいやつは、そういうスレヘ行った方がいいだろ
611 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:01:50 ] そうだな
612 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:28:02 ] >>606 でも>>602 って(><
613 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:02:24 ] std::e と打った時点でインテリセンス効いてない?
614 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:26:01 ] >>612 今は気にするな
615 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:53:47 ] 大量に発生するC4146の山 VCは素晴らしいコンパイラ
616 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:36:17 ] >>612 今は気にしなくていいけどな。
617 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 19:51:06 ] 今VC++2008勉強してるんだけど、これって標準のC++と全然違う? string型使おうと思ったらPTSTRに変換できないって何だよそのエラーorz 最終的にはstringのdataメソッド使えば問題無かったけど・・・ Win32APIとか難しすぎるぜ!
618 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:12:20 ] c_str 使え。
619 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:17:01 ] PTSTR は Unicode 環境を対象とする設定でコンパイルする場合は wchar_t* で typedef されるので wstring を使う必要があると思うんだが、 VC++2008 ってデフォルトで Unicode 環境を対象にしてなかったっけ? 今手元に環境が無いから何とも言えないが。
620 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:38:36 ] >>618->>619 セックス! 今までPerlとかPHPとかスクリプト系のプログラミングしかまともにしたことが無かったから 処理系(コンパイラ?)によって方言があるっていうのがなんとも理解しづらいorz=3 とりあえずなんか小さなアプリをチョコチョコ作ってそこから方言の意味を勉強していくよ。
621 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:41:21 ] これは方言ってわけではないね。 言語仕様が変わってる訳じゃないから。
622 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 05:28:16 ] VC++には何故 C99 標準の vsscanf が無いんですか?
623 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 17:55:58 ] visual studio 2008のWindowsフォームアプリケーションでアプリを作成中です groupboxの中に複数のcheckboxを配置し、 同じgroupboxの中にあるボタンを押すと、全部のチェックボックスがチェックされる、という仕組みを作ろうとしています。 とりあえず、ボタンが押された時にグループボックス内のコントロール分のループを回すところまでは上手くいったのですが、 1.そのコントロールがチェックボックスと判定するにはどうすれば良いのか 2.そのコントロールがチェックボックスだった場合、それにチェックを入れるにはどうすれば良いのか が判りません。 if(groupbox1->Controls[i]がチェックボックス){ groupbox1->Controls[i]->Checked; } …みたいな感じのことがやりたいのですが、どうすれば良いのでしょうか。
624 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:04:48 ] キャストが成功するかどうかで判定すれば?
625 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:23:31 ] >>623 、 〜->checked=true; でした。 >>624 ControlからCheckBoxへのキャストのやり方がわからないので困っているのです。
626 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:52:11 ] >>625 ttp://msdn.microsoft.com/ja-jp/library/cby9kycs.aspx
627 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:21:32 ] >>626 出来ました!ありがとうございます。
628 名前:デフォルトの名無しさん [2008/06/23(月) 20:00:03 ] C++で作った『ハイ アンド ロー』のゲームで ハイスコアを記録させたいのですが、 どうやったら記録できるのでしょうか?? 本当に初心者なんでよろしくお願いします。
629 名前:デフォルトの名無しさん [2008/06/23(月) 20:55:11 ] >>628 class CScore { ~~~~ public: void SetScore(int score) int GetScore(void) private: int m_HiScore = -1; }; // スコア登録関数 void CScore::SetScore(int score) { if (m_HiScore < score) m_HiScore = score; } int CScore::GetScore() { return m_HiScore; }
630 名前:デフォルトの名無しさん [2008/06/23(月) 20:59:18 ] VC++ 2008 Express で、どのあたりまで作れるの? ウィンドウズアプリケーション作れる? 製品版とどのくらいの差があるのかな。
631 名前:デフォルトの名無しさん [2008/06/23(月) 21:04:43 ] >>630 このページが参考になるかと ttp://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx
632 名前:デフォルトの名無しさん [2008/06/23(月) 21:08:22 ] >>631 ありがd
633 名前:デフォルトの名無しさん [2008/06/23(月) 21:40:57 ] >>629 何が書いてあるのかさっぱりなんですが・・・
634 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 02:44:07 ] ワロタ
635 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 09:16:00 ] >ハイスコアを記録させたいのですが、 >>628 記録方法で、3点 ・ハイスコアの出し方 ・画面表示のしかた ・ファイルへの書き方 ファイルへの書き方のような気がする。間違ってたら言って。
636 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 12:48:20 ] 【初心者歓迎】C/C++室 Ver.55【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1213466622/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/ はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/
637 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 14:05:47 ] >>636 このコピペ野郎いい加減うざいな
638 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:59:17 ] >>635 ハイスコアの保存(ファイル)に一票
639 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:22:10 ] >>635 何が書いてあるのかさっぱりなんですが・・・
640 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:30:39 ] >>639 の頭の中がかさっぱりなんですが・・・
641 名前:デフォルトの名無しさん [2008/06/24(火) 23:32:04 ] 質問です VC++のMFCで計算したデータを、 作成しているExcelテンプレートの特定の文字列に上書きすることは可能ですか? 例 MFCのexe → テンプレート起動 → 「kekka」に計算結果を上書き → 別名で保存(テンプレートはそのまま) こんな感じで
642 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:40:20 ] poiがいいよ
643 名前:デフォルトの名無しさん [2008/06/24(火) 23:59:51 ] >>642 JAVA?のほうがやり易いんですかね・・ ググってきます
644 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:30:38 ] DirectXでゲーム作るのが目的でVC++始めた よくありがちな厨房ですが Win32APIなプログラムでオセロ作るのに1ヶ月もかかった馬鹿な漏れに MFCとは一体何なのか勉強すべきなのかを教えてください
645 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:47:08 ] ・ExcelをCOM経由で叩く。ライセンスとプロセスの残りには注意 ・Excelを純な「表」として使ってるなら、ODBCドライバ。 SQLの言う「テーブル」に当たらなければ涙目 ・(Excel2007形式)、ドトネト3.0+OpenXMLSDK ・Java+POI ・Lotus123形式が扱いやすいってJoelがいってた
646 名前:641 [2008/06/25(水) 01:04:25 ] >>645 Excelのバージョンでも違うみたいですね ちょっとほかの方法を考えてみます。ありがとうございました
647 名前:デフォルトの名無しさん [2008/06/25(水) 02:30:52 ] >>644 Studioに支援機能があったりして感じ大掛かりだけど、ぶっちゃけ、ただのWin32APIのラッパークラスだよ だから、ちょっとしたツール作るには便利だけど、覚えたからと言って何か新しい事が出来る訳では無く、 知ってて困る事は無いけれど、知らないからと言って何か作れない訳じゃないって事で判断ヨロ。
648 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 03:58:27 ] Visual Studio.NET2003を使っているのですが、リソースを開いたとき プロパティが灰色で全く何も表示されなくなってしまいました。 戻し方はありますでしょうか? もしくは、VCの設定を完全に初期状態に戻したいのですが、 どの辺をいじったら良いでしょうか?
649 名前:デフォルトの名無しさん [2008/06/25(水) 05:52:15 ] >>644 MFCはWin32をラップするクラスを集めたライブラリではありません。 Windows上で動作する一般的なアプリケーションソフトは、win32API だけで完成するものではありません。 簡単に理解できる例をあげると、ワードプロセッサーで範囲を選択し、 これをドラッグアンドドロップする。 ただこれだけの動作が、COMを必要とします。 そこで現在のMFCは、ビジネスソフトウエアにとって必要とされる機能を 含むフレームワークとして構築されています。 フレームワークが想定しているアプリケーションを開発する場合には、 とてもうまく機能すると思われますが、そうでない場合には不満も あるでしょう。 フレームワークが対象としている開発対象の場合でも、標準の見た目や コードの古臭さに不満を持つ場合も多いようです。 今後、それらの不満の一部が解消される可能性もあります。 Visual C++ 2008 Feature Pack について調べてみてください。
650 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:01:23 ] Win32APIだけでもCOMは使えるんじゃなかったっけ?面倒なだけで。 MFCってのは、やろうとおもえば出来るが面倒だ、ってのを わかりやすく、扱いやすいようにしたものだと思ってただ
651 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:11:34 ] やればできるといっても現実的にはどうか アセンブリ言語でWindowsアプリを作るみたいにつらい
652 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:38:53 ] コメントで、 /* * */ の部分が折りたためるのですが、「宣言」となります。 「宣言」の部分にコメントの概要を表示したいのですが、可能でしょうか? 可能なら記述の仕方を教えて下ください。環境は2008EEです。
653 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 09:40:38 ] 一度Win32アプリケーション プロジェクトでダイアログベースのアプリを作った後 MFCで同じものを作ると有難味がわかる。
654 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:07:11 ] MFCはゲーム作るには要らないな >>644 にとって、ただの回り道でしかない
655 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:25:37 ] ゲームつくるのにMFCほどクソなものはない
656 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:30:03 ] ゲーム作るならC#がいいな