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


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

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



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

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

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

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

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

【過去スレ】
Part33 ttp://pc12.2ch.net/test/read.cgi/tech/1235292263/
Part32 ttp://pc11.2ch.net/test/read.cgi/tech/1225422971/
Part31 ttp://pc11.2ch.net/test/read.cgi/tech/1217494948/

2 名前:デフォルトの名無しさん [2009/06/19(金) 12:40:01 ]
Part30 ttp://pc11.2ch.net/test/read.cgi/tech/1210170833/
Part29 ttp://pc11.2ch.net/test/read.cgi/tech/1203007556/
Part28 ttp://pc11.2ch.net/test/read.cgi/tech/1196430042/
Part27 ttp://pc11.2ch.net/test/read.cgi/tech/1189394427/
Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/
Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/
Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/
Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/
Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/
Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/
Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/
Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/
Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/
Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/
Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/
Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/
Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html

3 名前:デフォルトの名無しさん [2009/06/19(金) 12:40:19 ]
【このスレの前身 VisualC++相談室 過去スレ】
part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html
part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html
part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html
part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.htm

【関連スレ】
■MFC相談室 mfc20d.dll■
pc11.2ch.net/test/read.cgi/tech/1230219816/
Win32API質問箱 Build80
pc12.2ch.net/test/read.cgi/tech/1244057140/
【C++】 DirectX初心者質問スレ Part23 【C】
pc12.2ch.net/test/read.cgi/tech/1242977486/
C言語なら俺に聞け(入門篇) Part 49
pc12.2ch.net/test/read.cgi/tech/1244297476/
【初心者お断り】ガチ規格準拠C専用スレ Part133
pc11.2ch.net/test/read.cgi/tech/1201153965/
C++相談室 part70
pc12.2ch.net/test/read.cgi/tech/1244942050/
C/C++の宿題片付けます 127代目
pc12.2ch.net/test/read.cgi/tech/1244449887/
【初心者歓迎】C/C++室 Ver.66【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1243440528/

4 名前:デフォルトの名無しさん [2009/06/19(金) 12:40:37 ]
【関連サイト】
猫でもわかるプログラミング
www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
msdn.microsoft.com/ja-jp/library/default.aspx
Platform SDK Update ※変更された
www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
Google
www.google.co.jp/

Platform SDKの中で一番新しいのはこっち
Microsoft Windows Server 2003 R2 Platform SDK Web Install
www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en
(ISO版などあり)
これ以降、Platform SDK + .NET Framework SDKとして
Windows SDKが公開されていて、その中で一番新しいのはこれ。
Windows SDK for Windows Server 2008 and .NET Framework 3.5
www.microsoft.com/downloads/details.aspx?FamilyID=f26b1aa4-741a-433a-9be5-fa919850bdbf&DisplayLang=en
少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、
日本語化されているのは専ら.NET Framework部分だけ。
VC6対応の、最後のPSDKはここ。
www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

5 名前:デフォルトの名無しさん [2009/06/19(金) 13:46:33 ]
Visual c++ で hello world と表示させる方法を教えてください。
ソースファイルに以下のプログラムを書いてもエラーが出ます。
ヘッダーファイルにも何か書かないとダメですか?


#include <stdio.h>
{
printf ("hello world\n");
return 0;
}

6 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:48:30 ]
もう一度>>1をよく読み直せ

7 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:51:18 ]
本当にこれだけ書いたのか?

8 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:52:15 ]
>>5
mainがない。

9 名前:デフォルトの名無しさん [2009/06/19(金) 13:52:34 ]
#include <stdio.h>
int main(void)
{
printf ("hello world\n");
return 0;
}

10 名前:デフォルトの名無しさん [2009/06/19(金) 13:53:48 ]
>>7-8
#include <stdio.h>
main()
{
printf ("hello world\n");
return 0;
}

これだけ書きました。エラー1です。



11 名前:デフォルトの名無しさん [2009/06/19(金) 13:54:57 ]
>>9
エラーでませんでした。みなさん、ありがとうございました。

12 名前:808 mailto:sage [2009/06/19(金) 14:14:31 ]
「スレ立てるまでも無い質問スレ」の
テンプレ作成してくれた>>809-812さん、スレ立てしていただいた>>818さん、
本当にどうも助かりました。このスレは、私の生きがいみたいなもので・・

立てられなくて困っていたので、本当に助かりました。どうもありがとう。

13 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:18:50 ]
うひゃー。うれしいな。僕の居場所が一つ元に戻った( ´Э`)

14 名前:デフォルトの名無しさん [2009/06/20(土) 20:38:54 ]
VC2008(MFC)使ってるんだけど、デバッグが出来るメモ帳位にしか使えてないです。
もっと高度なIDEの使い方を勉強したいので、お勧めのサイトや本があったら教えて下さい。

15 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:34:16 ]
MFCなのにメモ帳位にしか使えてないんなら
IDEを必要としていないと言うことだ。
必要もないのに勉強するだけ無駄

16 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:37:23 ]
IDEの使い方の解説ってあんまりないな。
人の使いかを見てて「え、こんな機能あったの?」って気づくことがある。

17 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:48:30 ]
Visual C++のExpressEditionって
C#とかVB.bet
などと違って
.netFrameworkとかいうやつ入れなくても動かせるの?

18 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:48:44 ]
>>14
>もっと高度なIDEの使い方
具体的にはどんな使い方が君とっての「高度な」使い方になるのかな?

19 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:49:51 ]
>>17
まずは試してみよ

20 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:55:02 ]
>>19
質問の仕方悪くてすまん。
作成俺が必要かってことじゃなくて
作ったexeを実行するために必要かってこと。
.net必須だとexeネットで配布しても実行できない人多いよね。

C#とかVB.netだとHello World一行表示するプログラムでも.netFramewok必要だったが
C++は必要ない?



21 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:59:24 ]
>>20
ライブラリをスタティックリンクしてEXEを作成すると、ランタイムライブラリの類は不要。単体で実行できる。

22 名前:デフォルトの名無しさん mailto:14 [2009/06/21(日) 00:49:42 ]
レスしてくれた人ありがとう。

>>18
ほんの一例なんだけど、ウィンドウにCWnd::SendMessage(Postも)とか良くするよね。
その時に、

#define WM_USER_EXAMPLE (WM_USER+1)

LRESULT OnUserExample(WPARAM, LPARAM);

ON_MESSAGE(WM_USER_EXAMPLE, OnUserExample)

LRESULT CExampleWnd::OnUserExample(WPARAM wParam, LPARAM lParam)
{
  return 0;
}

こんなの、いちいち適所に書かなきゃ(コピペ)ならなくて面倒ですよね?
何か一つ忘れただけで、コンパイルエラーとかうっとうしいし。
これを一発で(綺麗に)入れてくれる機能とか?低レベルな使い方だったらゴメン。
あくまでも自分にとって高度なだけです。

後は自分が思いもつかないような便利な使い方が沢山ありそうなので、そういうのを
勉強したいと思いました。やっぱりMSDNコツコツ読むしかないですかね。

23 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:31:28 ]
なんとなくできそうな気もするけど、やり方は僕にもわからない。

>#define WM_USER_EXAMPLE (WM_USER+1)
#define WM_USER_EXAMPLE (WM_APP+1) // こっちにしとき。

24 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:03:38 ]
それはコードスニペットが近い機能だと思う。

そもそも、IDEの支援を当てにするなら、C#とかにしたほうがいい。
C++は、インテリセンスが運良く出て来れば万々歳って言語だから。

25 名前:デフォルトの名無しさん [2009/06/21(日) 08:49:37 ]
>>21
初心者ですみませんが、EXEファイルはどうやって作るんですか?

26 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:45:50 ]
コード書いてビルド

27 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:53:23 ]
DLLはプロジェクト分けてビルドしないといけないの?

28 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 18:06:44 ]
分けなくてもいいよ

29 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 18:10:30 ]
ソリューションは分けなくてもいいけど、プロジェクトは分ける

30 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 18:35:09 ]
分けなくてもいいよ



31 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:25:13 ]
具体的にどうやればできるんでしょうか?
dllはなんとかビルドできたんですがmainのほうのプロジェクトがビルドできません

32 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:34:48 ]
具体的にどうできないのかを書かないなら一生ヘルプとgoogle先生とにらめっこしてろよ
ここはコミュニケーションが取れる人間のための場所だ

33 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:57:29 ]
dllのほうのproject

[dll.h]
#ifdef DLL
#define DECLSPEC __declspec(dllexport)
#else
#define DECLSPEC __declspec(dllimport)
#endif
void DECLSPEC DLLFunc();

[dll.cpp]
#include <iostream>
#define DLL
#include "dll.h"
void DLLFunc() {std::cout << "DLLFunc()" << std::endl;};

34 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:58:11 ]
mainのほうのproject

[main.cpp]
#include "dll.h"
int main(void) {
  DLLFunc();
  return 0;
}

・ソリューションエクスプローラー上でdll.hをコピー
・dllのほうのprojectのプロパティ->構成の種類をDLL
・依存関係でmainの依存先をdllに
・ソリューションのビルド
ここまでやったんですが、
・デバッグで使用する実行ファイル名を指定してください
といわれたので、何もいじらずにC:\WINDOWS\system32\regsvr32.exeを選択
したんですが、デバッグなしで開始したら
・DLLが指定されていません
と表示されてなにも実行されません
なにが問題なんでしょうか

35 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 19:59:04 ]
書き忘れましたdll.hは実ファイルの方もmainのprojectにコピーしました

36 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:46:27 ]
>>34
2つは同じソリューションだよね。
mainのほうをスタートアッププロジェクトにしている?
あと、regsvr32はこういう普通のDLLには無関係。

37 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:30:33 ]
スタートアッププロジェクトをmainに設定したら期待通りに動きました
どうも有難うございました

38 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 07:53:32 ]
VC6のリソースエディタにてダイアログボックスにタブコントロールをつけたのですが
画像のようにタブ内の編集を行いたいのです
どのようにすれば編集は可能なのでしょうか?
sakuratan.ddo.jp/uploader/source/date113469.jpg

サンプルソースなどあると助かります

39 名前:デフォルトの名無しさん [2009/06/22(月) 10:50:52 ]
>>38
どうやったらその画面になるの?
ソースコードの画面から切り替えられないよ。

横レスすまん。

40 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:51:08 ]
スレ勃てるまでもないスレでシカトされてしまったんでこっち来ました。
思いつきでこんなクラス書いてみました。

class CLocalTime
{
private:
  char buf[32];
  SYSTEMTIME SysTime;
public:
  CLocalTime()
  {
  }
  operator char *();
};

CLocalTime::operator char *()
{
  GetLocalTime(&SysTime);
  sprintf_s(buf, 31, "%04d/%02d/%02d %02d:%02d:%02d",
            SysTime.wYear, SysTime.wMonth, SysTime.wDay,
            SysTime.wHour, SysTime.wMinute, SysTime.wSecond);
  buf[31] = '\0';
  return buf;
}

これで、例えば printf なんかで使うときに、
printf("通過![%s]\n", (char *)CLocalTime());
ときちんとキャストすればちゃんと表示されるんですが、
printf("通過![%s]\n", CLocalTime());
だけで表示させるにはどうすればいいんでしょうか。operator CLocalTime &() を
追加してみましたがダメでした。CAtlStringA なんかは後者できちんと表示されています。



41 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 14:25:20 ]
C++言語の質問だったらC++スレへ

42 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 18:31:26 ]
>>40
「ダメ」だけだから無視される。エラーが出たならエラーメッセージ、そうでないならどうダメだったか書くのが常識。

43 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:31:33 ]
>>40
CStringの定義を辿ってみろ。
メンバ変数が文字列へのポインタ1つしかない。
だから、可変個引数でもconst char*を渡したかのような振る舞いが可能になっている。

44 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:07:43 ]
素直に class CLocalTime::ShowTime() 関数作る

45 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 16:20:56 ]
private メンバ変数への値を返すのはいかがなものかと

46 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:30:15 ]
>>40
キャストなしで可変長引数の関数にクラスを渡したら、
どのメンバ関数が呼び出されるんだろうと思って、MFCの
CStringで確認してみたら、クラスがそのまま値渡しされてる
だけだったな。

CStringの場合、クラスのメンバ変数がchar*だけだったから、
結果的にchar*の変数を渡したのと同じ動きになってた。

(const char*)でキャストすると、operator char*()が呼ばれて、
メンバ変数のchar*の変数を渡してた。(可変長引数の関数に
渡される値は結果的に同じ)

そのCLocalTimeは、メンバ変数が二つあるから、それが二つとも
スタックに詰まれて、おかしな動きになってるんだろうな。

47 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:59:16 ]
ひょっとして1project 1クラスが基本なの

48 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:04:29 ]
VC2008EEを使っています。
デバッグ中にアサートで停止した時に、実行したコードを1行ずつ巻き戻す事ってできないでしょうか?

49 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:29:00 ]
>>48
巻き戻し自体はできない
しかし、現在の実行行(正確には次に実行する行)はアセンブラレベルではは eip レジスタに格納されているので、
逆アセンブラウィンドウを開いて、このレジスタの値を書き換えることで、
実行済みの行を含む任意の箇所にジャンプできる

この機能を使うことで、変数の値を書き換えながら、実行済みの行を無理やり再実行させたりできる…はず(うろ覚え)
当然、レジスタやメモリの値も自分で書き戻してやる必要があります

50 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:08:05 ]
>>49
thx
レジスタやメモリいじるのは大変そうだ・・・。



51 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 15:37:45 ]
ソリューション内でStdAfxを共有したい場合はどう設定すればいいんでしょうか?

52 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:01:51 ]
>>51
お店に行き
10万支払う

53 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:12:03 ]
どこのお店でしょうか?

54 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:52:26 ]
>>53
ggrks

値段も
ggrks

55 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:00:28 ]
普通のプログラム(hello world出力のみなど)をつくりたいときは、どのプロジェクトの種類を選んだらいいのですか?

56 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:05:51 ]
コンソール アプリケーション

57 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:12:54 ]
空のプロジェクト

58 名前:デフォルトの名無しさん [2009/06/26(金) 18:18:00 ]
C:\Documents and Settings\maria15\My Documents\Visual Studio 2008\Projects\aab\Debug

C:\Documents and Settings\maria15\My Documents\Visual Studio 2008\Projects\aab\aab\Debug
があるんだけど、なんで?

C:\Documents and Settings\maria15\My Documents\Visual Studio 2008\Projects\aab\Debug
にだけ、aab.exe があります。
これだけを配布すればいいんですか?

59 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:19:13 ]
aab\Release\aab.exe を配布します。
Debug版はランタイムライブラリがないので動きません。

60 名前:デフォルトの名無しさん [2009/06/26(金) 18:34:57 ]
>>59
ありがとう。
aab\Release
のフォルダがありません。
どうすればファイル作成できますか?



61 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:38:54 ]
aab\aab\

62 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:41:03 ]
ツールバー or 構成マネージャを使って、アクティブを Debug から Release に切り替えろ。

63 名前:デフォルトの名無しさん [2009/06/26(金) 19:00:57 ]
>>61-62
\aab\Release
ができました。
フォルダの中に
aab.exe
aab.pdb
が作成されました。
両方ZIPでまとめて配布ですか?

64 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:02:19 ]
exeだけ

65 名前:デフォルトの名無しさん [2009/06/26(金) 19:08:27 ]
>>64
わかりました(^^)!

66 名前:デフォルトの名無しさん mailto:揚げsage [2009/06/26(金) 19:42:05 ]
(^^)<ホイミン!!

67 名前:デフォルトの名無しさん [2009/06/26(金) 19:43:41 ]
ねえ、今VC6で
しこしこMFCやってんだけどそろそろ
買い換えようと思うんだけど、VC6からVS2008に
あくまでMFC使用しかしないということで移行する価値ってある?

68 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:52:47 ]
★2009年最新在宅ワーク!★☆13






doudu.youkoso.sa-suke.com/


69 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 20:16:10 ]
VS2010がもうすぐ出る

70 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 20:55:22 ]
そういうために評価版がある。



71 名前:デフォルトの名無しさん [2009/06/27(土) 03:11:33 ]
いくつかのCソースファイルとヘッダファイルとmakefile(よく分かりません)
が入ったフォルダを落としたんですが
こういう形であるソースコードをvisual studio 2003で
コンパイル、実行するにはどうすればいいですか?

72 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 03:15:43 ]
コマンドラインで設定用のバッチファイルを呼んでからnmake

73 名前:デフォルトの名無しさん [2009/06/27(土) 03:21:02 ]
#include <stdio.h>

int main(void)
{
char a;
int x;

printf("数字は?");
scanf_s("%d",&x);

printf("文字は?");
scanf_s("%c",&a);

printf("数字は%dです。\n",x);
printf("文字は%cです\n",a);

return 0;
}

正常に動作しません。エラー、警告ともにでませんが、デバッグで異常がでます。


数字は?(:8と入力する)8
文字は?数字は8です。
文字は
です。

と出ます。文字の入力ができません。どうしてでしょうか?

74 名前:デフォルトの名無しさん [2009/06/27(土) 03:22:05 ]
>>72
すみません。
設定用のバッチファイルを呼ぶってどうすればいいんですか?

75 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 03:25:27 ]
>>73
scanf()は使わんから細かい挙動を知らんけど、
表示から考えると、8のあとの改行が%cでよまれてるっぽいな。

76 名前:デフォルトの名無しさん [2009/06/27(土) 03:33:39 ]
>>75
本当ですね。

数字は?(8gと入力)8g
文字は?数字は8です。
文字はgです

と表示されます。やっぱり謎です。

77 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 07:40:10 ]
スレ違いくさいけど

scanfは、標準入力から直接受け取らないで、バッファに一旦入力した文字を格納する。
8を入力したとき、バッファには"8","\n"が格納される
それをscanfが読み込んで、バッファには"\n"が残っている
で、次のscanfでは「入力待たなくてもバッファの残りを代入すればよくね?」と考えて改行を読み込んじゃう

8gと入れたときは\nをgに置き換えてるだけ

78 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 08:34:04 ]
scanf関数は、罪作りな関数だと思うよ。
入門しか使わないくせに、癖が強すぎて入門者殺し
実用的なプログラ身ではscanf関数はまったく使わない

79 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 11:54:19 ]
すいません。VC初心者です。

Visual Studio 2008 Express Edition と platform SDK で Win32プログラムを
作りたいんだけど、普通のC言語で作れますか?


80 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 11:57:24 ]
>>78
どうせ初心者にはおまじないと大差ないレベルなんだから
安全な方法をブラックボックスとして与えればいいのにねー
なんでscanfなんだろう



81 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:22:03 ]
C言語ができた当時はアセンブラレベルが当たり前だったから
scanf程度でも十分初心者に優しかった。

82 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:27:32 ]
>>79
できる

83 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 10:25:18 ]
vc++がc++0xに対応するのはいつごろなんですか?
template typedefとか使いたいんですけど

84 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 14:48:05 ]
こんなところで日本語で質問しても誰も見てないと思うが

85 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:40:17 ]
アラビア語じゃないとね

86 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:06:09 ]
いちいち文字参照で書き込まないといけないから面倒臭いんだよね、2chだと

87 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:15:44 ]
>>83
次のVisual C++ 2010から少しずつ始まる。
www.codeguru.com/forum/showthread.php?t=466893

88 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:09:09 ]
VC++2008EEでWin32アプリを作ってます。
ウィンドウに配置したコントロールのDisabledの値を変更するにはどうすればいいでしょうか?

89 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:23:24 ]
>>88
EnableWindow

90 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:49:35 ]
他人の作ったWindowsアプリのメンテナンスをすることになりました。(製作者は行方不明です)
が、最初のところでいきなりつまづいてしまいました。
プログラムのエントリポイントがどこにあるのかわからないのです。

ソースのあるフォルダ全体に対してgrepをかけてみたのですが、mainもWinMainも見あたらず、
リンカのオプションにも/ENTRYは使われていませんでした。
プロジェクトファイルにもEntryPointSymbolの記述がありません。

私はこれ以外にエントリポイントを指定する方法を知らないのですが、
あとはどこを見ればいいのでしょう?
環境はVisual Studio 2008です。



91 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:55:56 ]
言語がC++なのは確かなことだと思うが、MFCで作成されたものならどちらのエントリポイントもソース中には存在しない。


92 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 18:05:05 ]
>>90
MFCならプロジェクト名.cppにInitInstance()があるからその辺りがほぼエントリポイントだが、
そのレベルだととてもじゃないがメンテナンスは無理。
先ずはMFCアプリの解説本を読んで簡単なMFCアプリを作れるようになってからだと思う。
# 逆に言えば、エントリポイントなんて意識する必要ないことを知っていれば簡単なんだけどね。

93 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 18:22:46 ]
すいません。書き忘れていましたが、InitInstanceもgrepで探したんですが存在しませんでした。
で、Visual StudioでF11を押したら、とりあえずエントリポイントっぽいところが出てきました。
恥ずかしいことに、ステップ実行にはブレークポイントが必須だと思い込んでいました。
いきなり頭からステップ実行できたんですね。

そのあと順にステップ実行していったら、別のDLLの中でインスタンスの初期化をしていました。
どおりで、ソースをいくら見てもわからないわけです。

とりあえず「MFC」でぐぐったら、どういう物なのかわかってきました。
ありがとうございました。

94 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 18:32:09 ]
で、MFCなの?
.netだったりしてないよね?w

95 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 20:19:45 ]
>>89
ありがとうございます。

もう一つ質問です。
2008EEのWin32アプリでは「クラス追加ウィザード」というのは使えないのですか?
使えない場合、自前でやる方法があれば教えてください。

96 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:20:01 ]
質問です
input関数で.txtのデータを読み込むのですが
読み込んでTextBoxに表示させるとvbTabで空けた空白の長さが整わないのです
どうすれば整いますか?

FileOpen(1, fname, OpenMode.Input)
TextBox4.Text = "クラブ名" & vbTab & "男子部員数" & vbTab & "女子部員数" & vbCrLf & vbCrLf
Do Until EOF(1)
Input(1, club) : Input(1, dansi) : Input(1, josi)
TextBox4.Text = TextBox4.Text & vbTab & club & dansi & josi & vbCrLf
Loop
FileClose(1)

環境はVisual Basic 2008 Express Edition
Windows Formでやりました

97 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:23:26 ]
>>96
スレ違い

98 名前:デフォルトの名無しさん [2009/07/07(火) 21:31:26 ]
>>97
だと思うなら誘導しろ。

99 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:36:24 ]
>>98
VBのスレを知らんから誘導できん。すまんな。

100 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:43:30 ]
すいません、スレタイちゃんと読んでませんでした
Visual まで読んで あっVB とか思い込んでました



101 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 02:06:18 ]
連番のjpegファイルからmotion jpegのaviファイルを生成したいのですが、
そういう機能を持った商用の良いライブラリはないでしょうか。
PIC Video codec等はアプリケーションに見えるのですが、
ライブラリとして使えないものでしょうか。

102 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 10:17:00 ]
OpenCV

103 名前:デフォルトの名無しさん [2009/07/08(水) 20:27:55 ]
vc++eeでwin32apiアプリケーションを作る勉強をしてるのですが
CppUnitを導入しようと思いまして、テストの出力を出力ウィンドウなどに送りたいと思います。

TRACEマクロはMFCじゃないと使えないようですし、何か方法あるのでしょうか?

コマンドプロンプトを起動してcoutしても出ないようですし。

よろしくお願いします。

104 名前:103 mailto:sage [2009/07/08(水) 20:34:31 ]
すいません
見つけました

OutputDebugStringですね

散々探して見つからなくて、書き込んでちょっと探すと見つかる・・・
このパターンが多いな
失礼しまいた。

105 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 00:56:20 ]
2日前にVS2008EEを入れてC++の勉強を始めました。
テンプレートの一番最初にあるWindowsフォームアプリケーションを選択して
フォームにボタンを置いてネットのサンプルをそのままコピペしたのですがコンパイルできません。
書き足したのはこの1行だけです。

(前略)
private void button1_Click(object sender, EventArgs e)
{
   HWND hWnd = FindWindow("無題", null);  //←追加
}
(以下略)

どう直せばいいんでしょうか?

106 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:18:43 ]
>>105
その1行自体は<windows.h>をインクルードすればいいのだが、
フォームアプリケーション(というよりCLRプロジェクトすべて)は、
<windows.h>ベースの仕組みではないから、お前が見ているであろうサンプルすべてが参考にならないぞ。

107 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:37:34 ]
opencv.jp/sample/
動的輪郭に興味があり↑の物体追跡(Object Tracking)のサンプルコードを動かそうと思ったのですが、

warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。
error C3861: 'snprintf': 識別子が見つかりませんでした。
エラー 1、警告 3

となってしまいます。
opencvの設定についてはttp://imagingsolution.blog107.fc2.com/blog-entry-134.htmlを参照して行いました。
環境はVisual Studio 2008です。

問題点のご指摘よろしくお願いします。

108 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 06:01:38 ]
たぶんそれVC用のソースじゃないから
VC用のソースを探すかVC用に修正して使う。

109 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 11:55:32 ]
>>106
ありがとうございます。
VC++でぐぐっても、対象となるコンパイラのバージョンが明記されてないサイトが多くて困っています。
今のところVC++6.0やVS2005のサイトが多いでしょうか、
ある程度知識が付けば、ソースを見て判別できるようになると思うのですが。

最初に選ぶプロジェクトのテンプレートを変えれば、ヘッダの追加をしなくてもそのまま動く環境になりますか?
それとも2005用のソースを2008でコンパイルするには、毎回手直しが必要になってしまうものなんでしょうか。

110 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:15:51 ]
>>109
いや、大抵のことはバージョン問わず使える。

VC++で作れるアプリには、ネイティブアプリとマネージアプリと2種類あって、これがまるで別物。
Windowsフォームアプリケーションのプロジェクトは後者。<windows.h>を使うのは前者。
VC++のプロジェクトの中では、Win32アプリケーションなどが前者に属する。

自分が何を使って作りたいのか決め、それについての解説だけを追わないと混乱する。



111 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:19:23 ]
>>110
わかりました。
つまり、昔ながらのstatic xxx main関数があって、ソースの先頭に#include hoge.hが並んでいるような物が
今はネイティブアプリと分類されている、という解釈でよいでしょうか?

112 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:38:31 ]
それは標準C/C++

113 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:17:12 ]
あまりにも自分が無知すぎるので少しぐぐってきました。
「新しいプロジェクト」でテンプレートが5つのグループに分かれていますが、
CLRのグループに属しているのがマネージドアプリなんでしょうか。

すると一番下のWin32というのが、昔SDKと呼ばれていたものに相当するのかな?
古いサンプルを動かしたいときはMFCかWin32を選べばよさそうに思えます。

こんな理解で合ってますか?

114 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:41:18 ]
その5つぐらい全部試してみたって1時間もかからないだろうし、
自分の目で確認したほうが人に聞くよりはるかに理解しやすい。

115 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:54:05 ]
なんか初心者以前の質問が多いけど
最近はVCの入門書売ってないのか?

116 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:07:48 ]
VS2008でC#を使う、みたいに特定の環境に向けた本ならたくさんあるけど、
移植とか移行とか処理系の世代間の差異を解説したものは少ないと思うよ
ライブラリの比較とか、ソースの記述方法の変化みたいな話はCマガジンとかでよく見る

117 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:44:31 ]
いや、だからまず自分の環境用のそういう本買って初心者になれよって話だろ。


118 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:23:24 ]
ここは入門者もOKのスレじゃん

119 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:33:39 ]
初心者ですが質問いいでしょうか?
officeファイル(ppt,pptx,doc,docx)からファイルの情報(テキスト)を取得できる
プログラムは作れますか?
できればofficeの入ってないPCで実行したいです

120 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:35:03 ]
スレ違い




121 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:03:46 ]
どこのスレにいけばいいでしょうか?


122 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 08:36:41 ]
>119
現実にそういうプログラムが存在するか調べる。
存在するならどうやってるか調べる。

123 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 10:57:53 ]
>>122
初心者に優しくないのなら書き込むな。
立ち上げるな

124 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:30:07 ]
ここは子供電話相談室か?
小学生なら小学校の教科書の範囲を勉強すればいいし
初心者なら入門書の範囲を勉強すればいい
教科書の範囲外は卒業してから

125 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:40:10 ]
このスレ終了

126 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 13:53:58 ]
>>119
取り出したい情報による。
ファイルサイズとか更新日時なんてのはOfficeとか関係ないし
作者名や会社名は文字列がそのまま入ってるから、それっぽいデータなら
なんとか取り出せないこともない。
ちゃんとしたBuiltinDocumentPropertiesなんかの情報が欲しいんだと、
Officeのインストールされてないマシンではちょっと難しい。
それこそファイルのヘッダから構造体のポインタを追っかけるような
プログラムになると思う。初心者スレで質問してるレベルでは無理。

127 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:11:45 ]
>>120>>122>>124
>初心者スレで質問してるレベルでは無理。
=初心者ぷっ!w

128 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:37:06 ]
OOoでテキスト出力すれば良いんじゃね?

129 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 15:16:06 ]
次レス予測
「会社のマシンなのでOOoとか勝手にインストールできないんです」

130 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 18:11:21 ]
「OOoって何ですか?」ではないかと



131 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 19:46:26 ]
>>119
どの程度のことをやりたいかにもよるが、いずれにせよ基本的に適当なライブラリを見付けてそれを使えと言うことになる。
ただし、2007形式のほうはXMLをZIPで固めただけなので、その手のライブラリがなくてもなんとかなるかもしれない。
参考: www.atmarkit.co.jp/fjava/special/ooxml02/ooxml02_2.html

ただ、Officeの存在を当てにしていいならそのほうがずっと簡単。
OfficeそのものがプログラムからOffice形式のファイルを読み書きその他するライブラリとして機能する。

132 名前:119 mailto:sage [2009/07/10(金) 20:54:14 ]
お返事ありがとうございます
OpenOfficeで開けばいいのですがそこを自動化するプログラムを作成したいです。
>>126
具体的には以下の情報です
docファイル 本文、作者、更新時間
pptファイル 使われているテキスト、ノート、作者、更新時間

>>131
2週間ほど勉強してdocx,pptxはそのzip展開して情報を取り出すことまでできました。
docファイルとpptファイルがどうしようか悩んでいます。
バイナリ仕様が公開されているようですがどうも理解できません

>>126さんにあるようにヘッダから構造体、ポインタを勉強。
又は、利用できるライブラリ(フィルターでいいんでしょうか?)を探す。
この方法でいいんでしょうか?

133 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 20:59:50 ]
>131
そんなのとっくの昔にやってるってさ

134 名前:デフォルトの名無しさん [2009/07/10(金) 21:23:49 ]
>>132
XDOC2TXT 呼び出せよ 割と使っているのは多い

135 名前:デフォルトの名無しさん [2009/07/10(金) 21:29:37 ]
フィルタ活用事例
GoogleXdoc
Namazu for Win32
Hyper Estraier
Meadow2
MiGrep
VxEditor
smoopy
Transwise
EBView
サーチクロス

xdoc2txtはPDF,WORD,EXCEL,一太郎などの各種バイナリ文書から、テキスト要素を抽出する汎用テキストコンバータであり、
Windowsのコマンドラインで動作します。
xdoc2txtは各種文書の構造を直接解析しているため、単独で変換できます。
WORDや Acrobatなど、作成元のアプリケーションをインストールする必要はありません。
高速に動作するので、各種全文検索エンジンのフィルタに最適です。
ワープロ文書の種類は、拡張子から判別します。次の拡張子のファイルに対応しています。

リッチテキスト Microsoft WORD 2007(OOXML) Microsoft Excel 2007(OOXML) Microsoft PowerPoint 2007(OOXML)
.doc Microsoft WORD ver5.0/95/97/2000/XP/2003 Microsoft Excel ver5.0/95/97/2000/XP/2003
.ppt Microsoft PowerPoint 97/2000/XP/2003 OpenOffice.org Open Document
一太郎 ver5 一太郎 ver6 一太郎 ver7 一太郎 ver8/9/10/11/12
OASYS/Win 新松/松5/松6 Lotus 123 Windows3.1 Write Adobe PDF Webアーカイブ HTML
OutlookExpressのエクスポート形式


www31.ocn.ne.jp/~h_ishida/xdoc2txt.html

136 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 21:38:28 ]
どうみてもVCとは全く関係ない展開なんだが

137 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 21:47:52 ]
結局VC全然使う必要なかった

138 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 21:55:41 ]
xdoc2txt調べてみます
ありがとうございました。
こういう質問はどこでするのが適切でしたか?

139 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:12:28 ]
さすがにそれぐらい考えろや…
officeでもプログラムでも、いくらでもキーワード出るだろ

140 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:39:34 ]
#pragma once
ってプリプロセッサですよね?
どうやってプリプロセッサで
 インクルード1回だけ
ってのを実現しているのでしょうか?




141 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:42:08 ]
>>140
一般的なインクルードガードの手法はご存じない?

142 名前:デフォルトの名無しさん [2009/07/11(土) 22:45:41 ]
質問です。
タスクトレイにアイコンを表示する方法を調べています。
調べてみたら、Shell_NotifyIconという関数を
使用すればいけることが分かりました。
とりえず、コンパイルだけ通してみようと試しましたが、
うまくコンパイルが通りません。
どうすれば、コンパイルを通せるようになるでしょうか?

エラーメッセージが
error LNK2028: 未解決のトークン (0A00000F)
"extern "C" int __stdcall Shell_NotifyIcon・・・・で参照されました。

error LNK2019: 未解決の外部シンボル
"extern "C" int __stdcall Shell_NotifyIconW・・・・で参照されました

Shell_NotifyIconを使用している関数の中身は

NOTIFYICONDATA notif;
Shell_NotifyIcon(NIM_ADD, ¬if);

しか書いていません。

環境はVC++2008 Express EditionのWindowsFormで作成しています。

よろしくお願いします。

143 名前:140 mailto:sage [2009/07/11(土) 22:49:33 ]
>>141
存じ上げています。
 #ifndef ***
 #define
 本ソース
 #endif
ですよね。

プリプロセッサは
コンパイラに引き渡す前の字句の置き換えを行うものだと
いう認識なのですが、
そうだとすると
#pragma once
ではどうやっているのか不思議だなぁということです。

144 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:58:56 ]
>>143
それなら話は簡単。内部的には同じことをやっていると思われ。
例えば/usr/include/stdio.hに#pragma oneceと書いてあったら、
#ifndef _USR_INCLUDE_STDIO_H
#define _USR_INCLUDE_STDIO_H
...
#endif
と書いてあると見做せばいいわけだ。

あとはここも要チェック。
スレを勃てるまでもないC/C++の質問はここで 11
pc12.2ch.net/test/read.cgi/tech/1245059383/686,687

145 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 23:07:28 ]
>>140
ようするにプリプロセッサが特別扱いで処理している。
字句の置き換えはやることの1つに過ぎない。

>>142
プロジェクトのプリパティのリンカの「追加の依存ファイル」のところにshell32.lib追加してみたら?

146 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 23:08:13 ]
>>144
なるほど。
ファイル名を利用しマクロ化しているなどの実装が考えられるというわけですね。

ありがとうございました。


147 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 23:11:55 ]
>>142
#include <shellapi.h>
#pragma comment(lib, "shell32.lib")

148 名前:142 [2009/07/11(土) 23:22:17 ]
>>145
>>147
ご回答ありがとうございます。
>>147さんの方法でコンパイルが通りました。
ありがとうございました。


149 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:23:17 ]
本屋に行ったけどCたすたすの本は少なく
#が多いんだけど
どっちで勉強してもいいんだろうか

MFCとかCOMとかAPIっていまさら何ですかね

150 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:08:52 ]
>>149
そりゃ両方できた方がいい
MFCが必要かどうかは作りたい物によるけど、COMとAPIは知らんと話にならんぞ



151 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:41:42 ]
ありがとうございます
じゃあ、その二つは早急に習得します
一か月ぐらいでかな

152 名前:142 [2009/07/12(日) 12:36:29 ]
質問です。
前回と同じで、タスクトレイにアイコンを表示する方法を調べています。
今度はLoadImageという関数を使用している部分でコンパイルエラーになります。

エラーメッセージが
未解決のトークン (0A00000B) "extern "C" void * __stdcall LoadImageW
・・・・で参照されました

error LNK2019: 未解決の外部シンボル "extern "C" void * __stdcall LoadImageW
・・・・で参照されました。

fatal error LNK1120: 外部参照 2 が未解決です。

ソースは

HINSTANCE hInst = GetModuleHandle(NULL);
NOTIFYICONDATA icn;
icn.hWnd = hwnd;
icn.uID = 100;
icn.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
icn.uCallbackMessage = WM_USER + 1;
icn.hIcon = (HICON)LoadImage(hInst,
MAKEINTRESOURCE ( "IDI_ICONTRAY"), IMAGE_ICON, 16, 16, 0 );
Shell_NotifyIcon ( NIM_ADD, &icn);

環境はVC++2008 Express EditionのWindowsFormで作成しています。

前回と同様、何かをインクルードすればいいのでしょうか。
現在はwindows.hとshellapi.hをインクルードしています。

よろしくお願いします。

153 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:55:01 ]
>>152
そういう質問ばかり増えるとおれらが困るので調べ方を教えておく

MSDNで目的の関数(ここではLoadImage関数)の解説を出す
msdn.microsoft.com/ja-jp/library/cc364835.aspx

最後のほうに
ヘッダーファイル xxxx.h をインクルード
ライブラリ xxxx.lib を使用

とか書いてある。それでもだめなら聞きに来なされれ

154 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:56:44 ]
Formだったら.netのみでやった方が簡単な気がする

155 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:02:59 ]
俺にはFormアプリケーションを作った経験はないんだが、Formアプリケーションって
APIを使う場合は必要なLibをいちいち全部自前でリンクしなきゃならないのかい?


156 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:13:52 ]
俺もFormアプリは詳しくないけど
C言語系では必要なLIBは自分で指定すんのが基本だからな

宿題スレなんか見てると、よく数学ライブラリをリンクしないで
コンパイル通りませーんって泣いてる初心者がいるよなw

157 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:14:49 ]
どんな形かは判らんが大抵使うよ宣言が要るんじゃないか

158 名前:142 [2009/07/12(日) 13:56:11 ]
>>153
教えてくださったページで、無事コンパイルが通りました。
ありがとうございます。

159 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:30:21 ]
>>149
C#はC++とは全く別の言語だぞ。名前がよく似ているだけで。

160 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:03:06 ]
>>149
C#はクソ言語
・・・とまでは言わないけど、
Javaと同じでC++より楽に習得できる。

C++はバカには使えないほど高度(変態)な言語だが
使いこなせるヤツはもう本当にすごい。

ちなみに俺はまだまだまだまだ使いこなせてません。



161 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:27:24 ]
つか、MFCくらいが一番面白い。

162 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:01:46 ]
じゃあ三つとも覚えればいいんですね
API 始めたばっかだけど

163 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 18:08:11 ]
visual C++2008を使っているのですが、cppファイルを開こうとするとメモ帳が表示されて、バイナリー表示?されてコードが見れないのですが
改善方法を教えてください。DirectX SDK November2007が入ってます。OSはXPSP3です。

164 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 18:29:28 ]
>>163
cppはテキストファィルだが、どこからどうやって開こうとしてる?
たとえばエクスプローラーからcppファイルをダブルクリック、とか
IDEからcppを右クリックしてコードを表示、とか。

165 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 23:21:49 ]
>>164
レス遅れましてすいません。
ソリューション開いてソースフォルダにあるcppファイルをダブルクリックで開こうとしてます。


166 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 00:20:02 ]
ダブルクリックの代わりに右クリックからファイルを開くアプリケーションの選択でどうか
うまくいったら規定値に設定で

167 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 00:55:16 ]
>>166
うまくいかないです・・・。VC上で開くことは出来たのですが文字化けしててダメでした。
VC入れなおしても直らないし、ウイルスに感染してるので設定がめちゃくちゃになったのかもしれません。
なのでOS入れなおすことにしました。お騒がせしてすいません。レスありがとうございました。


168 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 11:55:25 ]
文字化けは最初の質問とは別の話だな

169 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:05:41 ]
CLRプロジェクトの中で書かれたコードは、.NET Frameworkのライブラリを使わなくてもマネージドコードという扱いになるのでしょうか?

170 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:18:16 ]
そうだよ。
C#でclass C {static void Main() {}}のような何もしないプログラムを書いても
.NET Frameworkが実行に必要なのと同じようなことと言えばいいかな。

そうではなくて、ネイティブコードを混ぜたいという意味なら、
#pragma unmanagedなどで切り替えできる。



171 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 21:21:49 ]
>>170
よくわかりました
ありがとうございます

172 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:38:13 ]
VC++のC++で、現在のスタック領域の大きさを取り出す方法ありませんか?
スタックが少なくなったらエラー処理がしたいので、お願いします。

173 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:41:25 ]
>>172
スタックオーバーフローを回避したいならヒープ領域を使えば?

174 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:46:43 ]
いや、再帰処理のプログラムにエラー処理を組込みたいので。
現在は異常終了してしまうし。固定値で検査は出来るけど、
固定値は入れたくないし。

175 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:55:17 ]
ESP見るとか

176 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 17:57:13 ]
>>174
スタックオーバフローチェックのコンパイラオプションではダメなの?

177 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:01:46 ]
そもそも、スタックオーバーフローになるような組み方をしている再帰処理に問題があるんじゃないか?

178 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:07:27 ]
離散数学の問題を解くようなプログラムだと簡単にオーバーフローしちゃうから
その辺はプログラムを作るときに工夫するよう、自分で考えたほうがいい。
あれは簡単には解けない、ってことを確認するのも勉強のうちだから。
学生じゃなかったら的外れな回答でごめん。

179 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:17:52 ]
まあ、たしかに、スタックオーバーフローするようなプログラムにしない、
と言うのは正しい。しかしまあ、出来るならば再帰の中で検査をしたいと
思っています。今現在は#define STACKSIZE  1000000 で固定値で
検査をしているのですが、コンパイルオプション変えるたびにプログラム
修正もいやだなーと。しかし、調べた限り簡単では出そうに無いですね。
あきらめて固定値で行こうと思います。

180 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:37:58 ]
こういうの見た?
ttp://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.html



181 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:29:38 ]
ありがとうございます。でも今やってみたのですが。
コンパイルスタック指定 1000000で下記のような出力に。
[00130000 00126000]
p=0012FF60
dat p=001177DB
dat p=000FF047
dat p=000E68B3
dat p=000CE11F
dat p=000B598B
dat p=0009D1F7
dat p=00084A63
dat p=0006C2CF
dat p=00053B3B
dat p=0003B3A7  <−ここの次でスタックオーバーフロー
プログラムは、下記ですが、出力が納得できない…
NT_TIB* getTIB(void) {
NT_TIB* pTib;
__asm {
mov eax, dword ptr FS:[18H];
mov pTib, eax;
}
return pTib;
}
void testp() {
 char buf[100000]; char dat;
 printf("dat p=%p\n",&dat); testp();
}
int _tmain(int argc, _TCHAR* argv[]) {
 NT_TIB* pTIB = getTIB();
 printf("[%08x %08x]\n", pTIB->StackBase, pTIB->StackLimit);
 printf("p=%p\n",&pTIB); testp(); return 0;
}

182 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:31:58 ]
行数オーバーで圧縮しています。
[00130000 00126000]
のStackBase,とStackLimitの範囲が1000000も無い、
スタックオーバフローは約1000000でオーバーしているので正しい
なぜなんだろう?

183 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:32:48 ]
文字列の処理について教えてください。
VisualStudioでC++のプロジェクトを作ると、以下のようなグローバル変数が自動的に宣言されますが、

    TCHAR szTitle[MAX_LOADSTRING];  // タイトル バーのテキスト

ここにTCHAR型のローカル変数と同じ方法で文字列を代入しようとすると
コンパイルエラーになってしまいます。

    TCHAR test[MAX_LOADSTRING] = _T("これは大丈夫");
    szTitle = _T("エラーになる");

同じ型の変数を宣言しているつもりですが、結果が違ってしまうのはどうしてでしょう?

184 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:34:34 ]
>>183
C言語の入門書本屋で買ってこい

185 名前:181 mailto:sage [2009/07/14(火) 19:36:01 ]
う〜〜ん、他のHPで、わざとスタックオーバーフローさせて、サイズ検出が
あったが、それしかないのか? ちょっとやってみる。

186 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:37:56 ]
>>185
だからぁ、>176じゃダメなの?

187 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:40:47 ]
>>186
/RTC、/GSの事なら全くの別物

188 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:47:21 ]
>>182
コミット済みのサイズだからじゃね

189 名前:181 mailto:sage [2009/07/14(火) 20:07:36 ]
>>188
コミットのサイズ変えても、出力は変わらず。
う〜〜ん、例外検出がなかなかうまくいかず。
それにわざとエラー出して、サイズ検出もなんとなく納得できないし、
結局、固定で持ったほうが早そうな気がしてきました。
どうせコンパイルするんだし…
皆さんありがとうございました。

190 名前:181 mailto:sage [2009/07/14(火) 20:18:00 ]
補足。testp()の中にスタック情報出すのを入れた場合下記のよう。
やはりコミットで増えるようですね。最大値は相変わらず不明ですが。
[00130000 00126000]
p=0012FF50
[00130000 00117000]
dat p=001177B7
[00130000 000fe000]
dat p=000FF003
[00130000 000e6000]
dat p=000E684F
[00130000 000cd000]
dat p=000CE09B
[00130000 000b5000]
dat p=000B58E7
[00130000 0009c000]
dat p=0009D133
[00130000 00084000]
dat p=0008497F
[00130000 0006b000]
dat p=0006C1CB
[00130000 00053000]
dat p=00053A17
[00130000 0003b000]
dat p=0003B263
この後オーバーフロー




191 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:39:53 ]
>>184
馬鹿だから答えられないのですね。
書き込むな!クズ!

192 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:55:29 ]
>>191
その一言でキミの相手するやつは激減したよ。
いつもそんな調子だから人に相手されなくなるんだよ。

193 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:59:10 ]
>>183
文字列もどきの処理は、型によってケースバイケースでわかりにくいからねえ。
もうちょっとマクロとか関数が整理されてたらよかったんだけど。
そういうのの一覧が載った本を見たほうが早いと俺も思うよ。
さもなくば、文字列がもうちょっと簡単に使えるC#あたりに乗り換えるか。

その場合は
_tcscpy_s(szTitle, _T("てすと"));
ただしコピー先のサイズは固定で自動的に拡張してくれないから
文字列の長さがコピー先の容量を超えてると代入に失敗する。
コンパイル時か実行時か、どちらか容量オーバーが発見されたタイミングでエラーが出る。

194 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:13:06 ]
そういうのも代入と言う?
馬鹿がうつった?

195 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:49:59 ]
父ちゃんに言われなかったか?
やらないのはできないのと一緒だって
早くハロワ行けよ

196 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 23:35:30 ]
総合開発環境の下部のメッセージ部分に出力するにはどうすればいいんでしょうか?
デバッグ用に使ってるのを見かけたんですがやり方が書いてありませんでした

197 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:15:46 ]
>>196
OutputDebugString

198 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:23:19 ]
ありがとうございます!

199 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:33:23 ]
CLRだとSystem::Diagnostics::Debug::WriteLineだけどな

200 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:35:37 ]
C++のCLRってVBやC#より処理早いの?



201 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:53:47 ]
おなじ NETのアセンブラにするんだろ

202 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 17:24:34 ]
強いて言えば、VB.NETやC#と違って
標準でSuppressUnmanagedCodeSecurityAttributeが付くので、
ネイティブコードの呼出はC++が速いらしい。
(もちろん、C#やVB.NETでもSuppressUnmanagedCodeSecurityAttributeを使えばその点は同じになる)

203 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:14:35 ]
>>201
レスありがとう

204 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:15:22 ]
>>202
詳しくありがとうございます

205 名前:デフォルトの名無しさん [2009/07/19(日) 04:41:53 ]
普段2003を使ってるんだけど
Visual Studio 2008 Express を使ってみたんだ
インテリセンスがすごくよくって
関数を使おうと書き始めると候補が出てきて途中でエンター押すと
全部書いてくれてすごく良いんだ
この機能って2008になってから出来たの?

206 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 08:11:47 ]
2005も有るけど、新しい方がいいらしい

207 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 10:23:25 ]
着実にVer.Upしてるよ。 VC6のインテリセンスのガリガリガリガリはまだ記憶に新しい。

208 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 13:40:50 ]
2008のインテリセンス、マジキチすぎ。
キーボード5つぐらいしか押してないのに50文字ぐらいの長い命令文がいつのまにか入力できてる。
プロパティとメソッドの区別も一発でわかるようにアイコンが付いてるし、自分で作ったクラスまで
自動的に登録されてるし。

209 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 13:43:51 ]
しかし、C#やVBはさらにその上を行くのであった。
たまに触ると本当に羨ましく感じる。

210 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 13:44:52 ]
おかげで命令のスペルうろ覚えの時がある。



211 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 13:47:33 ]
C++にもっと力入れてほしいな
webは作れないんだよね

212 名前:デフォルトの名無しさん [2009/07/19(日) 14:04:43 ]
VS2008を使っているのですが、
クラスビューでプロパティを選択して、
イベント、オーバーライド、メッセージを選択しても
全く表示されなくなりました。

どうしてなんでしょうか?

新規作成時、直後は問題ないのですが、開発途中で、
表示が消えるので、新たに関数などの追加ができなくなって困っています。

直し方はあるのでしょうか?

213 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 14:05:27 ]
>>211
CGIは?

214 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 15:27:05 ]
>>212
うっかりプロジェクトファイルとか消してない?
鯖に共有フォルダ作って共同開発とかしてると、たまに誰かか勝手にファイルを移動しちゃうことがあって困る。

215 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 19:02:40 ]
Subversionお勧め
EEじゃなけりゃAnkhSVNも

216 名前:デフォルトの名無しさん [2009/07/19(日) 20:01:26 ]
212ですが、
自己解決?しました。

正しい、やりかたではないと思いますが、
ソリューションファイル等があるフォルダにある
VC++ Intellisense Database
のファイルを削除して、もう一度、VS2008を起動させて、
ソリューションファイルを開くと、自動的にもう一度、
VC++ Intellisense Databaseファイルが作られるので、
それで、直りました。

正しいか不明だけどね。
お騒がせしました。

217 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:02:56 ]
それならよくあること。気にするな。

218 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:44:02 ]
public: がダメ、総てアクセッサー付けろは OOP原理主義者。

219 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:06:58 ]
こいつは何を言っているんだ?

220 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:46:12 ]
std::tr1::
などと打ったときに最後の::の後を自動補完する候補が出るときと出ないときがあるんですが
これを毎回出すようにするにはどうすればいいんでしょうか?



221 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:29:18 ]
インテリセンスは気まぐれだからなぁ。
一応CTRL+SPACEを押せば強制的に候補一覧(候補がひとつしかないときは一気に確定)できるけど
必ずしも成功するとは限らないところがVC++のいいところ。

これがVBやVC#、今はなきVJ++ではほぼ100%確実に候補が出る。
で、開発者いわく、インテリセンスは結局のところ「コンパイラそのもの」なんだそうで、
リアルタイムコンパイルしながら候補を絞り込んでるわけだけど、
C++は言語が複雑すぎてちゃんとできねーんだとさ。

222 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:49:34 ]
ほとんどは、その前の文にエラーがあるとインテリセンスは動かない。

223 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 15:46:08 ]
質問します
環境は「VC2008ExpEdition + .net」です
Bitmap^ abcimg=gcnew Bitmap(300, 400);
Graphics^ abcgraf=Graphics::FromImage(abcimg);
abcgraf->FillRectangle(Brushes::Black, 0, 0, abcimg->Width, abcimg->Height);
pictureBox1->Image= abcimg;
で作られた画像の真ん中にナスのような形のグラフが書き込まれます。
そのグラフを白で塗りつぶして面積を求めたいのですが、塗りつぶしがうまくいきません
別のやり方があれば教えてください
Color abcclr;
for(j=0;j<400;j++){
 for(i=0;i<300;i++){
 abcclr=abcimg->GetPixel(i,j);
 Byte r=abcclr.R;Byte g=abcclr.G;Byte b=abcclr.B;
 if(r>1){
  if(mode==0){//最初の境界を発見した!
  bforx=i;bfory=j;mode=1;//フラグを立てて管理
  //↓は最初境界の終わりを探す
  while(r==0){abcclr=abcimg->GetPixel(i+1,j);r=abcclr.R;g=abcclr.G;b=abcclr.B;i++;}
  }else{//フラグ立ってるので現在値まで塗りつぶしのために白い線を引いてフラグを消す
  abcgraf->DrawLine(Pens::White,bforx,bfory,i,j);mode=0;}
 }// (R>1)節の終わり
 abcclr=Color::FromArgb(r,g,b);
 abcimg->SetPixel(i,j,abcclr);
 }//iのforループの終わり
 mode=0;
}//jのforループ終わり

224 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 16:39:58 ]
単にロジックの問題なのかapiの使い方の問題なのかはっきりしろ

225 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 17:04:05 ]
223 です
途中まではうまくいくが、グラデーションのように黒い線(塗りつぶしの失敗)が入ります
######
######
########
#     #
#      #
##########
のような感じに。下手な説明&AAですみません。


226 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 17:24:26 ]
すまんが、まったくわからん。
画面キャプチャしてUPするなり、他人に伝える工夫と努力が必要。

227 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 21:59:48 ]
何かまったくの思いつきで作ったとしか見えないんだが
それ仮に動いたとして使いものになるのか?

228 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:02:03 ]
全くの初心者なんですが、VC++2008を使った教本でお薦めのものってありませんか?

229 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:09:23 ]
本屋で実際に手に取って見るのがお薦め。

230 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:26:41 ]
最低限C/C++は知ってる前提だから
そうじゃなくてC/C++から勉強したいならVCというよりC/C++の入門書だし
C/C++スレで質問した方がいい。



231 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:35:31 ]
VC++2008の初心者じゃなくてC++の知識がないってことかな?
まあ
>>230
の言う通り過ぎて付け加えることがない。

232 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 23:47:17 ]
C++の本はたくさんあるけど
IDEの基本から上手な使い方みたいなことが書いてある本ってないよね
プロパティとかどう弄ったらよくなるのかとかいまいちわからない

233 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 01:49:59 ]
>>230 >>231
なるほどVC++の初心者に使いかたを教えるスレだったんですね気づきませんでした

C/C++の知識が無いプログラミング初心者なんです
それでVC++インスコしてネットや本屋で教本の類を幾つか読んでみたんですけどVC++を使って教えてるのが見つからなかったんですよ
全くの初心者なので用語の意味とか全然分からないし本で言っている事がVC++の機能のどれを指してるのか、どこにあるのか分からなかったりと
なかなか先に進まないのでVC++2008を使った解説本が無いかと思ったんですがお勧めの物ありませんかね?
それともやっぱりC/C++スレで聞いたほうが良いですかね?

234 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 02:04:00 ]
CかC++をやって、言語の仕様をしっかり理解してからVCやることをオススメする
Cを理解する頃には意味不明なところがしっかりわかるようになるはず

235 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 02:20:19 ]
>>234
そういう意味でのVCではなくて、プロジェクトの作ってビルド・実行するとかデバッガの使い方について知りたいんだと思う。

236 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 02:27:47 ]
そーいうのはヘルプ見りゃわかるだろ。
ただし、C/C++の用語がわからんと理解できんだろーから、必要なのはC/C++の入門書ということになる。

したがってスレ違い。

237 名前:223 mailto:sage [2009/07/23(木) 10:35:21 ]
223です。説明が足りないといわれたので、追記に来ました
upload.jpn.ph/ にUPしました
u44616.jpg  というファイル名です
左が線だけの状況。実は点なんですが、DrawLineで繋げてます。
閉鎖空間であることは確認済みです
右が223のプログラムで塗りつぶそうとした結果です
どうみても失敗してます。原因がわからなくて悩んでました

238 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:31:24 ]
>>237
画像のアドレスはこういうふうに書けば回答者がすぐに確認できる
ttp://upload.jpn.ph/upload/img/u44616.jpg

それからソースが汚すぎる。
ちゃんと式の終わりごとに改行して演算子の前後にスペースを入れて
インデントをつければ「forの終わり」とかコメントをいちいち
書く必要がなくなる。たとえばこんなふう

int i, j, k;
for (i = 0; i < 10; i++)
{
  for (i = 0; i < 10; i++)
  {
    k = i + j;
    printf("%d ", k);
  }
}

ちゃんと調べたわけじゃないけど、whileの中で変数 i をいじってるのが
原因じゃないかって希ガス

239 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 11:56:14 ]
うちで試してみたら、ちゃんと動いたじぇ
追加したのは、変数宣言と、DrawLineでテスト用の画像をてきとーに作る部分だけ

int i, j, mode;
int bforx, bfory;

個人的には、いちいちRGBに分解した意味がわかんなかったけどもな

240 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:14:24 ]
そのアルゴリズムだと、境界線の角度が浅くて横に2ドット以上
白いピクセルが続いた時におかしくなる
白いピクセルの連続が偶数個だと、そのラインは塗られないから
黒く残ってシマシマになる



241 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:16:38 ]
あ、白じゃなくて赤か。

242 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 12:36:16 ]
シマシマ節子さん

243 名前:223 mailto:sage [2009/07/23(木) 13:08:23 ]
回答ありがとうございます
一応、白が続いた時用にwhileで境界線である白の終わりを判断して飛ばしてます。
while(r==0){abcclr=abcimg->GetPixel(i+1,j);r=abcclr.R;i++;}
>240 さんの言うところが調子悪かったのですね。いじってみます。
RGBに分けたのは、今後の発展を考えてでありまだ何も実装してません。


244 名前:デフォルトの名無しさん [2009/07/23(木) 13:30:05 ]
LNK2019とLNK2001のエラーがどうしても消えないのですが、
何が原因のものなのでしょうか

245 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 13:40:38 ]
>>244
ヘッダのインクルード忘れ。
ライブラリのリンク忘れ。

246 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 14:00:33 ]
>>243
だから、改行とインデントはちゃんと入れろと言ってるのに
while (r == 0)
{
  abcclr = abcimg->GetPixel(i + 1, j);
  r = abcclr.R;
  i++;
}

247 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 14:30:08 ]
VC6でCDiaLogを基にしたCTestクラスを作って

void CTest::OnButton1()
{処理}

void CTest::OnButton2()
{処理}

上のようなプログラムはクラスウィザードで出来ますが

void CTest::OnButton1()
{関数();}

void CTest::OnButton2()
{関数();}

void 関数()
{
処理
}

処理にUpdateData()などCDiaLogクラスの関数(メンバ)を使ってるから
エラーになります。ボタンを押す、などのイベントがあるなら関数を
作れますが、CTestにアクセスできる空の関数を作るにはどうしたら
良いですか?


248 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 14:55:05 ]
>>247
クラスウィザードで作れるでよ

249 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 14:55:23 ]
>>247
void CTest::関数()  // CTest のメンバ関数にすれば、処理にUpdateData() してもアクセス違反にならない。
{
処理
}


250 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 15:27:47 ]
>>248-249
クラスウィザードでのやり方がわからないので最初に249の方法
試したら出来ました。サンクス。



251 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 21:43:05 ]
directxを使ったコードを書き、フォームを追加してみたのですが
「1>cl : コマンド ライン error D8016 : コマンド ライン オプション '/MTd' と '/clr' は同時に指定できません」
と出てコンパイルエラーが出ます。この二つは併用できないと思っていいんでしょうか??


252 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 21:54:08 ]
>>251
はい。DLL版CRT使いましょう。

253 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 21:57:12 ]
>>252
ありがとうございます
C++ややこしいですね><

254 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 22:12:39 ]
/clrということはC++/CLIだからC++ではない

255 名前:デフォルトの名無しさん [2009/07/27(月) 16:37:52 ]
Visual Studio2008で
ソースの文字検索時に該当箇所を一括で強調(色が変わるとか)して表示するような設定ってありますか?
次を検索・・次を検索で見ていく方法が使いにくいです


256 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 16:44:38 ]
>>255
VS2008内蔵エディタには、検索した文字列に一括で色を付ける機能はないので、
外部エディタを何か設定して使うといい。
あとは、行単位になっちゃうけどブックマークぐらいかなあ。

257 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 12:52:30 ]
Visual Studioはバージョンアップごとに進化しても、Visual C++はまったく進化しないな。

258 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 12:56:48 ]
バージョンが上がるたびにコマンドの位置や名前が変わること…
それがMicrosoftの考える「進化」。

259 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 17:13:13 ]
>>257
2010のインテリセンスは進化しているって。

260 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:38:59 ]
クラスのメンバ関数がよくわからないのですが、詳しく解説してる本とかありますか?




261 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:55:12 ]
MSDN

262 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:28:07 ]
MSDNって小難しい上に時々間違ってない?

263 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:34:23 ]
詳しく解説してる本ほどじゃない

264 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:43:33 ]
俺詳しくないから、MSDNで調べてその意味を調べるためにネットを徘徊する羽目になる

265 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 07:08:20 ]
msdnってある程度知識がないと読めないのがネックだな

266 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:04:29 ]
VCの特定のクラスの特定のメンバ関数じゃなくて
メンバ関数そのものがわからないならMSDNじゃなくてオブジェクト指向か言語の本

267 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:36:54 ]
そっちか

268 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:28:14 ]
質問させてください。
Form1からForm2を呼び出すことはできたのですが、その後
Form2からForm1を呼び出すべく、Form1をForm2にインクルードすると
どちらでも定義が見つからない旨のエラーが出てしまいました。

どのようにすれば相互に見つけられるでしょうか?

269 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:57:19 ]
>>268
インクルード命令ってのは、インクルート先のファイルをその場所に展開する命令。
頭の中で、展開されるとどうなるのか想像してみれ。

あと一応インクルードガードでググっておくこと。

270 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 23:27:18 ]
C++じゃなくて、C++/CLIの悪寒。



271 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 23:35:50 ]
おおおおそろしや

272 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:49:39 ]
今日ビルドしたら急に他のPCで動かなくなりました
29日に公開されたランタイム入れたらできたんですが
これって新しくランタイムいれなくてもいいようにできますか?

273 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:04:06 ]
旧版(の、ActiveX関係?)には致命的なセキュリティホールがあるので絶対に使わないこと。

274 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 02:02:20 ]
ほかのPCでもWindows Updateで新しいランタイムが自動的にインストールされるはず。

275 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 05:35:35 ]
268
Form1はmeで呼び出せると思うけど

276 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 05:36:23 ]
アンカー忘れてたw

>>268
Form1はmeで呼び出せると思うけど

277 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:22:48 ]
a

278 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 18:25:23 ]
Visual C++ 6.0を使用しています。
プロジェクト→プロジェクトへ追加→ファイルを選択すると、
「動作を停止しました」と出てきてしまいます
このせいで複数のファイルのビルドができなくて困っています
どなたか教えてください

279 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 19:06:53 ]
そうやってそんなエラーでた経験ないし、
複数のファイルのビルドができなくて困ったこともない。
どこか違う世界にお住まいの方ですか?

280 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 20:41:51 ]
すんません。visual c++ 2008をインストールした後で特定のページを閲覧すると
フォントが擦れてしまうバグってどう解決するんでしょう。

ググッても出てこなくて困っとります。以前同じような状況に陥ったときは
たしか何かフォントを削除すると直った気がするのですがさっぱり忘れてしまいました。
どなたかわかる方教えては頂けないでしょうか。すみません。



281 名前:デフォルトの名無しさん [2009/08/02(日) 09:43:51 ]
すんません。
printfが表示させる関数ってぐらいしか知識無いんですが、
ミクミクダンスを作るみたいにプリグラムできるようになるのは
どのくらい勉強したらなれるんでしょうか?
さすがに70時間勉強したら作れるとかなんて思ってません。
2年ぐらい毎日1時間ぐらいやってたら作れますか?

282 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:36:13 ]
人に理解して貰いたいならそれ相応に推敲しろよ
プログラム以前の問題だぞ

283 名前:281 [2009/08/02(日) 14:51:43 ]
初心者の僕が毎日1時間2年勉強し続けたらミクミクダンスをつくるぐらいのスキルが実につきますか?


284 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:07:02 ]
もっと短くてもいいと思うけど1日1時間じゃ、前の日のおさらいだけで終わっちゃいそうだな

285 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:19:31 ]
>>283
2年後にここに結果を書け

286 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:31:15 ]
VisualC++2003で開発されたフリーソフトを使ってるんですが、
同封されてるビープ音のwavファイルが再生されません

作者さんのサイトにはサウンドにDirectSoundを利用していると書いてあるので、
一応DirectX診断ツールを使ってDirectSoundのテストをしてみましたが、
「このサウンドカードはハードウェアによるバッファの使用をサポートしていません。
サウンドはソフトウェアバッファから再生されます。」

と注意は出るもののテストは全て成功しました。

作り手側の方たちから的確なアドバイスがいただけるかと思い質問させてもらいます。

フリーソフトはこちらになります
ttp://www.musenken.net/project/denken/

OSはXP SP2です

よろしくおねがいします。

287 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:37:18 ]
コピペかな
作者に聞いてください
WindowsUpdateはちゃんと実行しましょう

288 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:37:51 ]
>>286
ソフトの作者に訊きなさい

289 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:44:05 ]
よくあることなのかと思い気軽に質問してみましたが、確かにそれが一番確実ですね。
時間のある時にでも作者さんにメール出して一度聞いてみます。

ありがとうございます。

290 名前:286 mailto:sage [2009/08/02(日) 18:23:58 ]
さっそくメール送ってみたらエラーで返ってきてしまった…



291 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 21:45:56 ]
VC++2008で開発してます。

大容量のファイルをC++で作成するとき、ちょっとずつ書き込んでいくと、
ディスク内にフラグメントが出来そうなので、先行してディスクの領域を
確保した上で書き込みたいなと思っています。

これは考え方は正しいでしょうか?正しければ、やり方を教えてください。

よろしくお願いします。


292 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 21:51:35 ]
ofstream outfile( "filename.txt" );
outfile << data1;
outfile << data2;
outfile << data3;
...

びっくりすることに、C++のファイルストリームはバッファという仕組みがあったのです!


293 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 22:49:38 ]
>>291
SetFilePointerとSetEndOfFileを組み合わせる。
www.google.co.jp/search?q=setfilepointer+setendoffile+%E9%A0%98%E5%9F%9F+%E7%A2%BA%E4%BF%9D

誰か、SetFileValidDataについて教えて。

294 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:03:31 ]
ttp://msdn.microsoft.com/en-us/library/aa365544.aspx

295 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 12:15:59 ]
特権必要だしその用途にSetFileValidDataは全く必要ない

296 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 12:42:38 ]
Solution
  Project Main
    Main.cpp

  Project Hoge (class Hoge)
    Hoge.cpp
    Hoge.h

  Project Fuga (class Fuga)
    Fuga.cpp
    Fuga.h

MainはHogeとFugaに依存
includeパスにソリューションディレクトリを追加
Mainからは#include "(Project)/(Header).h"で参照

という風にやってるんですが
これだとプロパティを変更する時にいちいち全部のプロパティを変えないといけません
ソリューション全体で共通のプロパティを一発で適応させる方法は無いんでしょうか?

297 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 17:28:35 ]
win32APIがあるってことはwin64APIもあるのかな?

298 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 17:29:22 ]
ひとりごとです

299 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 01:50:32 ]
>>297
あるけど大差ないのでまとめてWindows APIと呼ぼうぜという雰囲気。

300 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 03:24:13 ]
>>299
レスありがとう
へーやっぱりあるんだ
勉強になった



301 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 10:23:53 ]
>>296
VisualStudioスレで聞くといいと思います。

302 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:23:28 ]
ttp://sunafukin.jp/dannatti/software/vc/control/chap6.html を参考にして
タブを切り替えると表示されるコントロールを変わるようにしたのですが
タブ内のコントロール表示は連動してるものの最初の描画位置がおかしく
ウィンドウを動かすとそれらのコントロールが置き去りになってしまいます

タブ内コントロールの初期位置、ウィンドウ移動時の
表示ずれ修正はどうすればいいでしょうか?
環境はVS2008 Proで、その際のコードは下記です
ttp://www.dotup.org/uploda/www.dotup.org12110.rar


303 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:50:13 ]
>>302
本来ならそのページの主に訊くのが筋なんだが・・・

>ウィンドウを動かすとそれらのコントロールが置き去りになってしまいます
タブに貼り付けているダイアログのスタイルを「子」にしていないだろ?

304 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:09:46 ]
>>303
その他にある Control は True にしてましたが
Styleは書かれてなかったのでホップアップのままでした
指摘された通り子にしたところちゃんと描画されました
ありがとうございます

305 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:30:07 ]
>環境はVS2008 Proで

宝の持ち腐れ。

306 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:47:44 ]
VSのToolBoxにある各アイコンを
抽出する方法ありませんか?

ResHackerで色々なexeやdllを調べたのですが
どこにも見当たらなくて



307 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 07:01:48 ]
MSに著作権があると思うのだが、無視して使うのか?

308 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 10:29:59 ]
VS2008であれば VS2008ImageLibrary.zip に同様な画像のリソースが付属している。

309 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 09:24:18 ]
VS2005のVC++で、Wizard生成のMFCアプリケーシュオンプロジェクトの質問です
Debugをアクティブにした状態でビルドしたguiアプリケーションって他のosでも動きますか?
osはxpでビルド→2000で実行なんだけどReleaseでビルドしたものだけ正常動作したのでちょっと疑問に思った



310 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:13:21 ]
うごく



311 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:19:49 ]
Debugのランタイムはどうした?

312 名前:デフォルトの名無しさん [2009/08/09(日) 18:25:54 ]
Visual C++ 2008 Express Edition を使っています。
デバッグ中にステップ実行でmain関数を抜けるときに、「現在の場所のソースコードを表示できません」
というエラーが何回も出るのですが、これはなぜなのでしょうか。
また、このエラーが出ないようにする方法はあるのでしょうか?

313 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:31:31 ]
基本的に、main関数の外は我々プログラマが関知してはいけない混沌の領域だから。
慣れてくるとそこも見たりするようになるけど。

デバッグビルドでそのエラーが出るなら、基本的にどうしようもない。

314 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:49:41 ]
>>312
俺も毎回そのエラーが出るけどなんでかわからない…

315 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:01:37 ]
「main関数を抜けた後のソースコード」を誰も書いていないから。

316 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 10:29:32 ]
スタートアップルーチンのソースを教えてないからでしょ
エラーでもないし気にしないでいいよ

317 名前:デフォルトの名無しさん [2009/08/10(月) 11:35:52 ]
Microsoft Visual Studio 2008 Professional Edition

プロジェクトのプロパティなどを開こうとすると、
「Failed to create .Net Frameworks PropertyGrid component.
Please verify that the Common Language Runtime and .Net Frameworks are properly installed.」
と表示されます。
レジストリなどで調べましたが、.Net Frameworkは2.0、3.0、3.5すべてinstalledになっています。
他のツールでもインストールされていることが確認できました。

一体何が原因なのでしょうか?
Microsoft Visual Studio 2008 Professional Edition
はフルインストールしたはずなんですが。
原因がお分かりになられた方は、回答のほどよろしくお願いします。

318 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:04:57 ]
SP1あてた?

319 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 21:51:31 ]
使用OS:WindowsXP SP3
使用ソフト:MS VisualStudio 2008 Professional Edition
症状:デバッグ時に、"MSVCP90D.dllが見つからない"と表示される。このとき、ランタイムライブラリは"マルチスレッドデバッグ DLL(/MDd)""
試した対策:
(1)ランタイムライブラリを"マルチスレッドデバッグ(/MTd)"にして、デバッグ ⇒ 正常に開始。
(2)(1)をした後に、/MDdに戻して、デバッグ。 ⇒ 正常に開始。
(3)MSVCP90D.dll があるか、検索してみる。 ⇒ 見つかる。(正常に開始したほかのパソコンと同じような場所にあった。)
(4)support.microsoft.com/kb/962219/jaの方法を試してみた。
 ⇒ インストールできない。既にインスト済みか、ほかの条件が原因。
質問:
1./MDd でデバッグできない原因はなんでしょうか?その解決方法はあるのでしょうか?
2.C++のコンパイラーの設定で、/MTd を標準にできないでしょうか?

よろしくお願いします。

320 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:52:36 ]
317です。
なぜか、二重投稿になっています。すみません。

>318
当ててなかったみたいです。自動更新で当たっているとおもっていました。
現在ダウンロード中です。解決したらまた報告します。





321 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:54:34 ]
見間違えました。 320 は 319 です。

322 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:42:01 ]
VC2008EESP1なんですがデバッガでXMMレジスタの中を見るには
どうすればいいんでしょうか

323 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 23:01:19 ]
322レジスタで右クリックするだけでしたごめんなさい

324 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 03:06:27 ]
Visual C++ 2008 EEを使っています
プロジェクトにソースファイルを次々に放り込んでいったら
ソースファイルの置いてある実フォルダが、大分カオスに散らかりました。
VCを開いてソリューションエクスプローラを開くと、そこではフィルタで整理されています。

VCのソリューションエクスプローラ以外からもソースファイルを開くことがあるので
実フォルダとソースファイルを整理したいのですが、そうするとVCがソースファイルを
見失ってしまいます。それに今後ソースファイルを追加する度にフォルダと
フィルタを手動で整理しないとダメになるので面倒です。

何かいい方法はありませんか?

325 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 03:26:53 ]
がんばれ☆

326 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 09:22:39 ]
>>324
先ずファイルを整理してから、ソリューションエクスプローラで追加しちゃいけないのか?

327 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 16:07:49 ]
俺も使い始めてまもない程度だから正しいかわからんけど1プロジェクト1クラスを心掛けてる

追加インクルードにソリューションディレクトリを追加して
新しいクラスと関連の関数とかを一まとめにしたプロジェクトを作る
プロジェクト構成でEXEではなくLIBに変える
そんでクラスを利用するコードには
#include "ProjectName/HeaderName.h"
を追加

これで一つのクラスに対して一つのフォルダが割り当てられて、IDEのほうも混乱しない


でもこれだとプロジェクトつくるたびに構成を弄らないといけないのでそこが面倒

328 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:30:39 ]
1プロジェクト1クラスはねーよwww

329 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 19:32:24 ]
どんだけモノリシックなクラスを書いているのか、と。

330 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:01:28 ]
じゃあどう管理してんだよ



331 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 20:16:09 ]
管理人さんを雇えよ。未亡人で若い奴を。

332 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 16:48:52 ]
デバッグすると
プログラム 'c:\Users\○○\Documents\visual studio2008\projects\test\debug\test.exe' を開始できません。
アプリケーション構成が正しくないため、このアプリケーションの開始に失敗しました。マニフェスト ファイルを参照してエラーの原因を調べてください。
アプリケーションの再インストールをすることで、この問題が解決する可能性があります。詳細については、アプリケーション イベント ログを参照してください。
と表示されてデバッグできません、ログにエラーは出てません。
表示されているフォルダにtest.exeは入ってます
どうしたら良いでしょうか?

333 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:01:34 ]
あーっと
使ってる環境はVS2008でOSはWindows7 32bitです

334 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:04:00 ]
>ログにエラーは出てません。
ちゃんとアプリケーション イベント ログを見た?

335 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:09:25 ]
アプリケーション構成が正しくないため、このアプリケーションの開始に失敗しました。 に一致する日本語のページ 約 58,700 件中 1 - 50 件目 (0.28 秒)

336 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:43:31 ]
>>334
"c:\Users\○○\Documents\Visual Studio 2008\Projects\test\Debug\test.exe" のアクティブ化コンテキストの生成に失敗しました。
従属アセンブリ Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" が見つかりませんでした。
詳細な診断を行うには sxstrace.exe を実行してください。
って出てました

あとビルドログに
LINK : 前回のインクリメンタル リンクで C:\Users\○○\Documents\Visual Studio 2008\Projects\test\Debug\test.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。

と出てましたがサッパリで・・・


337 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:45:56 ]
あ、リリースにしてからデバッグ開始を押したら問題なく動きました
でもデバッグで動かないって何でだろう・・・

338 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:51:48 ]
埋め込みマニフェスト無効にしたりするとうまく行くこともあるかもしれない

339 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:54:38 ]
>>336,337
要は「msvrcr90d.dllが見つからない」と言っている。

もっとも、正式リリース前のOS上で動かしているのだから
何が起きても不思議ではない。

340 名前:tor1.digineo.de mailto:age [2009/08/17(月) 17:46:52 ]
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その4
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』

yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★

> 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0
> まぁ何だ。
> 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw
> 100人規模の集団サイバーテロの主犯とか、いろいろとな。


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください



341 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 18:07:08 ]
デバッグ開始をするとプログラムを実行して勝手に閉じてしまうんですけどこれってどうにかなりませんか?
デバッグ無しで開始をするとちゃんと何かキーを押すまでウィンドウが残るんですけど
プログラムの内容は多分一番簡単なハローワールドのプログラムです

342 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 18:12:47 ]
>>341
なりません。
デバッグしてるのに途中でとめない場合ってどんな状況?

止めたけりゃ最後にブレークポイント置くとか。

343 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 18:23:23 ]
>>342
何かキーを押さないと終了しない っていうプログラムにしないと勝手に終了しちゃうって事ですね
ありがとうございました

344 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:00:20 ]
>>341
F8


345 名前:デフォルトの名無しさん [2009/08/18(火) 17:53:13 ]
質問です

エディットボックスのフォントがTerminalで、「電」や「j」を入力すると、下の部分が切れて表示されません
フォントサイズはCreateFont()で13を指定しています

フォントやフォントサイズを変えることなく、行間?を広げて、文字をすべて表示させることは可能でしょうか
もし可能であれば、方法を教えてください
お願いします

環境はOS:XP、バージョン:6.0です

346 名前:デフォルトの名無しさん [2009/08/19(水) 01:58:35 ]
ただのCからVC++に移行中なのですが、
フォームプロジェクトのmainの初期に自動で作成される引数の変数の宣言時に
array<System::String ^> ^args
と宣言されていますが、
<>内はarrayの型と予想がつきますが ^ にはどのような意味が有るのでしょうか?
ぐぐってもでてきませんorz ぐぐるワードでもいいのでご伝授お願いします

347 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 02:17:33 ]
>>346
^は大雑把に言うと特殊な(すなわち.NET Frameworkが管理するメモリを指す)ポインタ型を示すものとして、*の代わりに使う。

VC++のCLR系プロジェクトでは、C++ではなく、C++/CLI言語が用いられる。
msdn.microsoft.com/ja-jp/library/ms379617(VS.80).aspx
「最良の」はかなり誇張表現だから、ある程度割り引いて受け止めてね。

348 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 09:50:38 ]
>>346
VC++の中にもいろいろある。
フォームを使うのはC++/CLIだけど
それをわかって使ってるのでなければやめといたほうが・・

349 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 13:56:50 ]
ちなみに.NETアプリ作るわけじゃないならC++/CLIを使う必要はないぞ><
Cから移植らしいので一応いっとく

350 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 03:41:59 ]
VC++ってGUI作り易い?



351 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 04:20:57 ]
うん

352 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:54:46 ]
まぁ一番自由だよな

353 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 15:26:00 ]
Microsoft Visual Studio 9.0のVC++を利用して
コマンドプロンプトで
cl /EHsc aaaaaa.cpp
とコンパイルしているのですが、
そのまえに毎回毎回
C:\○○○\VC\bin\vcvars32.bat
としないと動きません。

環境変数でパスを通すと解決するのかもしれませんが、
どうすればパスが通るのでしょうか?


354 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 15:27:15 ]
>>346
gccとVC++は両方とも併用して挙動を覚えると良いと思うよ。


355 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 15:49:05 ]
>>353
「Visual Studio 2008 コマンド プロンプト」を使う

356 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 16:45:25 ]
>>353
.\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat の中身を覗いておみ

357 名前:353 mailto:sage [2009/08/21(金) 17:54:51 ]
>>355
ファイラで作業中に、そのフォルダを現在のディレクトリとして
開いた一般のコマンドプロンプトで作業したいのです。

>>356
見てみました。
@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
などのような記載が見つかりましたが、
ありすぎてどれを通せばいいのか分かりません。
お助けいただけますでしょうか?

358 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 17:59:26 ]
それ用のバッチファイル作れば良いんじゃね?

359 名前:355 mailto:sage [2009/08/21(金) 18:37:37 ]
>>357
>ファイラで作業中に、そのフォルダを現在のディレクトリとして
>開いた一般のコマンドプロンプトで作業したい

だから、「Visual Studio 2008 コマンド プロンプト」のショートカットをコピーして、
コピーしたショートカットのプロパティで「作業用フォルダ」を好きなフォルダに変更すればいいだけの話なんだが。

360 名前:356 mailto:sage [2009/08/21(金) 19:12:08 ]
>>357 説明メンドイ
バッチファイルに何が書かれてるか分るくらいにしておいた方がいい鴨ね

似た様なことしてる人が居た
つ ttp://d.hatena.ne.jp/Rion778/20090707/1246978147



361 名前:357 mailto:sage [2009/08/21(金) 21:22:33 ]
>>359
ありがとうございます。
しかしその好きなフォルダは毎回変わりうるため
決め打ちはできないんです。

>>360
ありがとうございます。
そのリンク先のとおりにやってきます。

皆さんありがとうございました。

362 名前:デフォルトの名無しさん [2009/08/22(土) 13:27:24 ]
main.cppとmain2.cppにファイルを分けてコードを書いています
二つのファイル両方でvecter関数などを使いたい場合は、両方のファイルでvecterをincludeする必要があるのでしょうか?



363 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:53:07 ]
ある。
というより、二つのファイルに共通なヘッダ(例:main.h)を作成して、インクルードするほうが良い。

364 名前:デフォルトの名無しさん [2009/08/22(土) 13:57:18 ]
おお、なるほど。そうします。ありがとうございました

365 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 16:32:39 ]
ベクテー

366 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 23:28:23 ]
class A{
public virtual func();
}

class B : public A
{
public func()
}

vector<A> list;
list[0].func();

ってやるとAのfuncが呼ばれるんだけどBのを呼びたい場合は
vectorはポインタを入れるしかないの?

367 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 23:40:24 ]
参照を入れてもいいぞ。

368 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 23:57:50 ]
【初心者歓迎】C/C++室 Ver.67【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1247937958/
C++相談室 part71
pc12.2ch.net/test/read.cgi/tech/1247853298/
スレを勃てるまでもないC/C++の質問はここで 12
pc12.2ch.net/test/read.cgi/tech/1248010352/
C/C++の宿題片付けます 130代目
pc12.2ch.net/test/read.cgi/tech/1250204272/
C/C++小心者スレッドPart1
pc12.2ch.net/test/read.cgi/tech/1186262298/
【C++】STL(Standard Template Library)相談室 11
pc12.2ch.net/test/read.cgi/tech/1231640024/

369 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:18:13 ]
>>367
参照ってvector<A&>ってこと?
コンパイルエラーになるけど

370 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 08:09:09 ]
Java使いですが、最近C++始めました
平山尚氏の「ゲームプログラマになる前に覚えておきたい技術」で

#include "GameLib/Framework.h"
namespace GameLib{
void Framework::update(){
unsigned* vram = videoMemory();
static unsigned i;
vram[ i ] += i * 100;
i += 9973; //1万以下最大の素数
i %= ( width() * height() );
}
}
というプログラムをサンプルソースのプロジェクトからデバッグ実行したところうまく動作しました
ところが、自分で新しく作ったプロジェクトで同じソースを書いてデバッグ実行したらリンクの時点で問題発生
これじゃ自分で新しくプロジェクトを作り出せないよー。

1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::locale::facet * __thiscall std::locale::facet::_Decref(void)" (?_Decref@facet@locale@std@@QAEPAV123@XZ) は既に GameLib_d.lib(Manager.obj) で定義されています。
1>libcpmtd.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" (?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z) は既に msvcprtd.lib(MSVCP90D.dll) で定義されています。
1>libcpmtd.lib・・・について更に10項目
1>LINK : warning LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>C:\Documents and Settings\デフォルトの名無しさん\My Documents\Visual Studio 2008\GameLib\TestGame05\Debug\TestGame05.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。

C++は初心者用の参考書(270ページ)を一冊読んだのですが、例によってエラー処理について何も解説してくれてないので途方に暮れています
なにが原因と考えられるのでしょうか?

一行目のライブラリの設定は本の指示通りやってるので大丈夫だと思います(だからこそサンプルは動いたはず)



371 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 17:33:48 ]
サンプルソースのプロジェクトをコピーして使いまわせばいいだけ
どうしてもプロジェクトから作りたかったら
プロジェクトの定義ファイル、その他のファイルの構成を見て同じにするだけ

372 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:33:32 ]
#pragma onceとかの2重定義防止がヘッダにないんじゃないか

373 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:01:08 ]
Microsoft Visual C++ 2008 Express Edition SP1
ですが
LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。
というエラーが出ます。
VC++の再インストールを解決しません。

どうしたらよいか、ご教示ください。


374 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:21:30 ]
環境は?
ツールのオプションのプロジェクトおよびソリューションのVC++ディレクトリの
Win32のライブラリ ファイルのディレクトリに該当ファイルはあるか?

EEだけだとどこになるか覚えてないが、
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib あたりにありそうだけど。
その場合、$(WindowsSDKDir)\lib の指定とか。

ファイルがあるなら、ツールの設定のインポートとエクスポートのすべての設定をリセットでどうか。

375 名前:373 mailto:sage [2009/08/25(火) 10:54:41 ]
ありがとうございます。
環境はWindows XP SP2です。

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\Kernel32.Lib
というファイルは見つかりました。
おそらく環境変数がどうかしているのだろうとは思うのですが、
ツールの設定のインポートとエクスポートのすべての設定をリセットでは
解決しませんでした。

もう一度、完全にアンインストール作業などを行った後
再インストールして見ようと思います、

376 名前:373 mailto:sage [2009/08/25(火) 11:07:43 ]
だめそうです。

プロジェクトをリビルドさせると
'cmd.exe'
でエラーが発生しました
と言われます。

これが>>373のコマンドプロンプトからコンパイルしたときのエラー
 LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。
に対応している物と思われます。

環境変数が死んでるだけだと思うのですが何故か改善できません。
(なお、環境変数の変更を反映させるためにWindowsの再起動は行っています。)


377 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:49:59 ]
cmd.exeとリンクエラーはあまり関係ない気が
まあ共通点はたしかに環境変数だけど。

>>374のVC++ディレクトリのとこの実行可能ファイルとライブラリファイルの内容はどんな?
cmd.exeは実行可能ファイルの$(PATH)が関係する

378 名前:デフォルトの名無しさん [2009/08/25(火) 15:28:26 ]
zlibのリンクでエラーが出てしまうのですが原因が分かりません
error LNK2019: 未解決の外部シンボル @crc32@12 が関数 "int __fastcall WritePNGChunk(struct _iobuf *,unsigned int,char const *,unsigned char const *)" (?WritePNGChunk@@YIHPAU_iobuf@@IPBDPBE@Z) で参照されました。

ライブラリのパスは通してあり、ランタイムライブラリはマルチスレッドで統一してあります。
環境は、XPSP3、VC2008EE、Win32アプリ、zlib1.2.3です。
解決するにはどうすればいいでしょうか?アドバイスお願いします。


379 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:33:46 ]
ちょっとググったけどファミコンのエミュレータか。
libはパスの指定だけじゃなくて、libファイルそのものも直接指定する必要があるよ。

380 名前:デフォルトの名無しさん [2009/08/25(火) 15:37:54 ]
ファミコンじゃなくてNDSですね
勿論libファイルは指定してあるのですが、他に原因分かりませんか?



381 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:41:43 ]
libpngはどうやってビルドした?
そっちに問題がある気がするが

382 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:44:03 ]
あと複数のconfigヘッダーがあるとかかな

383 名前:デフォルトの名無しさん [2009/08/25(火) 15:49:13 ]
>>381
ちょっとまだよく分かってない部分も多いんですが
これはlibpngは使ってないと思います。
PNGの処理はNDSSystem.cppってとこに書いてあるようなので

>>382
configヘッダーってなんでしょうか?
zlib.hの事ですか?

384 名前:デフォルトの名無しさん [2009/08/25(火) 15:50:16 ]
あ、zconf.hって方ですか?

385 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:11:30 ]
そういうやつ。
そもそもスタティックリンク用のヘッダになってんじゃないの?
__stdcall の関数をリンクしようとしてるが、libは__cdeclとか__fastcallとか

386 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:39:29 ]
>>385
すみません、ちょっとよく分かってないのでググって調べてたら
一応リンクは通るようになりました。

@crc32@12のような関数の修飾子は__fastcallって事みたいなので、
__fastcallでリンクしようとしてるが、LIB側は__cdeclになってるのでエラーに
なっているようなのでzconf.hの# define ZEXPORT となっているところを
# define ZEXPORT _fastcall と書き換えてzlibをビルドしたらエラーが出なく
なったんですが、こんなやり方でいいんでしょうか?
なんか違うような・・・



387 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:30:37 ]
たぶん、Config作る時にDLLかスタティックLIBかで切り替えるDefineがあって
その時にZEXPORT を書き換えてるか差し替えてるんじゃないかと思うよ。

388 名前:373 mailto:sage [2009/08/26(水) 00:40:52 ]
>>377
お返事遅れまして申し訳ありません。
ttp://loda.jp/nwl8gecgzraygwt/?id=1
このようになっています。
よろしくお願い申し上げます。

389 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:18:00 ]
もしくは、複数個所にzconf.hがあったりしないかね

390 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:30:32 ]
>>388
そういやこないだのWindowsアップデートから挙動があやしいのがいくつかあったんだった
スタートメニューのVC++のとこのToolsからコマンドプロンプト開ける?エラーでないかな



391 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:44:24 ]
ってXPは64bitだったりする?
うちはVista64だけど、VC++の設定にSysWow64出てきてないけど
こないだのアップデートでバッチファイルがかわって、Program Files (x86)の括弧綴じがうまくないようなんだよね・・・

392 名前:デフォルトの名無しさん [2009/08/26(水) 05:17:17 ]
visual studio C++ 2008で勉強している者です。
>>5の訂正が>>9>>10だと理解しました。
(コピペして実行していないけど…)


細かい質問なのですが、
私は


#include

main{
   std::cout << "Hello World" << std::endl ;

   return 0;
}
って習いました。


printf(""\n); も std::cout << "" << std::endl; も
手法が違うだけで同じという事でしょうか?
もしそうならどちらが正しい文なのでしょうか?

393 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 06:56:36 ]
>>392
お前それ本当に習ったコードそのままなのか?
C++でそんなコードを教えるような奴はおでこにPentium4を貼り付けてアッカーマン関数を解かせる刑に処してやりたいんだが。

>printf("\n"); も std::cout << "" << std::endl; も 
>手法が違うだけで同じという事でしょうか? 
そうです。 
C++言語はC言語とほぼ完全な互換があるのがウリなのですが、
C言語で提供される機能の多くは、C++の流儀にのっとった別の形で提供されています。
あなたの例では、printfがCの機能、coutがC++の機能です。
どちらも、C++としては正しい文です。


394 名前:388 mailto:sage [2009/08/26(水) 07:02:03 ]
>>390-391
Visual Studio 2008 コマンド プロンプト
 Setting environment for using Microsoft Visual Studio 2008 x86 tools.
 C:\Program Files\Microsoft Visual Studio 9.0\VC>
と出て来ました。
XPは32bitで搭載メモリ3GBです。

うーん、どうしてでしょう。。。

395 名前:デフォルトの名無しさん [2009/08/26(水) 07:51:01 ]
>>393
早いレスありがとうございます。
改めてVisual Studio c++ 2008で試してみました。
両者とも文字列は問題なく表記されたのですが、
""で囲わないで数や変数(int x;など)を表示させようとするとエラー(バグって表現すべきでしょうか?)が発生します。
printf("おまんこ\n");も
std::cout<<おまんこ<<std::endl;も大丈夫なのに
printf(0100005\n);
std::cout<<0100005<<std::end
だとprintf();だけ上手くいきません。
これはそういうもんだと割り切って次のステップに進むべきでしょうか?

396 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:18:31 ]
VC++のbeginthreadはVB.NETのスレッドのように
メインプロセス終了はワーカースレッドの終了を待ってくれますか?
それともメインプロセスが終了するとワーカースレッドを
ぶちぎりして終了してしまいますか?

397 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:18:47 ]
>>395
printfで整数を表示させる方法は書式指定子でぐぐれ
それぞれの道具(printf, cout)には道具なりの使い方がある。 ちゃんと解説書を読めってことだ。

398 名前:デフォルトの名無しさん [2009/08/26(水) 10:01:17 ]
>>397
解説書買いましたが、
www.nicovideo.jp/watch/sm5044927
がわかりやすいので先にこっちで勉強してました。


前の解説本の冒頭に書いてあったのですが、道具なりの使い方というと
包丁の使い分けみたいなものだと理解しても平気でしょうか?


と、書いて気づいたけど、なんか話が脱線してきた・・・orz
とりあえず、このスレに頼りっぱだったので
ググってみます。
ありがとうございました!!
ありがとうございました。

399 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:01:20 ]
だいじなことなのでにどいいました。

400 名前:370 mailto:sage [2009/08/26(水) 11:20:29 ]
>>371
うまくいきました。
ありがとうございました。
ランタイムライブラリを
「マルチスレッドデバッグ(/MTd)」にすべき所を
「マルチスレッドデバッグDLL(/MDd)」にしてたのが原因でした。
ご指摘を受ける前にもソリューションのプロパティをうまく行く奴版と全部比較してたんですが
テキストエディターで読めるとは思わなくて一々VCで開きなおして見てたんでもうイライラしてました
結局見逃してたんですね
エディタで見てやっと発見できました



401 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:39:18 ]
>>392
すごい釣りだ。^^;

printfは組み込み型にしか使えない。
coutはユーザー定義型(クラスとか構造体とかうにおんとか…)にも使える。

402 名前:386 mailto:sage [2009/08/26(水) 11:42:08 ]
実は、このソース公式から落としたtarballを解凍した奴だったんですが、
なんか色々足りないファイルとかもあったので、もしかしてと思ってsvnから
直接引っ張ってきたら、予想通り必要なファイルが全て揃っていて、何の
問題もなく一発でビルドできました。

あの苦労は何だったんだって感じですが、呼び出し規約とか今までおざなり
にしてたことが少し分かったので勉強になって良かったです。
因みにこのサイトが凄く分かりやすかったです。ttp://ray.sakura.ne.jp/asm/9.html

これで、やっと目的の開発に取りかかれそうです。
レスくれた方々ありがとうございました。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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