[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 10/16 01:02 / Filesize : 178 KB / Number-of Response : 657
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part30



1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。


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.開いたソースウィンド上で右クリック→プロジェクトへファイルの挿入。

これで出来んかな?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef