1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
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