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