1 名前:デフォルトの名無しさん [2008/07/31(木) 18:02:28 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
2 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:03:50 ] 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/
3 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:04:33 ] 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
4 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:08:44 ] 【関連スレ】 ■MFC相談室 mfc19d.dll■ pc11.2ch.net/test/read.cgi/tech/1207301867/l50 Win32API質問箱 Build68 pc11.2ch.net/test/read.cgi/tech/1215348804/ 【C++】 DirectX初心者質問スレ Part18 【C】 pc11.2ch.net/test/read.cgi/tech/1216270204/ C言語なら俺に聞け(入門篇) Part 33 pc11.2ch.net/test/read.cgi/tech/1217073697/ 【初心者お断り】ガチ規格準拠C専用スレ Part133 pc11.2ch.net/test/read.cgi/tech/1201153965/ C++相談室 part63 pc11.2ch.net/test/read.cgi/tech/1217008269/ C/C++の宿題を片付けます 114代目 pc11.2ch.net/test/read.cgi/tech/1216746971/ 【初心者歓迎】C/C++室 Ver.57【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1216215558/ 【関連サイト】 猫でもわかるプログラミング www.kumei.ne.jp/c_lang/ MSDN ライブラリ ※変更された msdn.microsoft.com/library/ja/ msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち) Platform SDK Update ※変更された www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Google www.google.co.jp/
5 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:09:25 ] 【このスレの前身 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.html
6 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:09:54 ] 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 テンプレ終わり。
7 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:50:37 ] VS2008のSP1はまだかな〜
8 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:52:57 ] 案外ウィルスに感染しているとかってオチじゃないか?
9 名前:8 mailto:sage [2008/08/01(金) 00:54:43 ] 誤爆スマン
10 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:09:17 ] VC++6.0を使っています。 vector<string>の宣言時に一括して配列へ文字を 代入したいのですがどうすればいいのでしょうか。 javaとかだとこんな感じの事です。 var s1 = ["【", "】"];
11 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:19:06 ] C++スレで質問すればいい
12 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:23:36 ] CStringListのがいいよ
13 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:31:17 ] 初心者なら素直に本でも買って勉強しろ ろくに勉強もしないで人に聞くのは感心しない
14 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 18:08:23 ] >>11 C++スレ行ってみます。 >>12 vectorであるのかなと思いまして。
15 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 18:57:56 ] 質問です。 システムフックによって任意のウィンドウを操作するプログラムを作成しているのですが、 以下のウィンドウクラスのウィンドウを移動、リサイズすることができません。 ・afx:... ・WTL:... ・TApplication WM_CREATEメッセージをフックしているのですが、他のメッセージを処理する 必要があるのでしょうか?処理対象のウィンドウが間違っているのでしょうか? 開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
16 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 19:03:16 ] スタイルとか属性とか調べるものがあるだろ
17 名前:15 mailto:sage [2008/08/02(土) 19:27:39 ] >>16 レスありがとうございます。 以下のページに記載されている方法によって操作対象のウィンドウを抽出しています。 blog.goo.ne.jp/masaki_goo_2006/e/e6586cd582874300c0e97e12a1056415 ウィンドウの抽出条件に問題があるのでしょうか?
18 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 19:41:32 ] WM_CREATE以外で動けばメッセージがまずい WM_CREATE以外でも動かなかったら処理対象のウィンドウがまずい
19 名前:15 mailto:sage [2008/08/02(土) 19:57:25 ] >>18 レスありがとうございます。 WM_SIZEメッセージをフックするようにしたところ、afx:...とWTL:...の操作に成功しました。 しかし、TApplicationの操作に失敗します。
20 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 21:53:42 ] >>15 たしかTApplicationではなく、そいつをオーナーにしているウィンドウが 実際に画面に表示されているウィンドウのはず。
21 名前:15 mailto:sage [2008/08/03(日) 01:48:33 ] >>20 レスありがとうございます。 www.asahi-net.or.jp/~HA3T-NKMR/vcl3-2.htm TApplicationの子ウィンドウを操作することによって 移動、リサイズすることができるようになりました。
22 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:42:49 ] VS2008 ExpressEditionsをインストールしようとしたのですが、 ttp://xtp0001.s3.x-beat.com/cgi-bin/up/source/Sonata_25362.jpg この D: 243MB が気になって夜も眠れません 外付けHDD(H:\)を繋ぐと H: 243MB と表示されます これは何なのでしょうか
23 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:48:50 ] ウイルス
24 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:49:33 ] >>22 ウイルスだな
25 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:51:42 ] 割れ厨
26 名前:22 mailto:sage [2008/08/04(月) 22:26:50 ] >>23-24 ウイルスとはどういうことでしょうか?
27 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 22:37:07 ] すでに手遅れだから気にしなくていい
28 名前:22 mailto:sage [2008/08/04(月) 23:11:06 ] >>27 分かりました ありがとうございます。これで夜もぐっすり眠れます
29 名前:デフォルトの名無しさん [2008/08/05(火) 17:59:55 ] ピクチャボックスに表示してある画像をファイルに保存するのは、どうすればいいのでしょうか?
30 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:07:37 ] >>29 望む画像形式のデータを構築して、ファイルをopenしてwriteする。
31 名前:デフォルトの名無しさん [2008/08/05(火) 20:30:10 ] エディットボックスに数字以外入力できない様にするにはどうすればいいんでしょうか? タイプはCString型です。
32 名前:デフォルトの名無しさん [2008/08/05(火) 20:38:49 ] C++初心者が1番最初に作ってみるといいプログラムって何ですか?
33 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:24:23 ] キー入力見て数字以外は無視 コピペされたら数字以外除去
34 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:26:11 ] >>32 HelloWorld!
35 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:48:00 ] ES_NUMBER
36 名前:デフォルトの名無しさん [2008/08/06(水) 00:14:36 ] いまVisualc++2005でウィンドウアプリケーションの勉強してるんですが、 HWND hWnd や HINSTANCE hCurInst とは int a みたいな感覚でいいんでしょうか?hWnd、hCurInstのところは自分で勝手に変えられるのでしょうか?
37 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:17:34 ] >>36 その認識で合っている。
38 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:37:41 ] おお、そうなんですか。モヤモヤが晴れましたどーもです!
39 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 01:30:58 ] 【事件】 熱上昇気流で突風! 都内パンチラスポット news24.2ch.net/test/read.cgi/news7/1212845155/l50
40 名前:デフォルトの名無しさん [2008/08/06(水) 09:59:26 ] スピンボタンを使いたいんですけど、数値の自動関連付けと自動表示を使わずに、 エディットボックスの文字列をOnDeltaposSpin1関数 内で取得して変数に変換してこの値にスピンボタンを押したとき エディットボックスの文字列の値が指定しただけ増えるというような 設定にしたいのですがOnDeltaposSpin1関数でエディットボックスの 文字列を取得する方法がわかりません。 どうか教えてください。
41 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 10:04:41 ] GetDlgItem(IDC_xxx)->GetWindowText() ていうか、エディットボックスの文字列、普段どうやって取得してるの?
42 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 10:11:20 ] UpdateData(TRUE)
43 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 10:17:39 ] あー、そんなのあったね
44 名前:デフォルトの名無しさん [2008/08/06(水) 10:46:20 ] うまくいきましたありがとうございます。
45 名前:デフォルトの名無しさん [2008/08/06(水) 17:09:05 ] ダイアログ上にエディットボックスとボタンがあって、ボタンを押すと エディットボックスに表示されている文字列が保存されるという事をやりたいんですが、 inifileを使えばいいらしいんですけど調べてみても使い方がよくわかりらないので 教えて下さい。お願いします。
46 名前:デフォルトの名無しさん [2008/08/06(水) 19:01:52 ] VisualC++2005でWindowsフォームアプリケーションを選択してソースを覗いたのですが、 Application::EnableVisualStyles() #include "stdafx.h" using namespace System; using namespace System::Reflection; using namespace System::Runtime::CompilerServices; using namespace System::Runtime::InteropServices; using namespace System::Security::Permissions; この様な中身になっているのですが、これは何の言語なのでしょうか?C、C++? 初めて見る形なので戸惑ってます・・・
47 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:05:22 ] C++/CLI というやつです。
48 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:07:12 ] つーか、その部分だけなら普通にC++だけどなw
49 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:16:31 ] C++なんすか!すんませんCしかやったことなかったんです・・・どうもっす!
50 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 23:12:41 ] _itoa_s _i64toa_s _ui64toa_s の違いがわからんのですが int long int unsigned long int に対応したitoa という認識でおKですか?
51 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 23:58:29 ] 64ビットCPUバージョン
52 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:01:35 ] >>49 C++/CLIは最早C++ではないぞ。
53 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:47:24 ] まじすか・・・ようやくCを覚えてきたのに、この先不安じゃ・・
54 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 03:26:17 ] VC++2008でPathFileExistsを使う前と使った後で GetProcessMemoryInfoでヒープメモリを比べてみた所、 ファイルサイズ分?メモリを消費していました。 PathFileExistsの後にこの分のメモリは解放できないのでしょうか。
55 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 04:40:43 ] shlwapi.dllを逆アセして調べる
56 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 06:10:53 ] いちいち解放してると効率悪いから、わざと解放しない場合もあるし プログラムがおわった時点で解放されてれば問題なし
57 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:53:48 ] なるほどです。 ファイルを読み込ませる時のチェックに使っているので、 その度にメモリへ蓄積されていってくのですが、 こちらは気にしなくても良いのでしょうか。
58 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 09:02:42 ] プログラム終了までにメモリ不足にならない保証があるならいいんじゃない?
59 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:01:16 ] ファイルを沢山読み込ませるような事をすると不足になる可能性が…。 そういった場合はどうすればいいのでしょうか。
60 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 13:10:19 ] PathFileExistsに問題があったら他でも問題になってるはずだから PathFileExistsには問題がなくてお前のプログラムに問題があるか、 全然問題ないのに単なる妄想でいらない心配してるかのどっちかだろ
61 名前:デフォルトの名無しさん [2008/08/07(木) 13:54:56 ] すいません上書き保存ってどうやるんですか? ↓のような保存ボタンと読み込みボタンを作って保存して読み込みしたら、 読み込みには成功したんですけど、もう一回保存を押して読み込みを押しても、 一回目の値が表示されます。 TCHAR szIniFile[MAX_PATH+1]; LPCTSTR szSection; GetModuleFileName( NULL, szIniFile, sizeof(szIniFile) ); for (int i = _tcslen(szIniFile) - 1; i >= 0; i --) { if (szIniFile[i] == _T('\\')) { szIniFile[i + 1] = _T('\0'); break; } } _tcscat(szIniFile, "setting.ini" ); szSection = _T("No"); WritePrivateProfileString(szSection, _T("No.1"), m_ed, szIniFile);
62 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:07:41 ] >>61 それだけ書かれても原因はわからん。 そこ以外に問題があるんじゃないの?
63 名前:デフォルトの名無しさん [2008/08/07(木) 14:23:52 ] さっきのが保存ボタンのソース全部で読み込みボタンはこれでエディットボックスに 表示する文字列を扱ってます。なにか 指定先にすでにファイルがある場合消去して書き直すような方法はないでしょうか? ほかの部分が問題っていうのはもっとほかの部分なんでしょうか? TCHAR szIniFile[MAX_PATH+1]; LPCTSTR szSection; char tmp[6]; GetModuleFileName( NULL, szIniFile, sizeof(szIniFile) ); for (int i = _tcslen(szIniFile) - 1; i >= 0; i --) { if (szIniFile[i] == _T('\\')) { szIniFile[i + 1] = _T('\0'); break; } } _tcscat(szIniFile, "setting.ini" ); szSection = _T("No.1"); GetPrivateProfileString(szSection, _T("No.1"), _T("0"), tmp, sizeof(tmp), szIniFile); SetDlgItemText(IDC_EDIT1,tmp);
64 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:52:45 ] 実際にiniファイル直接開いて中見てみりゃいいじゃん。 VistaでProgram Files の中で実行してる、とかじゃないだろうな? あまりiniファイルお勧めしないけどな。
65 名前:デフォルトの名無しさん [2008/08/07(木) 16:00:37 ] なんかいろいろいじくってたらよく分からないけど上書き保存できるようになりました。 アドバイスしてくれた皆さんありがとうございました。 イニファイルのなかってメモ帳みたいですね。 いろいろじくってたせいでいろんな値が入ってました。
66 名前:デフォルトの名無しさん [2008/08/07(木) 16:01:26 ] ていうかメモ帳って書いてありました。 すいません。
67 名前:デフォルトの名無しさん [2008/08/07(木) 16:53:48 ] コンボボックスの使い方で コンボボックスの選択位置を読み取るには、 int n=comboBox1->SelectedIndex; を用いる。一番上が選ばれている場合は、n=0になる。 って書いてあったのでそのままコピペしたら comboBox1定義されていない識別子です SelectedIndex左側がクラス、構造体、共用体へのポインタではありません。 ってエラーが出てきたんですけどどうしたらいいんですか?
68 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:06:19 ] >>67 環境は? FormならComboBox貼り付けたらデフォルトでそういった名前になってると思うが。 MFCなら右クリックで変数の追加、Win32APIならもうちょっと別な方法になる。
69 名前:デフォルトの名無しさん [2008/08/07(木) 17:11:16 ] レスありがとうございます。 VC++6.0のMFCで作ってます。
70 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:20:06 ] ググったけど、これか。 ttp://homepage3.nifty.com/ishidate/vcpp05_3/vcpp05_3.htm ここでの解説はフォームアプリだからVC++6.0じゃ参考にならないよ。 まあMFCなら、変数の追加でControlで好きな名前で追加して、 その名前.GetCurSel() になるかな。
71 名前:デフォルトの名無しさん [2008/08/07(木) 17:24:15 ] 保存ボタンと読み込みボタンとコンボボックスとエディットボックスを使って、 コンボボックスはドロップダウンリスト形式にして、 リストが1.2.3.の三つを作ってドロップダウンリストから1を選んでから 保存ボタンを押すと1にエディットボックスのデータが保存されて、 2を選んでから保存ボタンを押すと2番に保存される、 読み込みボタンの方も同様に1を選んで読み込みを押すと1のデータが読み込まれる、 といったプログラムを作りたいんです。 それでコンボボックスをダイアログに貼り付けてOnSelchangeCombo1() という%
72 名前:デフォルトの名無しさん [2008/08/07(木) 17:25:09 ] 保存ボタンと読み込みボタンとコンボボックスとエディットボックスを使って、 コンボボックスはドロップダウンリスト形式にして、 リストが1.2.3.の三つを作ってドロップダウンリストから1を選んでから 保存ボタンを押すと1にエディットボックスのデータが保存されて、 2を選んでから保存ボタンを押すと2番に保存される、 読み込みボタンの方も同様に1を選んで読み込みを押すと1のデータが読み込まれる、 といったプログラムを作りたいんです。 それでコンボボックスをダイアログに貼り付けてOnSelchangeCombo1() という関数を追加したんですがここからどうしたらいいのか分からなくて困ってます。 初心者でよくわからないので教えてもらえたらありがたいのですが。 保存ボタンと読み込みボタンはなんとか作りました。 ひとつしかデータセーブ出来ませんけど。
73 名前:デフォルトの名無しさん [2008/08/07(木) 17:28:51 ] >70さん レスありがとうございます、試してみます。
74 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:31:59 ] VC++6.0久しぶりに触ってみたけど、 変数の追加の部分は、右クリックでClassWizard...選んでメンバ変数から 該当のコントロール選んで変数の追加でカテゴリをコントロールにする、だな。
75 名前:デフォルトの名無しさん [2008/08/07(木) 17:32:29 ] 70さんに教えてもらった方法を試したら値がとれました! ありがとうございます。
76 名前:デフォルトの名無しさん [2008/08/07(木) 17:58:35 ] 値は取れたのでこの値を使って if(m_combo1.GetCurSel==0){0の場所に保存する} という感じだと思うのですが、 すいません実は61からの質問全部僕のなんですけど、保存する場所を変えるにはszSection を変えれば良いんですかね。 コンボボックスの関数追加しなくてもよかったのかな? どうもわかりません、教えてもらえないでしょうか?
77 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 18:15:19 ] iniファイルは、 [section1] key1=param1 という形式。 同じ項目ならkey1を増やせばいいし、カテゴリ増やすならsectionかえればいい。}
78 名前:デフォルトの名無しさん [2008/08/07(木) 18:47:15 ] ありがとうございます。 がんばってみます。
79 名前:デフォルトの名無しさん [2008/08/07(木) 20:14:50 ] おかげさまで保存ボタンの方は3つの場所に分けて保存する事が出来たっぽいんですが、 読み込みボタンで1番以外を選んで読み込むとフフフフフフフフとか出てきて 上手く読み込めません。 これはどういった現象なんでしょうか?
80 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 20:40:06 ] >>79 debugビルドだよね?きっと「フ」じゃなくて「フ」だよね? なら、プログラムが値を入れていない所を読み出したってこと。 www.google.co.jp/search?hl=ja&q=%EF%BE%8C%EF%BE%8C%EF%BE%8C%EF%BE%8C%EF%BE%8C%E3%80%80debug&lr=
81 名前:デフォルトの名無しさん [2008/08/07(木) 20:51:42 ] そうですフフフフフフフフフフフフです、 でもフフフフフフフフフが一瞬表示されてから、規定の範囲内の値を入れてください、 って警告が出た後、ちゃんと2番目のデータが表示されるんです。 なんで一番目だけうまくいくのか不思議です。
82 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 20:51:55 ] charは1バイトだから8ビットときいたのですが 0〜255までの数値を入れることができるということですよね? charに数値を入れるにはどうしたらいいですか?
83 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:07:25 ] そのまま普通に数値を代入すれば良い
84 名前:デフォルトの名無しさん [2008/08/08(金) 04:56:56 ] お世話になります。 C++で質問です。 Visual c++ 2008で勉強中です。 ヘッダーファイルの使い方をお聞きします。 ある本のCDについていたコードなのですが、 hoge.h hoge.cpp というファイルがありました。 ヘッダーファイルにはクラスの定義しか書いていなくて、 cppファイルにそのクラスで利用する関数の中身が書かれていました。 自分はこのままでは、ヘッダーファイルをincludeしても利用できないと考えています。 でも、上記のヘッダーファイルをincludeしたファイルを動かすことができます。 何故上のようにかけるのでしょうか? また、ヘッダーファイルにはクラス定義しか書かなくて、 そのメンバ関数の実装はヘッダーと同名のcppファイルに記述するのが現場ではいいとされているのでしょうか? 「お前これ分かってないからここ調べろ」という意見もぜひお願いします。 誰かに聞くことができない状態なので、ものすごく助かります。 お願いします。
85 名前:デフォルトの名無しさん [2008/08/08(金) 05:32:05 ] VISUALC++に限った話ではないのですが、これを勉強してて思ったのでちょっと質問させてください。 アプリ開発の際は、メモリをどう考えるのでしょうか? たとえばPS1だとVRAMが少ないから格闘ゲームには不向きだ、セガサターンの方が向いてる、みたいな話を見たことがあるのですが 大規模な開発をする場合は、メモリはかなり重要な問題なのでしょうか? 今まではCでソートだとか入出力みたいな勉強しかしてこなかったので、進んでいくうちに疑問がわいてきました。 できればレスお願いします・・・
86 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 05:35:50 ] ヘッダファイルってのは要するにこんな関数 まあこの場合クラスだけど、どこかにはありますよと言う宣言だから そのヘッダファイルをインクルードして実装している ソースファイルがきちんとあれば 他では宣言だけ見て存在だけ知ってれば使える あと現場では良いとかじゃなくて普通そうするもの
87 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 05:37:48 ] そんなのはメモリを相当喰うようなプログラムを作る時に考えれば良いんじゃない?
88 名前:デフォルトの名無しさん [2008/08/08(金) 05:52:30 ] >>86 ヘッダーについて回答ありがとうございます。 なるほど。では、ヘッダーは1つで、実装してるcppが2つある、 ということもあるのでしょうか? ヘッダーを利用するプログラムによって、そのcppを切り替えたりすることができそうな 気がしいるのですが、そんなことってありますか?
89 名前:デフォルトの名無しさん [2008/08/08(金) 06:27:20 ] VC++で質問です。 開発する際、ソリューションエクスプローラの使い方がいまいち分かりません。 たとえば電卓をGUIで作るとき、どのようなプロジェクト構成になりますか? ■予想1 ソリューション電卓 電卓プロジェクト ソースファイル ○GUIソース、処理ソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) それとも、 ■予想2 ソリューション電卓 GUIプロジェクト ソースファイル ○GUIソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) 処理プロジェクト ソースファイル ○処理ソース ヘッダーファイル ○(必要なもの) リソースファイル ○(なし) 予想2のように、モジュールごとにプロジェクトを作成するのものなのでしょうか?
90 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:49:02 ] >>84 cpp はコンパイルして obj になるだろ。 関数そのものは、このobjとリンクして使えるようになるんだよ。 その関数の使い方が書いてあるのがヘッダだし、 1つ以上のobjをまとめたものが lib ファイル。
91 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:51:14 ] >>85 そのソートだって、膨大なデータをソートするとなると オンメモリでできるのかどうかが重要になるでしょう。 ゲームで問題になるのは、リアルタイムで動作させなくちゃならないから、 できる限りオンメモリにしておく必要があるからな。
92 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:44:52 ] >>89 モジュールごとにプロジェクトを作成する。 けど、上記のモジュールってできあがるファイルのことよ。exeとかlibとかdllとか。 もんの凄い強力な電卓でなければ、普通はGUIと計算を別モジュールに分けないでしょうね。 「分けるのが目的なんだ」ってことならば、分けるのは可能です。
93 名前:デフォルトの名無しさん [2008/08/08(金) 15:30:49 ] >>90 >>92 回答ありがとうございます。 どうやらC++でのプログラムの作り方自体自分はよくわかっていないようです。 何か勉強になるサイトや本、見るとためになるようなものがあれば教えていただけませんか?
94 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:43:14 ] 習うより慣れろ
95 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 19:06:15 ] >>83 ありがとうございました charに数値を入れることができました ひょっとしてcharを配列にすると8Bit以上の数値を入れることもできますか?
96 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 19:28:03 ] なぜ試さないの?
97 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:04:46 ] >>85 分野にもよる。 家庭用ゲーム機は全体的にメモリが(同時期のPCと比べ)少ない場合が多いというだけ。 だからその分上手にやりくりしないといけない。 PCやサーバだとあまりそういう話は聞かない。無駄遣いは忌避されるべきだがそこまでシビアにはならない。
98 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:13:04 ] 使えるメモリは有効に使うべき。ってのがVista
99 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:50:06 ] >>85 PSとサターンで同じゲームを作ったときは どの文字を使うかってのも気を使ってた 同じシーンで使う文字種を減らしてフォント絵のメモリ節約とか
100 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:53:12 ] 音源仕様の差は面倒だったなぁ
101 名前:デフォルトの名無しさん [2008/08/09(土) 16:46:11 ] ここにはゲーム製作者もいるのかお
102 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:50:39 ] ゲームってどうやって作ってたん? キャラ動かしたりするのは元データがあって、それをプログラマーが動かしてたの? プログラマーによって綺麗な画面になったり汚い画面になるとか聞いたことがあるが。。。。。。わからん
103 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:53:19 ] ゲームとか今の話なのか昔の話なのかでかなり変わりそうだが
104 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:55:51 ] 昔のゲームのハードを調べるのがいい
105 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:38:36 ] 今の3DゲームはMAYAとかでモデリングした後に、そのデータを使ってフィールド上で動かすの? それだとリアルタイムレンダリング?だからプログラマーの腕が問われるのかね。スレチだな
106 名前:デフォルトの名無しさん [2008/08/10(日) 16:47:15 ] C++で自分だけのライブラリーのようなものを作るにはどうやって 作っていったらいいのですか? ソリューションライブラリーのようなものを作って、 プロジェクトごとにヘッダーを1つずつ作ればいいのでしょうか?
107 名前:デフォルトの名無しさん [2008/08/10(日) 19:04:48 ] 106よろしく!
108 名前:デフォルトの名無しさん [2008/08/10(日) 20:18:28 ] Visual C++ 2008 Express Editionで、本に書いてある通りに ファイル → 新規作成 → プロジェクト → Win32プロジェクト → アプリケーションの設定画面で「空のプロジェクト」にチェック プロジェクト → 新しい項目の追加 → C++ファイル(cpp) として、ソースファイルに #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR 1pCmdLine, int nCmdShow ) { return 0; } というプログラムを書いて「ソリューションのビルド」をしたところ、 1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------ 1>コンパイルしています... 1>test.c 1>c:\source\test\test.c(6) : error C2059: 構文エラー : 'サフィックスが無効です。' 1>c:\source\test\test.c(6) : error C2143: 構文エラー : ')' が '定数' の前にありません。 1>c:\source\test\test.c(6) : error C2143: 構文エラー : '{' が '定数' の前にありません。 1>c:\source\test\test.c(6) : error C2059: 構文エラー : '<不明>' 1>c:\source\test\test.c(8) : error C2059: 構文エラー : ')' 1>ビルドログは "■■■■" に保存されました。 1>test - エラー 5、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== となって失敗してしまいました。 全て本に書いてある通りに行ったつもりなのですが、何がいけなかったのでしょうか。 使用OSはWindows Vistaなのですが・・・
109 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:29:08 ] 1pCmdLineがいけない
110 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:43:51 ] 変数名の先頭って数字は使えなかったんじゃなかったっけ?
111 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:10:24 ] >>109 >>110 言われた場所を変えてみたらできました! ありがとうございました!
112 名前:デフォルトの名無しさん [2008/08/10(日) 22:25:33 ] 106も答えてください
113 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:39:30 ] 自分がよそのlib使うときを考えたらわかるべ
114 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 23:52:58 ] >>106 あまりしつこいと教えてくれないよ。 プログラマとはそんな性分の奴が多いw
115 名前:デフォルトの名無しさん [2008/08/11(月) 00:29:37 ] >>106 ここで聞いても自分で使う暮らすライブラリこりこり作ってる殊勝な人間は少ないから無駄
116 名前:デフォルトの名無しさん [2008/08/11(月) 05:49:57 ] そうなのか。
117 名前:デフォルトの名無しさん [2008/08/11(月) 06:03:37 ] そうなのだ。
118 名前:デフォルトの名無しさん [2008/08/11(月) 06:18:01 ] int型整数の下三桁を抜き出したいんですが、 どうやったら効率的ですか? a=123456 とあったら、 b=456 って感じに抜き出したいんですが。 私が考えたのでは、 b=(a%10); a/=10; b+=(a%10)*10; a/=10; b+=(a%10)*100; a/=10; というのなんですが、もっとスマートなやり方ってありますか?
119 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 07:54:38 ] y = x % 1000; じゃいかんのか?
120 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:35:47 ] % 10がわかってて % 1000 が出てこないとはw
121 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 13:24:21 ] 質問です。 以下のページに記載されている内容と同じ問題が発生します。 m--takahashi.com/bbs/pastlog/05700/05696.html TrackPopupMenu()の前後でSetForegroundWindow()とPostMessage(WM_NULL)を実行しましたが、 効果がありません。どうすればこの問題を回避することができますか?
122 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 14:02:21 ] 前後ってなんだよ。 TrackPopupMenuの前でSetForegroundWindowしてる? どうしてもおかしいままなら、その部分のコード出してごらん。
123 名前:121 mailto:sage [2008/08/11(月) 15:17:09 ] >>122 レスありがとうございます。 以下がフックプロシージャです。 LRESULT CALLBACK MouseProc(int p_iCode,WPARAM p_wParam,LPARAM p_lParam) { COPYDATASTRUCT stCopyDataStruct; MOUSEHOOKSTRUCT *pstMouseHookStruct = (MOUSEHOOKSTRUCT *)p_lParam; if (p_iCode == HC_ACTION && p_wParam == WM_NCRBUTTONUP && pstMouseHookStruct->wHitTestCode == HTMAXBUTTON) { stCopyDataStruct.dwData = 0; stCopyDataStruct.cbData = sizeof(MOUSEHOOKSTRUCT); stCopyDataStruct.lpData = pstMouseHookStruct; SendMessage(g_hWnd,WM_COPYDATA,0,(LPARAM)&stCopyDataStruct); return TRUE; } return CallNextHookEx(g_hHook,p_iCode,p_wParam,p_lParam); }
124 名前:121 mailto:sage [2008/08/11(月) 15:17:43 ] 以下が本体のウィンドウプロシージャです。 LRESULT CALLBACK WndProc(HWND p_hWnd,UINT p_uiMsg,WPARAM p_wParam,LPARAM p_lParam) { COPYDATASTRUCT *pstCopyDataStruct = (COPYDATASTRUCT *)p_lParam; HMENU hSubMenu; // ポップアップメニューのハンドル MOUSEHOOKSTRUCT *pstMouseHookStruct = pstCopyDataStruct->lpData; switch (p_uiMsg) { case WM_COPYDATA: hSubMenu = CreatePopupMenu(); AppendMenu(hSubMenu,MF_STRING,0,TEXT("MenuItem")); SetForegroundWindow(pstMouseHookStruct->hwnd); TrackPopupMenu( hSubMenu,TPM_NONOTIFY, pstMouseHookStruct->pt.x,pstMouseHookStruct->pt.y, 0,p_hWnd,NULL); PostMessage(pstMouseHookStruct->hwnd,WM_NULL,0,0); DestroyMenu(hSubMenu); break; default: return DefWindowProc(p_hWnd,p_uiMsg,p_wParam,p_lParam); break; } return 0; }
125 名前:デフォルトの名無しさん [2008/08/11(月) 15:27:15 ] MSDNライブラリでprintf関数の説明を読んでみると、以下の記述があります。 ---------------------------------------------------- ライブラリ LIBC.LIB シングルスレッド スタティック ライブラリ、リテール版 LIBCMT.LIB マルチスレッド スタティック ライブラリ、リテール版 MSVCRT.LIB MSVCRT.DLL 用インポート ライブラリ、リテール版 ---------------------------------------------------- このことから、printfにはスタティックライブラリの版とDLLの版がある ということが分かります。 そこで質問なのですが、僕が作った"Hello, World"プログラムは printf関数をスタティックに.exeにリンクしているんでしょうか? それとも.exeにはprintf関数は含まれていなくて、実行時にprintf関数 を含むDLLがロードされてそれを呼び出しているんでしょうか? どうやったら確かめることができるのかを含めて教えてください。
126 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:50:02 ] >>125 プロジェクトのプロパティの「C/C++」の「コード生成」の「ランタイム ライブラリ」で指定する。
127 名前:デフォルトの名無しさん [2008/08/11(月) 18:53:08 ] keybd_event使って特定キーが押されてる間処理を繰り返したいのですが voidだからwhileの条件式に入れれませんでした。 どうすればいいのでしょうか
128 名前:125 mailto:sage [2008/08/11(月) 19:25:58 ] >>126 なるほど。オプションで指定するんですね。ありがとうございました。
129 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:19:03 ] #include <iostream> #include <vector> #include <windows.h> #include <psapi.h> #pragma comment(lib, "psapi.lib") int WorkSize(void){ PROCESS_MEMORY_COUNTERS info; GetProcessMemoryInfo(GetCurrentProcess(),&info,sizeof info); return info.WorkingSetSize; } using namespace std; int pm=WorkSize(); void MyFunc(){ vector<string> vec; for(int i = 0; i < 1000000; i++) vec.push_back("abcdefghijklmnopqrstuvwxyz"); cout<<WorkSize()-pm<<endl; } int main(){ cout<<WorkSize()-pm<<endl; MyFunc(); cout<<WorkSize()-pm<<endl; system("pause"); return 0; } VC++2008でvector+stringを使ったらメモリ解放しきれてないみたいなのですが、 これはちゃんと解放しきる事は出来ないのでしょうか。
130 名前:デフォルトの名無しさん [2008/08/12(火) 14:21:54 ] すいませんVC++6.0のMFCでCSVファイルを作るにはどうすればいいですか?
131 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:22:53 ] >>129 std::vectorは一度確保したメモリはデストラクタを除き 自動的には解放されない。 どうしてもやりたいならswap技法を。 vec.swap(std::vector<std::string> >());
132 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:24:48 ] vec.swap(std::vector<std::string>()); もしくは std::vector<std::string>().swap(vec); だった
133 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:37:34 ] >>130 CSVといっても、所詮はテキストデータ "123,456,789" とういテキストデータで、ファイル化してみれば分かる 拡張子csvだと尚良し
134 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:48:32 ] 今乗り換えというかなれておかないと大変だと思うよ。 俺は趣味でやってるからいいんだけど。
135 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:53:12 ] >>132 それをMyFuncの最後に書いてみたのですが、結果は変わらず…。 使い方が間違っているのでしょうか。 ↓メモリ表示結果 0 68435968 7213056
136 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:11:06 ] freeしてもOSにメモリが返されるわけではないし、 ワーキングセットなんてプログラム上の確保した量とはあまり関係がないし。
137 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 17:25:11 ] >>132 前者はダメだ。 非constな参照引数に一時オブジェクトは渡せない
138 名前:デフォルトの名無しさん [2008/08/12(火) 17:51:38 ] 質問させてください。 WINAPIでは、戻り値にTRUEかFALSEを多用している様に思うのですが、これは0か0以外の数値を 表しているのでしょうか? たとえばマウスの左ボタンをクリックして、クリックされたら数字の1、されなかったら0を返す、という事? いまいちイメージが掴めないのですが、0以外の数字が返された場合はその関数を正常処理する、という感じですか?
139 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:11:12 ] MBCSの場合charに1バイトと2バイトの文字を混ぜた文字列を設定したとき char[x]が1バイト文字か2バイト文字の前か後ろかを見分ける方法はありますか?
140 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:27:31 ] >>138 あまり気にせず、結果をif文その他の条件判断で使える、位に思っていればいい。
141 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:29:38 ] >>140 そうなんですか なんかしっくりこなくて戸惑ってました。ありがとうございます
142 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:30:04 ] >>139 MBCSの文字コードによるが、SJISだと前にさかのぼらないと判断できない。 UTF-8だと、1バイト文字か、2バイト以上の1バイト目かそれ以降かの判断はつく。
143 名前:デフォルトの名無しさん [2008/08/12(火) 18:39:10 ] 今、猫でもわかる〜を見て勉強しているのですが @ // timer.h #define IDM_END 1000 #define IDM_OPTION 2000 #define IDC_STATIC 3000 A// Dialog OPTDLG DIALOG DISCARDABLE 0, 0, 121, 69 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "オプション" FONT 9, "MS Pゴシック" BEGIN DEFPUSHBUTTON "OK",IDOK,7,38,50,14 PUSHBUTTON "キャンセル",IDCANCEL,61,37,50,14 LTEXT "オブションです。",IDC_STATIC,36,19,48,8 END の、1000や0, 0, 121, 69といった数字の部分がわかりません・・・。 @とAでは数字の意味が違うと思うのですが、@の数字は適当に決めていいのでしょうか? Aは何か決まりごとが?
144 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:39:52 ] >>142 つまり、コードによるけどふつうの1バイト文字と同じものが2バイトの前か後ろに 出る可能性はあるということですね 2バイト文字に含まれない文字ってないですかね〜 区切り文字として都合のいい文字を探してます
145 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 19:52:52 ] >>136 なるほどです、ありがとうございました。
146 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:16:15 ] >>144 所謂ShiftJISの2バイト目には、(単独なら)アルファベットと同じ文字コードも来れば1バイト目と同じコードも来る。 従って、前に遡って判定するか素直に頭から判定するか、対策が必要。 尤も、0x40未満のコードはShiftJISに使われないので'/'でも';'でも区切りに使えなくはないと思う。
147 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 21:29:37 ] >>143 1の数字は、同じカテゴリでかぶらないようになってれば適当で良い。 2は、ダイヤログの大きさ。後ろ二つが幅と高さ。適当に変えてみるとわかるよ。
148 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 22:31:47 ] >144 タブコードはダメ?
149 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 02:03:57 ] >>146 0x40以下のコードを調べてみようと思います ありがとうございました >>148 タブとか改行コードとか使うのが無難ですかねやっぱり
150 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:12:38 ] Visual C++ 2005を勉強中なのですが、TRACEマクロ(ATLTRACEマクロ)で ユニコード文字列(*wchar)を出力しようとして、フォーマット文字列に"%S"と 指定したら、実行時にライブラリ内のASSERTで引っかかって止まってしまいます。 TRACE出力にユニコード(漢字)文字列を出力するには、どうすれば良いのでしょうか ?
151 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:28:49 ] >>147 助かります、どうもありがとうございました。早速やってみます。
152 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:48:16 ] USBから受信したデータをキー入力に変えたいのですが パソコンのキーボードでキーを入力したときに送られるメッセージってなんですか? ソフトでこのメッセージを送ればキーボートと同じようなものも作れますか?
153 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:58:31 ] USBから受信したでーた? キー入力フックして入力内容をだますってことか? それともソフトがキーが入力されたように振舞うってことか? それなら最悪DDKとかめんどくさいのに手を出さないとだめかもな どっちにしても何が言いたいのかよくわからん エスパーな人よろしく
154 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:33:08 ] 別に受信するほうはすでにあるんだろ。 キーを送るのはウィンドウに限ればメッセージ送るだけでいいかもしれない。
155 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:44:08 ] オートマウスでも作る気か? MMORPGとかで不正行為する用か、三国人!
156 名前:デフォルトの名無しさん [2008/08/14(木) 16:24:45 ] 初心者の妄想質問です。 例えば、1つのアプリケーションなのですが扱う機能が違う為に2つのウィンドウを開いて同時に使う、という場合には どのようにしたらいいのでしょうか? 同じプロジェクト内ではなく、別々のプロジェクトでソースを書いていかなくてはならないのでしょうか? またその際は、ハンドルの名前も別々にしなくてはならないのでしょうか?
157 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:04:09 ] >>156 「一つのアプリケーション」が「一つの実行モジュール」を指すなら、逆に寧ろプロジェクトは一つにしないと(一般的には)ダメ。 一つのソースで複数のウィンドウの面倒を見るか、別のソースに分けるかは、使用するライブラリ次第。 # まぁ、普通分けるだろうけれど。 つーか、扱う機能が違うのに「一つのアプリケーション」にする理由がないなら分けた方が使い易くないか?
158 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:28:32 ] >>152 ゲームパッドの入力をキー入力に変えたいのか? だったら無理せずJoyToKey使え。
159 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:53:15 ] >>153 PICとPCをUSBで接続していて、親指先が+で他4本が−のスイッチで組み合わせによるPCへのキー入力をしたいのですが、 PICまではできてるんですが、PCのキーボードでキーを押した時と同じようにPC上に送出する関数というかメッセージというか流れが知りたいのです。
160 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:00:26 ] >>154 その辺の流れがちょっとわからないのですが、キーダウンメッセージはアクティブなウィンドウに対して受取分岐がソフト上にある場合に機能するもの なんですよね。キーが押されたメッセージ事態を作り出すにはどうすればいいんでしょうか?
161 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:47:50 ] Visual C++ 2008 Express Editionを落としてインスコしてて、諸事情でアンスコしてインスコし直そうと思ったのですが どれをアンスコすればいいのかわかりません C++をアンスコすれば全てアンスコされるのではなく、C++と一緒に複数同時にインスコされてました それぞれ個別にアンスコしないといけないようです C++ アンスコでぐぐっても的したページがヒットしません どれを消すべきかわかる方いましたらお願いします
162 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:48:28 ] アクティブじゃなくてフォーカスのあるウインドウ
163 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:49:44 ] アンダースコートがどうしたって?
164 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:35:20 ] アポリケーションの追加と削除で、VCEEとインストロール日時が同じで、見覚えの無いやつを全部消しちゃえば?
165 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:56:31 ] SQL Server CompactとWindows SDKとあと何があったっけ?
166 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 07:03:44 ] >>161 Microsoft .NET Framework 3.5 Microsoft .NET Framework 3.5 Language Pack - 日本語 Microsoft Visual C++ 2008 Express Edition - 日本語 Microsoft Windows SDK for Visual Studio 2008 Express Tools for .NET Frameword Microsoft Windows SDK for Visual Studio 2008 Express Tools for Win32 Microsoft Windows SDK for Visual Studio 2008 Headers and Libraies MSDN Library for Microsoft Visual Studio 2008 Express Edition Microsoft Silverlight
167 名前:161 mailto:sage [2008/08/15(金) 09:12:27 ] (TдT)アリガトウございました無事インスコ出来ました
168 名前:121 mailto:sage [2008/08/15(金) 16:16:15 ] コードに問題があれば指摘してください。 以下のページに記載されている方法を試しましたが、効果がありません。 homepage3.nifty.com/endou/tips/04/tips39.htm 本体のウィンドウでは、このような現象は起きません。 開発環境はVC++ 2008 Express Editionです。WindowsXP SP3で動作確認しています。
169 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 13:39:15 ] これまではC言語の学習用にEmacsを使用していたのですが、今回VisualStudio2008を購入しました。 そこで質問なのですが、VisualStudio2008にはEmacsのようにtabキーを押したときに必要なだけ字下げする機能がありますか?
170 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:18:08 ] 複数行選択時の、TAB、ShiftTABの動作が近い?
171 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:22:56 ] >>169 とりあえずキーバインド設定は変更したのか?
172 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:48:58 ] ちょっと質問があります。 std::cout << std::toupper('a') << '\n'; std::cout << toupper('a') << '\n'; この二つは何か違うのでしょうか? 上のやつは #include <cctype> しないといけないようだが・・・
173 名前:169 mailto:sage [2008/08/16(土) 21:20:11 ] キーバインド Visual Studioで検索したらやり方がわかりました。 どうもありがとうございました。
174 名前:169 mailto:sage [2008/08/16(土) 22:53:11 ] インデントはEmacsのようにできるのですが、 データの保存など他のキーの設定もEmacsのものになってしまいました。 インデントだけをEmacsのものにする方法はありますか?
175 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 02:19:20 ] そうきたか、 コマンド検索のとこに「インデント」っていれて 適当なコマンドと設定を入れ替えろ あと、プログラマ志望なら 今のうちにEmacs操作覚えた方が良いぞ、楽だから vi派って訳じゃないんだろ
176 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 02:51:42 ] ( ´д)ヒソ(´д`)ヒソ(д` )今時Emacsだって・・・
177 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 04:41:46 ] 最近の流行はなんなんだ?
178 名前:デフォルトの名無しさん [2008/08/17(日) 06:58:46 ] スレ違いかもしれませんが、教えてください。 Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)をダウンロードしてきて インストールしたのですが、インストールディレクトリが”一番空き容量が多いドライブの直下”に インストールされてしまいます。これは仕様なんでしょうか?
179 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 10:39:00 ] テンポラリ展開じゃなくて?
180 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 11:17:04 ] >>179 一時ファイルのようで、展開されたファイルは削除しても問題ないっぽいです。 お騒がせしました
181 名前:デフォルトの名無しさん [2008/08/17(日) 13:53:54 ] Visual C++ 2008 Express Editionで、 ファイル → 新規作成 → プロジェクト → Win32 コンソールアプリケーション プロジェクト → 新しい項目の追加 → C++ファイル として、 stdio.hをインクルードして文字列を表示させる簡単なコードを書いて実行したのですが、 コマンドプロントみたいなウィンドウが一瞬開いてすぐに閉じてしまったため 文字列をよく確認出来ませんでした。 どうしたら開いたままにしておけるのでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:31:25 ] あるあるw どうするんだろ 出力ウィンドウにも何も出ない?
183 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:16:03 ] 「○○を読み込みました」・「シンボルが読み込まれました。」 っていうのが4行と、 あともう1行、 「プログラム○○はコード0(0×0)で終了しました。」 っていうのが出ます。 コード0っていうのはreturn 0にしたからだと思うんですが…。
184 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:19:07 ] 邪気眼がどーのこーの
185 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:35:48 ] >>181 同じく初心者で、昨日から始めたんですが returnの前に、文字を入力する関数を入れることで対処してます。 Cだと scanf("%d",n); とかなんですが。
186 名前:185 mailto:sage [2008/08/17(日) 15:38:07 ] ごめん。 今見たら scanf("%d",&n); でした。もちろん、先にnは宣言するものとして。 でもC++だと入力するための関数違うと読んだ気も。
187 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:40:48 ] Ctrl+F5でいいじゃね?
188 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:45:39 ] そうか、、、 とりあえず、 ・確認したいだけなんだったら、stderrでメッセージ出せる ・あと処理の最後に無限ループ入れる
189 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:46:25 ] >>187 ガチで知らなかったんだがw
190 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 15:50:17 ] 全ての質問が初心者ではなく初心者を装った釣師によるものだと仮定して いかにうまくボケるかを競いあう ここはそういうスレの一つだと思い込んでいる
191 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:01:39 ] >>190 ガチで知らなかったんだがw
192 名前:181 mailto:sage [2008/08/17(日) 16:30:01 ] >>185 ,>>187 ,>>188 出来ました!ありがとうございます!
193 名前:デフォルトの名無しさん [2008/08/17(日) 16:42:45 ] dialogBoxにPostMessageしても届かないんだが、ちなみに PostMessage(hDlg,0x500,123,456); なぜだ?
194 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 16:52:28 ] お前ぜんぶ聞く気だろ 調子乗んな
195 名前:デフォルトの名無しさん [2008/08/17(日) 20:53:27 ] アふぉはだまっとれ
196 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 10:52:14 ] >>185 getchar()でいいじゃん。わざわざ変数を用意する必要があるscanf()を使うのはナンセンスだ。 >>188 無限ループってあんた、エコじゃないな。 >>181 cmd動かしておいて、コマンドラインから動かすって手もあるよ。
197 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 10:58:29 ] 昔から、return 0; の部分にブレークポイント置いている。 まあデバッグ必要ないときはCtrl-F5だが。
198 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:12:40 ] _findfirst("tes*.tx", &searchData) でファイルを検索した場合には test.tx は見つかり test.txt は見つかりません。 しかし、_findfirst("tes*.txt", &searchData) で検索した場合には test.txt も test.txtx も見つかります。 Q1. ドキュメントには書いてないのですが、この関数は拡張子を3文字しか見ないのでしょうか。 Q2. 4文字以上の拡張子に対応したファイル検索関数にはどんなものがありますか。
199 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:45:36 ] >>196 >getchar()でいいじゃん。 あらほんと。今度からこっち使います。 ありがとう。
200 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 18:39:01 ] VC使ってるならsystem("pause");でいいかと
201 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:15:09 ] 変なクセつけちまうから getchar()で良いでしょ
202 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:10:13 ] >198 たしかWindowsが隠して格納してる8.3なファイル名がひっかかるんだな。 Short Filenameってやつ。findfirstしてあらためて排除するとか。
203 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 02:02:38 ] メソッド名の頭にアンダーバー付いてるのとか 何か意味があるのですか?
204 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 02:21:43 ] ttp://msdn.microsoft.com/ja-jp/library/45aft37a.aspx
205 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 12:28:52 ] ありがとう
206 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 05:52:40 ] Dドライブに今までなかったファイルがいくつか作成されてる。。。 Eula.1041.txt globdata.ini install.exe install.ini install.res.1041.dll VC_RED.cab VC_RED.MSI vcredist.bmp しかも作成日時が2007年11月20日。 二週間ほど前にPC買い替えたばかりだからこの作成日時はおかしいと思う。 調べてたらvisualC++が関係してるっぽい。 これなに?
207 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 08:00:59 ] インストーラが一時ファイルを展開したんだろ。
208 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 09:56:20 ] VS2008のインストールしたんだろうな
209 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 11:36:28 ] インストーラって怖いな
210 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:32:56 ] やっぱりか 2005は初めから入ってたんだけど、これって勝手に更新したりするものなの? 2008なんてインストールした覚えがないし、気味わるいからアンインストールしたいんだけど。。
211 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 12:47:25 ] 別に一時ファイルだし勝手に消せば? とりあえずそのファイル群は再配布可能なやつだと思うから なんかのソフトが必要としたんじゃないの? 2008というのは2007/11/20だからそう思ったんだけど。
212 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:03:48 ] なんかのソフトが必要としてるんならアンインストールしないほうがいいね。。 一時ファイルだけ削除しておく。 >>207-210 サンクス
213 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:03:53 ] > 2005は初めから入ってたんだけど、 VisualStudioプリインストールなんてどこで売ってるの?? > これって勝手に更新したりするものなの? しない。
214 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:06:36 ] visualstudioというのははいってなかった。 visualC++2005Redistributableというのが初めからはいってた。
215 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:12:58 ] それはランタイム。VCどころかパソコン初心者レベルの話になってきたな・・・
216 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 19:01:21 ] そのランタイムというやつは消しても問題ない?
217 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 19:23:17 ] 消すな。最初から入ってたということは他のソフトが使ってる。
218 名前:デフォルトの名無しさん [2008/08/20(水) 20:57:37 ] Visual Studio2003でWindowsプログラムを作ってるんですが、 よくバグってメモリリークしたり、既に解放済みのアドレスを解放したりしてます。 そういうのって、PCに悪影響は無いんでしょうか?
219 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:11:17 ] 悪影響はあります
220 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:28:19 ] >>217 最初から入ってたのは2005。 今日気づいたら2008がインストールされてた。 まぁ気にしないことにする。
221 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:35:34 ] >>220 だけど自己解決。 BUFFALOの ttp://buffalo.jp/products/catalog/multimedia/chideji/streamtest.html をインストールしたときに一緒についてきたみたい
222 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 22:02:47 ] >>220 気付いたらってどういう意味だおいw
223 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 23:41:28 ] >>222 もう放っとこうぜ >>218 OSがうまくやってくれる、たぶん
224 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:36:39 ] ちょっとよろしいでしょうか? MFCを勉強しようと思って www.kumei.ne.jp/c_lang/mfc/mfc_01.htm のページのコードをコンパイルしてみて うごいたのですが プロジェクトの設定は「MFCを使用しない」に なっていても問題ないみたいなのです。 MFCを使っているのに「MFCを使用しない」でよいのでしょうか?
225 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 13:48:07 ] >>224 そんな設定どこにあった? 基本的にMFCを使うかどうかはヘッダのincludeとリンクするライブラリで決まる。
226 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:05:37 ] >>225 なるほど。MFCを使用するかしないかを変更することによって リンクするライブラリやコード生成のオプションが変わるみたいです。 なのでMFCを使用するかしないかの設定はあくまで テンプレートということですね。 やっぱウィザードに頼っているとだめっすね。
227 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:16:49 ] やべー なんかMFCマスターした気がする
228 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:19:55 ] おめでとう
229 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:26:17 ] ありがとう
230 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:38:50 ] オナニーマスター黒沢
231 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 14:57:30 ] fatalita.sakura.ne.jp/3DLib/Ref/_T/ にCStringはマルチスレッドに対応してないって書いてあるんだけど マジで? やべーじゃん。
232 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:43:32 ] >STLのstring型やwstring型は利便性においてはCString型にあるマルチバイトとユニコードの相互変換機能が無い分劣りますが、 >スレッドセーフである為classやtypedef内の変数に宣言するのに向いています。 >マルチスレッドで文字列を扱う際にはstring型かwstring型を使いましょう。 大嘘やん。標準にはスレッドの概念が無いし、スレッドセーフかどうかは実装依存になる。 CStringも使い方さえ間違わなきゃマルチスレッドで使える。 ttp://msdn.microsoft.com/ja-jp/library/h14y172e.aspx
233 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:47:26 ] なーんだ
234 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 15:48:29 ] そして、VC++のstd::stringはどうかというと、こうなっている。 msdn.microsoft.com/ja-jp/library/c9ceah3b.aspx ちゃんとやらないとだめだという点でCStringと互角。
235 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 19:32:26 ] charに0〜255の数値を設定することはできるようですが char[]にintやfloat等の数値を設定したり取得するにはどうすればいいですか?
236 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 19:39:53 ] union使うかビットシフトかキャストで。 目的による。
237 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 20:50:24 ] 型について学び直せ。
238 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 21:13:58 ] 文字列として受け取って変換するとかの話?
239 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:59:01 ] >>236 int i=1234; char ic[50]; ic = (char[50])i; こうですか? キャストできませんでした
240 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:28:12 ] 一体何がしたいんだ
241 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 01:03:46 ] 冗談きつすぎるだろこれは…
242 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 09:30:00 ] int型をchar型に入れなきゃならない理由を述べよ。
243 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 09:46:01 ] >>239 あえてそういう風にキャストしたいのなら、例えば・・・ *(int *)&ic[0] = i; とか
244 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:00:39 ] &と[0]は説明のためにあえて入れただけでなくてもいける
245 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:10:37 ] memcpyでいいじゃん
246 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:43:37 ] >>242 ネットでデータ送るときに、パケットサイズを固定長にしたいときとか
247 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 18:54:16 ] >>243 ありがとうございます。 下記のようにしたところ int i=256; char ic[50]; *(int *)&ic[0] = i; char[]の最初の4バイトにそれらしい値が入るようになりました int=32bit char=8bit なので期待通りの結果が得られてる ような気がします これはcharの参照をintのポインタのポインタにキャストしてるんでしょうか? char[]に入れることはできましたがintに戻すにはどうすればいいかわからんので もっと勉強が必要なようです ありがとうございました
248 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:34:37 ] C++を仕事で扱い始めて自宅でも勉強したいと思っています。 そこで質問なのですがVISUAL STADIOの学生用の安いものとそうでないものとの間で機能に差はありますか?
249 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:46:05 ] >>248 C++の勉強よりも、英語を始めとした一般常識を身につけることをこそ、お勧めします。
250 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:12:06 ] >>248 仕事してるんじゃないのか? なで学生用なんだ 経費で落とせないのか?
251 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:29:10 ] EEならフリーで学生じゃなくても手に入れられます。
252 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:53:05 ] EE(笑)
253 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 16:01:34 ] っGCC/G++/MINGW
254 名前:248 mailto:sage [2008/08/24(日) 19:08:08 ] 愚かなのでわかりません(´・ω・`) あくまで個人で勉強したいので…
255 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 20:09:08 ] gcc makefileのあたりからじっくり、やったほうがいい腕になるよー
256 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:16:22 ] >>254 Visual Studio 2008のAcademicはProfessionalと同じ。 だから、同じのが欲しければProfessionalを買え。 違うのがほしければそれ以外を選べ。
257 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 22:54:44 ] Visual Studio Express Edition でググれ と一言書いてやれば済むのに おまえらほんとに卑屈だな
258 名前:248 mailto:sage [2008/08/25(月) 06:30:55 ] >>256 >>257 ありがとうございます。
259 名前:デフォルトの名無しさん [2008/08/25(月) 12:12:39 ] 質問させてください・・・ www.geocities.jp/ky_webid/win32c/010.html このページの、 ・最初にクリックした点から、次にクリックした点までを結ぶ直線を描くプログラムを作って下さい。 という例題は、どの様に書いたらいいのでしょうか? if文を使うのかと思ったのですが、頭が悪くてswitch文とうまくあわせられません・・・ 大変申し訳ありませんが、どなたか教えてもらえないでしょうか?もうだめぽ・・・><
260 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 12:17:57 ] >>259 そのページを読んでいるのだから直線を描画するプログラムは作れるよね? そのページの前提としてクリックした座標を取得するプログラムも作れるよね? 後は組み合わせるだけだから頭の良し悪しは関係ない。
261 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:47:46 ] dllのインクルードというかリンクの仕方を教えてください
262 名前:デフォルトの名無しさん [2008/08/26(火) 00:52:05 ] 久々にVC++(2008)を使っているんだけど、 構造体のデータを簡単に表示とかいう拡張機能 できたりしていない? マネージドじゃない状態で。 PHPとかPerlとかやってるとさ、print_r(オブジェクト)で オブジェクトのプロパティとか値がずらずら表示されて便利なんだよね。 標準のC++にないのはわかる。デバッグ用にそういう拡張 されてないかなぁと。 デバッガみれ? それしかないかな?
263 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:05:18 ] C++はイントロスペクティブでないから無理ぽ ってSteve Yeggeが要ってた。 pdb漁ってBinaryHackするとかしか思い浮かばないヨ
264 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:09:16 ] プログラム中なら、hoge.(ココでCTRL+SPACE) デヴァグ中なら、ローカル変数とかそういうの。 それ以外は知らん。
265 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 09:41:11 ] >>261 そのDLLに対応したインポートライブラリとリンクするか 実行時にAPIでロードして呼び出す。 インポートライブラリはDLL作成時にできるが、 DLLからLIB.EXE等を使って作ることもできる。
266 名前:259 [2008/08/26(火) 14:17:55 ] すみません・・・マジで悪いみたいですオレは理解力がなさ過ぎる・・・ 上記みたいな感じでいけるかと思ったんですが、error C2196: case の値 '513' は既に使用されています。 と出て動きません・・・ボタンクリックの1回目と2回目を分けるには、どげんしたらいいんでしょうか・・・ プログラム分けてコピペさせていただきます・・・ >>260 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HDC hDC; PAINTSTRUCT ps; int x[2] = {0,0}; int y[2] = {0,0}; switch(msg) { case WM_LBUTTONDOWN: x[0] = LOWORD(lp); y[0] = HIWORD(lp); return 0; case WM_LBUTTONDOWN: x[1] = LOWORD(lp); y[1] = HIWORD(lp); return 0;
267 名前:259 mailto:sage [2008/08/26(火) 14:20:35 ] case WM_PAINT: hDC = BeginPaint(hWnd, &ps); MoveToEx(hDC, x[0],y[0],NULL); LineTo(hDC, x[1], y[1]); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wp, lp); } すんません下記みたいな感じ、でした・・
268 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:36:45 ] case WM_LBUTTONDOWN:が2個あるぞ。 どっちかはWM_LBUTTONUPの間違いだなんてことない?
269 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:37:46 ] >>266 case WM_LBUTTONDOWNが2個あったら、怒られるだろう あと、それだとx[2], y[2]が、WndProc()抜けると消滅する static int x[2] = {0,0}; static int y[2] = {0,0}; static int index = 0; switch(msg) { case WM_LBUTTONDOWN: x[index] = LOWORD(lp); y[index] = HIWORD(lp); index = index ? 0 : 1; return 0; WM_PAINTで、ボタンクリックが2回目以降のみ描画する・・・ とか、詰めなきゃいけないところは、まだあるけど とりあえず、こんな感じでどう?
270 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:00 ] それ、いつまでもindexが0だと思うんだ。
271 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:39 ] と、入れ替えるのか、失礼
272 名前:デフォルトの名無しさん [2008/08/27(水) 16:34:08 ] Visual C++ 2008 EE で、C++ではなくC言語を使うにはどうすれば良いのでしょうか
273 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:38:15 ] ソースファイルの拡張子を.cppから.cに変える
274 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:22:17 ] Visual C++ 2008で、フォームを複数使用しているのですが、 変数の値を他のフォームに渡すことは可能ですか?
275 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:46:46 ] 可能です。
276 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:03:05 ] CodeBlocksでこれのVC++のコンパイル諸々を使うためにVisual C++ 2008 EEを入れたんですが コンパイル時にkernel32.libが開けないと言われます Visual C++ 2008 EEを標準でインストールした場合のkernel32.libの場所はどこでしょうか C:\Program Files\Microsoft Visual Studio 9.0\VC\lib 配下あたりだと思ったのですが そのあたり検索しても見つかりません
277 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:15:11 ] C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
278 名前:276 mailto:sage [2008/08/27(水) 23:33:57 ] >>277 ありがとうございます
279 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:45:12 ] >>275 どうやって渡すのか教えて下さい
280 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:09:18 ] ケースバイケース
281 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:30:15 ] アンケートの質問を複数のフォームに書いて、最終的にその回答 (はい、いいえ、どちらでもない)を質問のフォームとは別の フォームに出力したいと思っています。フォーム1の質問で集めた回答を それぞれの変数に入れ、その値をフォームに2にも引き継ぎ、変数にはフォーム1と フォーム2の値が入っているようにしたいのですが・・・教えていただけませんか?
282 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 09:43:53 ] 受け渡しするpublicなメソッド書くとか、プロパティにして読み書きすればいいじゃん。 普通のことなのに、何がひっかかってるのかがわからん。
283 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:23:19 ] ご回答ありがとうございます。 プログラミングはC言語を2ヶ月ほどしか学んでいなく、 Visual C++ 2008 EEも使用して2日しか経過していない ので分かりませんでした。publicやメソッドの意味を 調べようと思います。
284 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:14:08 ] まずC++/CLIを勉強しないとな。 つか.NET使うんならC#の方がいいぞ。
285 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:55:08 ] .netつかうならどう考えてもC#のほうが… C++.net好んでつかってるやついるの? いたら何がいいのか教えて欲しいくらい C++のメリットドブにすててまで.netする意味がわからない
286 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:58:41 ] でもC++/CLIはマジで最強だよ
287 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:04:27 ] >>285 283のようなやつは時々現れるが、 単にC++→フォームアプリケーションでプロジェクト作っただけで、 好みではなく気付いていないだけだと思う。
288 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:42:19 ] C#はフリーの逆アセツールでソースが丸見えなのが嫌でC++使ってまふ
289 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:52:23 ] >>286 C++習熟してて なおかつC#とかで.netつかってるなら 本当に最強かもしれんね >>288 あとランタイム配布とかめんどくさいの考えると 本気で配布するソフトはあまりC#つかわないのよね XNAのやる気のなさに絶望して近頃C++しかつかってない
290 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:53:24 ] C++/CLIは逆汗してもソースでないの?
291 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:57:08 ] やっぱVC++6.0が一番頭よさそうに見えるからつこてる
292 名前:デフォルトの名無しさん [2008/08/28(木) 21:27:59 ] ライブラリとかじゃない、普通のプログラムをデバッグしようとしているのですが、 Debugging information for 'regsvr32.exe' cannot be found or does not match. Symbols not loaded. Do you want to continue debugging ? というメッセージが出ます。(開発環境は英語版のVC++9です) Yesを選択しても、 To register a module, you must provide a binary name. という メッセージが出て結局失敗します。 このエラーメッセージの意味は、regsvr32.exeを引数なしで呼び出したためだ というのは調べてわかったのですが、このあとどうすればよいのかよくわかりません。 ツールの中などで、regsvr32.exeを削除するような操作が必要なのでしょうか? regsvr32.exeはOLEコントロールを登録/解除するために使うらしい、というのも 書いてあったのですが、まったく意味がわかってません。 どうかよろしくお願いします。
293 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:42:44 ] regsvr32.exeをデバッグしてるって マイクロソフトの中の人ですか?
294 名前:デフォルトの名無しさん [2008/08/28(木) 23:05:59 ] >>293 結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、 コンパイル終わって実行する前に、登録するために使うプログラムを選択しろみたいな メッセージが出てきて、適当にデフォルトのを選択しておいたところ、292みたいな状態になって しまいました。 ずっとLinux使ってたので、もしかしてすごく見当はずれな質問してるかもしれませんが、 いろいろ検索してもなにも引っかからなかったし、どうすればよいか、ヒントでもよいので ください。
295 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:44:16 ] String^ s = "A"; for( int i=0; i<26; i++ ){ 〜何か操作〜 func( s ); } こんな感じで、func()に、「A〜Z」まで文字列を渡したいのですが、どんな操作をするとスマートに出来ますでしょうか?
296 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 03:56:27 ] func(static_cast<wchar_t>(L'A' + i).ToString());はどう? iの使い道がほかになければ、こういうループにするという手もある。 マジックナンバー26が消えるのがいい(もっとも、'Z' - 'A'でも消せるけど)。 for ( wchar_t i = L'A'; i<='Z'; i++ ) { func( i.ToString() ); }
297 名前:295 mailto:sage [2008/08/29(金) 04:19:47 ] 他にも使用していたので、前者を使わせてもらいました。 ありがとうございます。
298 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:04:43 ] >>292 >ライブラリとかじゃない、普通のプログラムをデバッグしようとしているのですが、 >>294 >結構大きなフリーのライブラリのソースをダウンロードしてきてコンパイルしたのですが、 どっちなんだ。
299 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:20:27 ] ダイアログボックスでボタン配置したときは プロパティからデフォルトボタンに設定できるけど CreateWindowで配置したボタンを デフォルトボタンにするにはどうしたらいいですか?
300 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:30:13 ] 作った後? 作るときなら、BS_DEFPUSHBUTTON
301 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 18:43:58 ] >>300 作ったあとに デフォルトボタンにしたり、しなかったり したいです
302 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:14:06 ] あとでスタイル変えるのは SetWindowLongでできるけど、 どうなるかはわからん、他のボタンのDEFも外さないと無理かも? 見た目はDM_SETDEFID送ればいいみたいだけど。
303 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:18:01 ] BM_SETSTYLE でもいけた。まあいろいろやってみ
304 名前:デフォルトの名無しさん [2008/08/29(金) 19:28:50 ] >>298 すいません。 結構大きなライブラリのソースをダウンロードしてきて、それをコンパイルした後、付属の サンプルコード(こいつは結構小さい普通のプログラム)をコンパイルしようとしたんです。 なんでどっちも本当です。 結局まだわからないので、スタティックライブラリを自分で作って勉強してみてます。 でもregsvr32.exeなんて使わないっぽい。 スタティックなライブラリをデバックするときって、regsvr32.exeを使いますか? 手順としてはこんな感じ。 (1)ライブラリ作成(名前はStaticLibrary.libとします) (2)regsvr32.exe \i StaticLibrary.lib (3)このライブラリをつかうサンプルプログラムを作成してデバッグ。
305 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:32:48 ] それはない。 regsver32の対象になるのはDLLだけ。
306 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:29:23 ] >>304 exeのプロジェクトのプロパティの「デバッグ」の「コマンド」がregsvr32になってるのかな。 空にしてok押してみて。”$(TargetPath)”が入ると思う。 新しいプロジェクトを作るときのウィザードで選択を間違えたのかな。
307 名前:デフォルトの名無しさん [2008/08/30(土) 01:12:35 ] >>304 ありがとうございます。おっしゃるとおりになってました。 そこを空にして、追加のインクルードパスにboostを追加して、F7でビルドするとビルドできました。 その後、同じソリューションの中のほかのサンプルプログラムをコンパイルするごとに追加の インクルードパスにboostを追加する、という作業が必要だったのですが、これはしょうがないですか? どこかで設定すれば同じソリューション内なら一度の追加ですむとか、そういうことはできないですか?
308 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 12:47:12 ] VS2008を使っているのですが、newで確保したクラスの動的配列の内容を デバッガで全て表示させるにはどうしたらよいのでしょうか? STLのstringやvectorだと上手く表示されているのですが、何かいい方法があるのしょうか? どなたか教えて下さい。
309 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 15:57:21 ] 変数の後ろに、カンマと数字で
310 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 13:09:13 ] >>309 最初何のことだか分からなかったのですが、ググって見てようやく分かりました。 御回答どうもありがとうございました。 一応他の方の参考になるかもしれないのでリンク張っておきます。 ttp://support.microsoft.com/kb/198953/ja 他にもautoexp.datを使う方法もあるみたいですね。 ttp://www.cycleof5th.com/tips/index.php?date=2007-05-13 ttp://blogs.wankuma.com/melt/archive/2007/10/01/98927.aspx
311 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:21:03 ] 某動画を見ながらVC++2008をインストールしたのですが 新規作成-プロジェクトの 「VisualC++」の「空のプロジェクト」実行で ソース、リソース、ヘッダーファイルが出なく(組み込まれなく?)なりました どこかさわってしまったらしく元に戻せません 超初歩的だと思いますが宜しくお願いします。
312 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:41:32 ] 「空のプロジェクト」なんだから、そういうのが無くて当たり前。
313 名前:311 mailto:sage [2008/08/31(日) 18:34:37 ] www.nicovideo.jp/watch/sm4250927 この動画の1’28”くらいのところなんですが 空のプロジェクトなのに3ファイルが組み込まれてるんです なにか設定を変えているとかでしょうか?
314 名前:311 mailto:sage [2008/08/31(日) 18:43:15 ] 連投すいません 他の説明動画で解決できました。 前の動画は編集されてたのかな?
315 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:11:35 ] こんな動画まであるのか。 ホントになんでもあるなw
316 名前:299 mailto:sage [2008/08/31(日) 23:41:36 ] >>300 BS_DEFPUSHBUTTON も設定しましたがリターンを押しても反応しません >>302 DM_SETDEFIDを SendMessage(ウインドウのハンドル, DM_SETDEFID, (WPARAM)ボタンのID, (LPARAM)0 ); で送ってもデフォルトになってないような? >>303 SendMessage(ウインドウのハンドル,BM_SETSTYLE, (WPARAM)BS_DEFPUSHBUTTON,(LPARAM)0); にしてみましたがやはりだめです 配置してるボタンはウインドウ上に1つだけです ひょっとしてデフォルトボタンはダイアログでしか設定できないのでしょうか?
317 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:45:49 ] Enter打つとボタンが押されたことになるって挙動が欲しいなら、 ボタンのIDをIDOKにして、メッセージループにIsDlgMessageを組み込むじゃなかったっけ。
318 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 00:55:14 ] テキストボックスに入力中にリターン押したときに ある関数を実行したいんですが ダイアログのときはデフォルトボタンで代用してました VBとかでいうところのkeydownイベントのときにキーコードがリターンか調べて リターンなら処理をする みたいな挙動がほしいです IsDlgMessageでググったら日本語のページがひとつもないといふ
319 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 01:55:10 ] じゃあ、IsDialogMessageでググってみて
320 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 04:19:22 ] >>315 そして、 本と同じで、こういう動画も初学者向であふれるんだろなw
321 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 17:48:26 ] >>319 ググったけどよくわからんかった モードレスダイアログにしてIDOK受けるみたいな感じに解釈したんだけど コントロールのサブクラス化のほうが理解しやすかったんでそっちにしました ありがとうございました
322 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:49:31 ] すいません。 これからVisual C++ 6.0を勉強をしようと思っているんですが、 初心者向きのわかりやすい参考書があれば教えて下さい。 よろしくお願いします。
323 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:12:44 ] >>322 本題(参考書の紹介)にレスできなくてごめん。 これから勉強するのに、なんでvc6なのだ? vc6はc++の規格が固まる前のものでオススメでない。 vc9(vs2008)でいいじゃないか。
324 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:15:53 ] VC6使ってるけどC++の規格で困ったことなんかないな
325 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:21:02 ] >>323 そうなんですか? しかし会社で使用する開発環境が6.0らしいんですが・・・ vs2008はOSが2000なのでインストール出来ませんが、 vs2005ならインストールしています。 vs2005を勉強すればvs6.0にも応用出来るのでしょうか? そういうことでしたらvs2005で勉強してみます。
326 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:24:29 ] 会社で使うという事情なら6.0にしておけ。
327 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:25:37 ] ちゃんとライセンスがあるのか心配なレスだなしかしw
328 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:33:29 ] そうですね。 やはり6.0を勉強します。 話は戻りますが、初心者向きのわかりやすい参考書が あれば教えて下さい。
329 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:40:02 ] VCの場合はCかC++がある程度使えないと初心者以前なので 勉強してから出直して来てください。
330 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:44:23 ] 山本信雄のシリーズは入りとしては最高 でも、Cがある程度使えなかったらわかりません >>329 VC++とC++ってそこまで違うものですか?
331 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:53:29 ] C++はプログラミング言語 VC++はマイクロソフト社製の開発環境
332 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:59:50 ] そっか VC++はVSのC++コンパイラ群のことだと思ってた
333 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:08:30 ] ライセンスなんてそんなに(・ε・)キニシナイ!!
334 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:12:31 ] libviscawinの使い方教えてください ていうかどこで聞けばいいですか?
335 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:19:35 ] VC++単体パッケージにはコンパイラしかついてないのか
336 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:59:15 ] >>332 いやまあその理解でもあまり困らないと思う。
337 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:25:10 ] まぁ、VC6と言うとMFCを使えることを想定されるな。
338 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:11:16 ] win32だったらprograming windows (ペゾルド) C言語を知っている前提 MFCだったら標準口座MFC6.0(シルト) C++のクラスぐらいまで知っている前提
339 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 07:41:32 ] main( )で始まるプログラムとMFC使ったプログラムは勝手が違うな
340 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:35:06 ] ポインタをヘッダファイルで定義して、複数のソースから使用します。 そこでヘッダ宣言時に"_declspec(selectany)"で書くと、リンカエラーもなくビルドできます。 この"_declspec(selectany)"とは、どういったものなのでしょうか?
341 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:52:49 ] >>340 その通りの効果。リンク時に重複した定義を許し、1つにまとめる。 msdn.microsoft.com/en-us/library/5tkz6s71.aspx
342 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:03:54 ] WM_PAINTメッセージの処理で、クライアント領域の左側を白、右側を黒に塗り潰すとして、 再描画が必要な領域で条件分岐して、
343 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:06:21 ] 途中で送信してしまいまして、すいません。 WM_PAINTメッセージの処理で、クライアント領域の左側を白、右側を黒に塗り潰すとして、 再描画が必要な領域で条件分岐して、白黒それぞれ描画するか判断するのか、 描画が必要ない領域を塗り潰しても、結局システムは何もしないと思って 両方とりあえず描画するのか、どちらが一般的なんでしょうか
344 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 21:55:55 ] 領域を指定する
345 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 13:16:31 ] クライアントエリアの中は全部描く クリッピングは速度のためにある
346 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:23:30 ] 昨日勉強始めました。 LINK : fatal error LNK1181: 入力ファイル 'object\library.obj' を開けません。 というエラーが出るのですがlibrary.objを検索してもHDにはありませんし、 解決するようなサイトが見つかりませんでした。 なにか解決方法ありましたらお願いします。 環境はVisualC++2008 Expressで、コードはチュートリアル用にダウンロードしたもの。 元のコードはVisualC++6で書かれたようです。
347 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:40:55 ] それ理解できないなら別のことやった方がいい
348 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:08:18 ] どっかでひろってきたサンプルのコンパイル方法か
349 名前:デフォルトの名無しさん [2008/09/07(日) 21:02:29 ] >>273 について誰か教えてください。よく理解できません。
350 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:07:28 ] >>349 d.hatena.ne.jp/keyword/%A5%B0%A5%B0%A5%EC%A5%AB%A5%B9
351 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 21:11:23 ] 特に指定がない場合はコンパイラが拡張子見てどっちか判断する
352 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:33:38 ] 授業でbccを使って書いたプログラムのソース(問題.c)をVisual C++で流用しようとしたら 1>cl : コマンド ライン error D8045 : C ファイル '.\問題.c' を /clr オプションと共にコンパイルできません というエラーが出てコンパイルが完了しません。どうしたらよいでしょうか?
353 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:48:54 ] プロジェクト作るときにWin32を選ぶ。 CLR選んだらCは使えない
354 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:02:52 ] >>353 ありがとうございます。 しかし今度は 「プリコンパイル ヘッダー ファイルが旧バージョンのコンパイラで作成されています。また、C++ のプリコンパイル済みヘッダー ファイルを C で使用しています (その逆も考えられます)。」 というエラーがありました。
355 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:10:12 ] >>354 空のプロジェクト作って追加するのがいいと思うけど、 cppのプロジェクト作って追加したのなら、ソリューションエクスプローラーのとこで 該当ファイル右クリックしてプロパティ出して、C/C++のプリコンパイルヘッダーの項目のとこで プリコンパイル済みヘッダーを使用しない、にする。 あるいはプロジェクト全体でこの設定をしてもいい。
356 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:24:59 ] >>355 ありがとうございます。 何とか上手く行きましたが、最後にscanfの宣言をしてくださいというエラーが出ました。 これはどういうことでしょうか?
357 名前:356 mailto:sage [2008/09/08(月) 00:25:56 ] 正しくは「'scanf' の宣言を確認してください。」でした。
358 名前:356 mailto:sage [2008/09/08(月) 00:33:44 ] すみません。自己解決しました。 Visual C++2005からの仕様変更が原因だったみたいですね。。 お騒がせしました。長らくのお付き合いありがとうございました
359 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:34:45 ] それは2005以降出るよ。 詳しくは、そのエラーの行でF1押して出たページの「CRT のセキュリティ強化」を読むといい。 その関数使う事が決まってるなら無視してもいいし、気になるならヘルプに出なくする方法も書いてある。 scanf以外にも、printf系、str〜系で出る。
360 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 01:34:31 ] 移植性?なんだそれ?そんなの知らん! 俺はMSと心中するんだと言う気持ちならscanf_sなど_s系が付いた関数を使えば良いよ
361 名前:デフォルトの名無しさん [2008/09/08(月) 10:26:31 ] すんません VC++6.0(MFC)でテキストエディタ作れと言われたのですが、 最初の最初でつまづいてます。 プロジェクト新規作成→MFC→SDIアプリ→→で、初期のスケルトン作成。 その後ですが、IDR_MAINFRAMEのフォームの白い部分(メニューバーを除く全部 の領域)を全体的にテキスト入力欄にするにはどう操作すればいいですか? ダイアログベースのプログラムならテキストボックス置けばいいだけですが、 SDIアプリケーションの場合はどうするのでしょうか?
362 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 10:32:15 ] >>361 MFCだといくつかのやり方があって、どういう点を学習してるかによるが、、、 CViewをCEditViewに替えるだけでいけるけど、、、 Editコントロールを貼り付けるのなら、メンバーにCEditでも置いて ウィンドウのOnCreateで一緒にCreateしてやって、OnSize時に CEditをクライアントエリアと同じ大きさにしてやればいい。
363 名前:デフォルトの名無しさん [2008/09/08(月) 12:04:29 ] >>362 ありがとうございます。 なんとか後者の方法でエディットボックス設置はできました。 あとは ・起動時にウィンドウのクライアント領域と合わせる ・リサイズ時にも合わせる のようにしたいですが、ウィンドウサイズの初期値設定、クライアント領域の現在値の取得などはどのようにすれば良いですか?
364 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 12:10:38 ] クライアントのサイズはGetClientRect()というのがあるけど、 WM_SIZEのハンドラ、OnSizeの引数に幅と高さもあるから、それそのまま使えばいい。 起動時にリサイズ(WM?SIZE)も来るから、起動時のことは考えなくてもいい。
365 名前:デフォルトの名無しさん [2008/09/08(月) 16:42:03 ] >>364 ありがとうございます。 試行錯誤した結果、やはりCEditViewにすることにしました。 www.vcppclub.com/kouza/nextstep1/mdieditor1.html ここを見たら1行も書かずに、読み込み/保存機能はできてしまったのですが、疑問が。 ファイル読み込みのダイアログを出す→ユーザーが選択したファイルを読み込む→テキストエリアに表示 保存も同様。 これらに必要な処理がどこにも書かれていないような気がするのですが。 調べていた段階で、メンバ関数 OnFileOpen() を作成し、 GetOpenFileName();でダイアログを出し、 CFile型に読み込む手順が必要そうだったのですが、 自動生成されたソースではどこにも書かれていません。 にもかかわらず読み書きできるのが疑問です。 (サイトのサンプルはMDIですが、SDIでもほとんど同じのようです)
366 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:33:51 ] その辺はMFCとDocumentViewアーキテクチャの話だからなあ。 CWinAppからCDocument、CEditViewの操作はMFCの中に含まれている。 もちろん、自分で変更することも可能。
367 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:35:50 ] 派生した部分しか見てないんだろ
368 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:37:06 ] オリビア派生
369 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:47:07 ] VisualStudioのエディタのタブや改行の記号表示について質問があります. デフォルトの表示を変更したいのですがどのようにすればよいのでしょうか? 具体的には改行文字を$にタブ文字を>---という風に変更したいのですが
370 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:11:23 ] ひとりごとです
371 名前:デフォルトの名無しさん [2008/09/09(火) 10:49:53 ] CEditViewでの、現在表示されている文字列を格納しているメンバは何ですか? 入力されたものを文字列型にコピーして保存やらなにやらいろいろやりたいのですが。 逆に文字列型に格納された文字列を表示する方法も。 そういったテキストバッファの操作のしかたがいまいち分からないです
372 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:00:09 ] エディットコントロール自身がバッファを持ってる 普通は直接バッファいじらないでメンバ関数使ってアクセスする
373 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:18:51 ] 普通はCDocumentの派生クラスに自分でデータ構造作ってビューはその表示方法書いたりするけど CEditViewは特殊だからな。GetEditCtrl()でCEditのインスタンスが取れるのでそれを操作すればいい。
374 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:28:37 ] typedef struct tagTest { unsigned int x :1; } Test; このようなコードを見かけたのですが、「:1」は何を意味しているのでしょうか。
375 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:31:25 ] >>374 ビットフィールド
376 名前:374 mailto:sage [2008/09/09(火) 11:43:07 ] 素早い回答、ありがとうございました。
377 名前:デフォルトの名無しさん [2008/09/09(火) 13:53:02 ] >>372-373 なるほど。 CEditのメンバ関数見るとそれらしいものがあるようですね。 しかし、GetLine()のように、行ごとに取得してくる関数はあるみたいですが、 「とりあえず改行も含めて全体をCStringにコピー」するようなものは見当たらないです。 全部の行を走査してコピーする部分は自分で作成しないとダメですか?
378 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:02:47 ] 全取得はGetWindowText() これはCEditでも、CEditViewでも使える。
379 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:06:23 ] >>377 MSDNを見るときは、継承元のクラスのメンバも見よう。 GetWindowText()で取れるんじゃね? って書いてたら先を越されたw
380 名前:デフォルトの名無しさん [2008/09/09(火) 14:28:49 ] >>378-379 おぉ ありがとうございます! MSDNの見かたを訓練するようにします。 ところでもうひとつ質問が。 MainFrameのメニュー選択によりそれらの動作をさせたいのですが、 void CMainFrame::On????(){ } ↑ここの記述で、 MainFrameのほうからViewを操作するにはどのようにすれば良いですか? C(アプリ名)Viewクラスのインスタンス名が分かれば「名前.関数名」のような形 で呼び出せると考えたのですが、 どこにも宣言部分が見当たらないようです。
381 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:12:49 ] >>380 えーと、SDIだったよな? CFrameWnd::GetActiveView()でどうか。
382 名前:デフォルトの名無しさん [2008/09/09(火) 15:24:53 ] >>381 CViewのポインタが帰ってくるようで、継承して作られたC???Viewの関数は使えないようです。 CFrameWnd::GetActiveView()->関数(); このようにしてもビルドが通らないです。
383 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:32:12 ] >>382 GetWindowtext()が見つけられないようだったから、わざわざCFrameWnd::GetActiveView()の 書き方にしたのに、そしたらこれかよ・・・ CなんたらEditView* pView = (CなんたらEditView*)GetActiveView(); でいいだろ、ちょっとは考えろよ。
384 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:36:11 ] メニューから直接よべる
385 名前:デフォルトの名無しさん [2008/09/09(火) 19:30:54 ] >>383 未熟ですみませぬ・・・ おかげさまで思った通りのものができました。
386 名前:デフォルトの名無しさん [2008/09/10(水) 11:58:44 ] お世話になります。VC++6でダイヤログベースのプログラムを作っています。 ダイヤログにボタンを新設し、Classウィザードを使ってON_BN_CLICKEDメッセージ関数を使って ボタンがおされた事はプログラムで取得できるようにできました。 ボタンを何秒間押したかを調べたいのですが、ボタンが離されたメッセージがなく、 どうやって作ったらいいかわかりません。 どのようなメッセージを使えばいいのでしょうか? よろしくお願いいたします。
387 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:04:58 ] CButtonをサブクラス化して自分でLBUTTONDOWNとLBUTTONUPの時刻の差を取るしかないんじゃないかなあ
388 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:32:58 ] ボタンのイベントは押した時じゃなくて、離した時に発生する気がしたけど
389 名前:デフォルトの名無しさん [2008/09/10(水) 15:12:46 ] 数日前にVC++ 2008 Express Editionを使い始めた初心者です。 ttp://homepage3.nifty.com/ishidate/ を参考にWindowsフォームアプリケーションのテンプレで作成したのですが、 一度目のビルドは普通に実行されて表示されるものの、少しでも書き換えた後(内容に一切変化がない場合でも) 以降ビルドを行おうとするとexeファイルが見つからないと表示され、エラーが発生します。 CやC++は以前から触れていたのですが、VisualStudioの操作に関しては いまいち分からないので原因が分かりません。 どなたか分かる方は折られるでしょうか?よろしくお願いします。
390 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:16:29 ] なんかおかしいね。 PCの時計はくるってない?
391 名前:デフォルトの名無しさん [2008/09/10(水) 16:59:39 ] EXE だけど DLL としても使えるバイナリってどうやって作ればいいですか?
392 名前:デフォルトの名無しさん [2008/09/10(水) 18:07:37 ] VC6で、2003以降のXmldocumentクラスに相当するものってありますか?
393 名前:391 mailto:sage [2008/09/10(水) 19:31:29 ] 自己解決しました。とりあえず __declspec(dllexport) 付けて宣言しとけばEXEでビルドしてもエクスポートされるんですね。
394 名前:デフォルトの名無しさん [2008/09/10(水) 19:42:43 ] VC++ 2008 Proを使っています。 デバッグでプログラムを実行させると出力欄に、 「'System.NullReferenceException' の初回例外が ImageRecognize.exe で発生しました。」 と表示されるのですが、これがどの行で発生したかを調べるにはどのようにしたらいいでしょうか? どなたか教えていただけると嬉しいです _ _
395 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:45:00 ] ヌルポ
396 名前:394 mailto:sage [2008/09/10(水) 19:47:11 ] すみません、メニューのデバッグ→例外を設定することで出来るようになりました。 お騒がせいたしました。
397 名前:デフォルトの名無しさん [2008/09/11(木) 01:08:30 ] CreateProcessで新規のルートプロセスを発行した後、 親プロセスはWaitForSingleObject(hHandle, 0)を実行して 即終了させようと思っています。(UNIXのデーモンプロセス生成のような感じ) ここでWaitForSingleObject()のタイムアウト時間を0秒に設定すると 何か問題あるでしょうか?
398 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:20:13 ] そのwaitに一体何の意味が?
399 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:25:50 ] >>398 形式的に入れた方がいいのかと思ったのですが、 もしかして即終了させるならば必要ないですか?
400 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 08:08:02 ] 何のために待つのか考えろよ
401 名前:デフォルトの名無しさん [2008/09/11(木) 09:40:54 ] VC++ 6.0で、 xmlファイルを解析して読み込む/書き込む仕組みを作らなくてはならないのです が、手探りで困っております。 検索してみると、VC2003以降になればXmldocumentクラスなるものが使えるよう ですが、 VC6.0ではmsxml.hを使わなくてはならないようです。 これについての資料やサンプルがweb上にあまり無くて困っています。 また、xercesのライブラリを使う手段も打診されているのですが、 これについてはどのようにすれば良いでしょうか? ダウンロードしても構成ファイルが大量にあり、これらをどう組み込むのが検討 が付きません。 また、VC6用のサンプルのプロジェクトファイルは同梱されていたものの、なぜ かビルドが通らないようです。 こちらから入手したものです。 xerces.apache.org/xerces-c/ 次レスに続きます
402 名前:デフォルトの名無しさん [2008/09/11(木) 09:42:05 ] xerces-all.dswを開いてビルドすると エラー内容 C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691) : error C2039: 'InterlockedCompareExchangePointer' : '`global namespace'' のメンバではありません。 C:\Liblary\xerces-c-src_2_8_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(691) : error C2065: 'InterlockedCompareExchangePointer' : 定義されていない識 別子です。 cl.exe の実行エラー 外部のライブラリを使用するプログラムを作ったことが無いので、そういった部 分の基本から教えていただけると幸いです。
403 名前:デフォルトの名無しさん [2008/09/11(木) 09:51:27 ] >>401 VC2008とboostいれようぜ。 そしたら簡単。serializationとか
404 名前:デフォルトの名無しさん [2008/09/11(木) 09:55:05 ] VC2008が無料で2005より軽いことをしらんのか?
405 名前:401 [2008/09/11(木) 09:57:19 ] すんません 業務で、VC6と指定なのです。
406 名前:デフォルトの名無しさん [2008/09/11(木) 10:02:12 ] この辺参照。 これ使うとXMLの扱いがとっても簡単になりますね 基本的にはシリアライズしたいクラスのメンバにserialize関数を追加するだけです d.hatena.ne.jp/faith_and_brave/20070809/1186672741 d.hatena.ne.jp/cass_src/20070730
407 名前:デフォルトの名無しさん [2008/09/11(木) 10:04:40 ] >>405 では、boostをいれれば? コンパイルできるかは知らないけれど。 でも、msxml.hを使うのが普通ですね。標準機能なので。
408 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:04 ] ありがとうございます。 boostを研究してみます。
409 名前:デフォルトの名無しさん [2008/09/11(木) 10:18:40 ] この辺にMSXMLの使い方かいてありますよ。 あとはMSのサイトで調べれば完璧じゃないですか? www.utj.co.jp/xml/dev/dom/dxdom1_1.html www.utj.co.jp/XML/DEV/dom/dxdom2_1.html www.sutosoft.com/oldroom/devdiary/20020505.html www.sutosoft.com/oldroom/devdiary/20040307.html hp.vector.co.jp/authors/VA014436/prg_memo/windows/vctips/006.html www.s34.co.jp/cpptechdoc/article/xml/persist/
410 名前:デフォルトの名無しさん [2008/09/11(木) 10:23:01 ] >>408 boostが動かせる(コンパイルできる) かどうかのコンパイラ別の対応表がどこかにあったのですが 忘れてしまいました。boostのホームページのどこかにあったはずです。 XMLを扱う簡単さでは、boostの方が上と思いますが VC6の機能からなるべくはみ出ないようにするには、MSXMLと思います。
411 名前:デフォルトの名無しさん [2008/09/11(木) 11:24:48 ] やはりVC6でビルドしようとすると、「ブロックが大きすぎてコンパイルできません」と出ます。 あきらめてmsxmlのほう使います。 詳しい資料ありがとうございました。
412 名前:デフォルトの名無しさん [2008/09/11(木) 15:42:25 ] >>411 MSの機能以外を使って良いなら、いったんVC2008とboostのバイナリパッケージをインストールして serializationを使ってXML操作DLLやLIBを作成してVC6でそれを利用するという手をある。 上位のライブラリをVC6で使えるかはよくわからないけど、 DLLにしてあればMinGWやBCCやVCで共通に使えるので平気と思う。
413 名前:デフォルトの名無しさん [2008/09/11(木) 15:45:08 ] boostのバイナリパッケージはここにある。次に対応している。 Visual C++ 7.1 (Visual Studio 2003), 8.0 (Visual Studio 2005), and 9.0 (Visual Studio 2008) www.boostpro.com/products/free
414 名前:デフォルトの名無しさん [2008/09/11(木) 17:15:00 ] このサイトで解説している、以下の部分 www.sutosoft.com/oldroom/devdiary/20020505.html // ●ファイルから読み込む。● lpXMLDoc->put_async(VARIANT_FALSE); VARIANT FilePath; ::VariantInit(&FilePath); FilePath.vt = VT_BSTR; V_BSTR(&FilePath) = ::SysAllocString(L"test.xml"); VARIANT_BOOL result; lpXMLDoc->load(FilePath, &result); ::VariantClear(&FilePath); わざわざファイル名を指定するのにVARIANT型を使うのは何故ですか? CString型でパス名指定したりして読めれば楽なのですが・・・ 実行ファイルと同じフォルダにtest.xmlを置いても、読み込みできていないよう です。 ::VariantInit〜::VariantClearで囲うことの意味、 V_BSTR(&FilePath) と、一見関数に見えるものに代入演算子が付いている意味など、 VARIANT型を扱う処理が全体的に分からず困ってます。
415 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:00:39 ] DOM(Document Object Model)、COM(Component Object Model)の約束なのでしかたがないのでは? Microsoft社が提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。 特定の機能のみを持つプログラム部品を組み合わせることでアプリケーションソフトの開発が容易になる。 この仕様に基づいてデータのやりとりができるプログラム部品のことをCOMコンポーネントと呼ぶ。 COMコンポーネントは開発に使った言語やコンポーネントのある場所などに拠らず、 どの言語からでも、どこからでも利用することができる。 ネットワークを通じて別のコンピュータ上にあるCOMコンポーネントを利用する技術をDCOMと言う。 これらの技術はWindowsだけでなく、UNIXやMac OSにも移植されている。 コンポーネント開発が楽にできるよう改良された次世代のCOM+の開発が進んでおり、 Windows DNAの中核技術として期待されている。 bizex.goo.ne.jp/tool/it/8_77/209/
416 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:01:57 ] そういうのはVBで扱う前提だからVCだとめんどくさい
417 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:58:31 ] CComVariantとか使うべき
418 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:08:34 ] char str[20]とかいうのがあって strが"abcd%EFG"だったときに %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか?
419 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:31:26 ] >>414 #importでのraw_interface_onlyやめろ。 それを無くすと、高水準なラッパを作ってくれてめちゃくちゃ楽になる。 例えば、loadメソッドならVARIANTやBSTRを使わず文字列を直接渡せるようになる。
420 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:32:59 ] size_t length = strlen(str); char * rp = str; // read char * wp = str; // write while (rp != '\0') {
421 名前:デフォルトの名無しさん [2008/09/12(金) 11:37:10 ] >>419 詳しく教えてください。 #importから、raw_interface_onlyを削除しました。 しかし、あいかわらずloadメソッドではVARIANT型、VARIANT_BOOL型のふたつの 引数が要求されます。 IXMLDOMDocument* を定義してから、インスタンスを生成し、ファイル名を指定 して読み込み、ノードを指定してい読み込んでくるまでの 一連の流れを教えていただけると幸いです。
422 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:46:14 ] 初心者スレでやることとは思えない
423 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:56:30 ] コピペ つ pDoc->load(_variant_t(L"majissuka.com/NewInfo.xml "),
424 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:59:33 ] ファイルなら絶対指定では file:///C:/windows/test.txt かな? test.txtでもいいとはおもう。
425 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:13:02 ] >>418 > char str[20]とかいうのがあって > strが"abcd%EFG"だったときに > %以前の文字を削る(str="EFG"にする)にはどうしたらいいですか? > char *p; p = strchr(str,'%'); p++; strcpy(str,p);
426 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:20:56 ] これでいけたけど・・・ #include <msxml.h> #include <comdef.h> #include <atlbase.h> int main(){ CoInitialize(NULL); IXMLDOMDocument* lpXMLDoc; CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&lpXMLDoc); // ●ファイルから読み込む。● VARIANT_BOOL result; lpXMLDoc->put_async(VARIANT_FALSE); lpXMLDoc->load(_variant_t(L"test.xml"), &result); // ●ノード検索● IXMLDOMNodeList* lpNodeList; BSTR NodePath = ::SysAllocString(L"Test/Item"); lpXMLDoc->selectNodes(NodePath, &lpNodeList); ::SysFreeString(NodePath); long lLength; lpNodeList->get_length(&lLength); for (int i = 0; i < lLength; i++){ IXMLDOMNode* lpItem; lpNodeList->get_item(i, &lpItem); BSTR str; lpItem->get_text(&str); USES_CONVERSION; printf("%s\n", W2A(str)); SysFreeString(str); lpItem->Release();} lpNodeList->Release(); lpXMLDoc->Release(); CoUninitialize();}
427 名前:デフォルトの名無しさん [2008/09/12(金) 17:59:27 ] >>423-424 ,426 ありがとうございます。 やはりうまくビルドできないですが・・・ 引き続き試行錯誤しつつ、XML関連のスレのほう除いてみます。 ところで、CEdit型のエディットコントロールの、それ自身のウィンドウ内での座標をゲットおよびセットする関数ってありますか? (つまり、事後的にプログラム内で任意で位置を変更したい) SetRect(),GetRect()だと思ったらコレはこのコントロール内での座標のことのようでした。
428 名前:デフォルトの名無しさん [2008/09/12(金) 19:02:06 ] ふと思ったんだがCDとかDVDとかって Diskか? Discか?
429 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:05:27 ] Discは光学メディア Diskは磁器媒体
430 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:13:23 ] CDはソニーが作ったから
431 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:21:35 ] サンクス! そう言う区分だったのか ってことはCD/ DVDを「Disk」って書いちまった資料を全部直さないとか・・・
432 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:26:55 ] ja.wikipedia.org/wiki/Universal_Disk_Format Universal Disk Format (ユニバーサルディスクフォーマット、UDF)は光ディスク用のファイルシステムである。
433 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:30 ] >Discは光学メディア >Diskは磁器媒体 MOはどっち?
434 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:46:43 ] e-words.jp/w/E58589E38387E382A3E382B9E382AF.html 光ディスク 【optical disk】 データの読み書きにレーザー光を利用する記憶媒体のこと。 CDやDVD、PDなどが代表的な光ディスクである。
435 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:48:37 ] e-words.jp/w/E58589E7A381E6B097E38387E382A3E382B9E382AF.html 光磁気ディスク 【MO】 読み方 : ひかりじきディスク 別名 : Magneto-Optical disk
436 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:19:20 ] VC2008でテキストボックスに0x01と表示するにはどうしたらいいですか? unsigned char buf[2] ={0x01,0x02}; textBox1->Text = buf[0]; と実行したらエラーがでます。 error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : 1 番目の引数を 'unsigned char' から 'System::String ^' に変換できません。(新しい機能 ; ヘルプを参照) 1> 使用可能なユーザー定義された変換演算子がない、または 1> 演算型のボックス化された形式からターゲット型への標準変換は存在しません
437 名前:デフォルトの名無しさん [2008/09/12(金) 20:24:20 ] >>436 unsigned char *buf[2] ={"0x01","0x02"}; textBox1->Text = buf[0];
438 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:40:21 ] >>437 その方法でもエラーがでまます。 error C2440: '初期化中' : 'const char [5]' から 'unsigned char *' に変換できません。 Hexデータをテキストボックスに表示したいだけなのに。難しい
439 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:14:27 ] テキストボックスに "あいう"と表示してみろ
440 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:17:46 ] >438 テキストボックスはテキストを表示する所だから Hexデータは表示できない
441 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:53:49 ] 基本的なことなんですけど 文字判定でスペースが入力されたら 「空白です」 と表示させたいんですけど、誰かご教授ください
442 名前:デフォルトの名無しさん [2008/09/12(金) 22:57:06 ] C++を初めてインスコしたんですけど、 製品の登録ってなんですか? 無料ですか?
443 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:58:38 ] 有料
444 名前:デフォルトの名無しさん [2008/09/12(金) 23:00:42 ] そうですか。 いくらですか?
445 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:09:11 ] >>438 抜粋 private: System::Void Showbutton_Click(System::Object^ sender, System::EventArgs^ e) { array<System::String^>^ Numdata = {L"0x01",L"0x02",L"0x03",L"0x04"}; if(i < Numdata->Length) this->textBox1->Text = Numdata[i]; else{ i = 0; this->textBox1->Text = Numdata[i]; } } private: System::Void NextShowbutton_Click(System::Object^ sender, System::EventArgs^ e) { i++; }
446 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:15:48 ] >441 キー入力をチェックしてもいいけど マウスで入力する場合もありえるから 入力内容が変った時のイベントでやるのが無難
447 名前:デフォルトの名無しさん [2008/09/14(日) 01:09:45 ] Express 2005で3連休プログラマーなんだけど、 String^ folderName; の ^ ってなに?
448 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:26:01 ] >>447 ハットサイン、或いは山形アクセント記号。
449 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 01:30:56 ] C++/CLIのスレで聞いて来いw
450 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 08:42:37 ] C++/CLIとC++は別の言語。 C++を勉強したいならVisual studioのCLRのカテゴリには手を出すな。
451 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:09:05 ] 今まで普通に使えていたのですが突然MessageBoxが使えなくなりました。 1>.\main.cpp(135) : error C3861: 'MessageBox': 識別子が見つかりませんでした とエラーが出ます。コードは if(MessageBox(hWnd,"あ","あ",MB_YESNO) == IDYES) 等で文字セットはマルチバイト文字です。windows.hもインクルードしてあるのですが何がいけないのでしょうか。 VS2008再インストールしても直りません。
452 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 10:32:27 ] デフォルトはマルチバイトじゃないはずだから いらんところいじってるだろ
453 名前:デフォルトの名無しさん [2008/09/14(日) 10:58:11 ] MessageBoxAだとかMessageBoxWとかにしてやってみたらー(
454 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:41:04 ] プロジェクトの設定にある文字セットってどういう意味なの? あの設定によってコンパイルが通らなくなるし。
455 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:12:52 ] マルチバイトかUnicodeか
456 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:17:03 ] >>455 exeファイルを配布する上で、文字セットの設定が問題になるの?
457 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:24:35 ] Unicode: NTネイティブ、9xでは原則として動かない マルチバイト: NT/9x両方で動くけど、NTではAPI内部で変換がかかるのでオーバーヘッド有り。
458 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:10:02 ] >>457 なるほど。参考になります。 文字コードに「設定なし」とあるけどこれは一体?
459 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:15:19 ] いや、9xの時代から、APIはAとWの両方あったような記憶があるけど。
460 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:26:05 ] >>458 基本的にはマルチバイトと同じ。 ただ、<tchar.h>の中の一部に、なし/マルチバイト/Unicodeの3つで切り替わるやつが存在する。 例えば_tcscpy→strcpy/_mbscpy/wcscpy。 mbs版は2バイト文字の2バイト目が欠ける事態にならないなどといった効果を持っていることが多い。 >>459 エントリポイントだけはあるが、実装されているのはごく一部の例外的存在。 msdn.microsoft.com/en-us/library/ms813063.aspx
461 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:32:09 ] TEXT/_Tマクロをちゃんと使った参考書って少ないよな
462 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:49:42 ] >>461 正直、文字列は、ワイドかマルチバイトか決めうちにして、それは使わないほうがいいんじゃないかって気がする。
463 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 17:39:00 ] 自分ひとりでやるなら勝手だろうけど マクロ使ってない糞サンプルばらまかれると迷惑する
464 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:07:04 ] 大人数でやるところほど、きめうちしたほうが無難っていうか。 ジェネリックテキストつかってても、ワイド文字版と、マルチバイト版と両方でテストやってるところなんてほとんどないだろうし。 文字列を編集してる処理とか、ちゃんと、マルチバイトでもワイド文字でも動くように意識して書いてなかったりするだろうし。 テスト以前に、コンパイル通すとかもやってないだろうし。 古いコードをあさったら、char *p = _T("・・・・"); みたいのいっぱいあるだろうし。 中途半端に対応しても、どうせ片方でしか動かないコードなら、きめうちのほうが安全だと思われ。
465 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 18:58:07 ] そういう場合は開発環境も限定するだろ 特定の環境でしかコンパイルできないサンプルをばらまかれると皆が迷惑する
466 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:24:42 ] いや、ジェネリックテキストなんて、VCにしかないでしょ。
467 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:28:35 ] >>466 またまた御冗談を 真面目な話、BCCでもGCCでも<windows.h>が使えるやつならどれでも使える。 <tchar.h>も結構存在するし。
468 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:36:49 ] それでもWindows限定じゃん。
469 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:42:29 ] まあWindows APIだしね。
470 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:48:41 ] >>465 それはジェネリックテキストを使っても、ぜんぜん解決してない。
471 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:11:10 ] C#でメソッドなどの一行上に"///"書くことで自動生成されるXMLのドキュメント /// <summary> /// /// </summary> /// <param name="i"></param> /// <returns></returns> public int hoge(int i) { return 0; } このような機能はC++ではないのでしょうか クラスやメソッドをオブジェクトブラウザで参照したいのですが,うまくいきません. どのようにすればいいか教えていただけませんでしょうか. お願いします.
472 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:19:51 ] C++はプログラミング言語です
473 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:00:10 ] テキストボックスを使わずに、キースキャンで読み取った文字から漢字辞書変換をしたいのですが できるでしょうか?どのようにすればいいですか?
474 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:15:21 ] IME使う
475 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:29:19 ] 説明してあるHPなんかあったら紹介して欲しいです
476 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:44:21 ] つ[msdn]
477 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:52:50 ] 初心者にやさしくヽ(`Д´)ノ
478 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:03:22 ] msdn.microsoft.com/ja-jp/library/cc448105.aspx ここにIME関連のapiの一覧があるから 適当なapiの名前でぐぐれば何か見つかる
479 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 10:06:30 ] ありがd
480 名前:デフォルトの名無しさん [2008/09/16(火) 18:04:42 ] VC6でDirectXを使いたいです。 本格的なゲーム作るわけじゃないんですが、 ある業務用ソフトの画面効果で軽い2D処理が必要になりまして。(スプライトが 使えればいい程度) ウェブを見た限りではVC6で使う情報はあまり無かったようです。 9.0のSDKと、VC6で使えるようになるという2004 Summer Extrasは入手しました。 ライブラリをインクルードするところから知りたいです。
481 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:22:45 ] 質問です。 VisualC++ 6.0 MFC WindowsXP SP3 の環境で作成した、画面をビットマップ保存するプログラムを、 別のPC VisualC++ 6.0 WindowsXP SP3 の同じ環境で実行すると、作成されたBMP画像が「描画できませんでした」となってしまいます。 この場合、どのようなことが原因だと考えられますでしょうか? また対応策はあるのでしょうか? どうかご教授おねがいします。
482 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:29:52 ] 業務用ソフトだったら外注に頼むだけ
483 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:30:32 ] 多分、ビットマップが微妙に正しく生成されていないのだろう 別のPCで、BMPファイルは何と関連付けされてるの? ペイント?Windowsのビューア?IE? 対策:「画面をビットマップ保存するプログラム」のソースを見直す
484 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:42:21 ] 画面をビットマップ保存するプログラム 作成されたBMP画像が「描画できませんでした」 本当にお前が作ったプログラムか? ソースコピペしたら動きましたレベルだろ
485 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:54:08 ] >>483 Windowsのビューアです。プログラムを見直したいと思います。 >>484 そうです、申し訳ありません。 ですが、同じ環境のPCなのに失敗するのは何が原因と考えられるのでしょうか? よろしくお願いします。
486 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:19:45 ] 考えられる原因は無限にある。 せめてどこで失敗するのか突き止めろ。
487 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 06:44:43 ] >>481 モニターのカラーのビット数が違うとか
488 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 06:48:41 ] 何も知らない初心者がC#ってやつから始める事にしたお。 その次はJAVAかな。地味に頑張るお。新兵に激励を頼むお。
489 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 07:58:15 ] 貴様は人間ではない!糞ほどの価値もない! C#訓練に生き残れたら、プログラムの司祭となる! サービス残業に命を捧げるTI土方だ!
490 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 09:22:37 ] ビットマップの作成で失敗するか、表示で失敗するかぐらい確認しろ それぞれの環境で両方のビットマップ表示したらわかるだろ
491 名前:デフォルトの名無しさん [2008/09/17(水) 16:09:06 ] std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
492 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 16:44:02 ] スレ違い
493 名前:デフォルトの名無しさん [2008/09/17(水) 16:54:08 ] >>492 死ねアホ。
494 名前:デフォルトの名無しさん [2008/09/17(水) 16:57:32 ] std::vectorに自分で作ったクラスのオブジェクトのポインタ入れてあるんですけど clear()をすると、保持してるポインタのさしてるオブジェクトをdeleteしてくれるんでしょうか?
495 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:05:43 ] ここC++スレじゃないけど
496 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:07:42 ] >>494 boost::ptr_vectorを使うか、boost::smart_ptrでポインタを包む
497 名前:デフォルトの名無しさん [2008/09/17(水) 17:08:26 ] Visual 「「「「C++」」」」」」
498 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:08:28 ] ×boost::smart_ptr ○boost::shared_ptr std::auto_ptrはだめです
499 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:12:02 ] >>496 >>498 要するに勝手にdeleteまではしてくれないということですね? boostの使用も検討してみます。ありがとうございました。
500 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:12:37 ] 数学の授業で小学校レベルの算数の質問されたら迷惑だろ いちおう関係なくはないけど
501 名前:デフォルトの名無しさん [2008/09/17(水) 17:15:39 ] ↑今日一番のアホ
502 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:31:33 ] >492,495,500 痛いな
503 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:00:34 ] 寧ろ>493,497,501,502が痛い罠。
504 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:14:29 ] いやいや、俺に言わせれば >502,503 が必死w
505 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:15:20 ] C++やC#やるのにどのソフトがお勧めとかある?
506 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:28:10 ] とりあえず2008 Express Edition使っとけ
507 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:50:45 ] Microsoft Visual Studio 2008 Express Editionの事? 無料でいいのか?とか不安に思った Visual Studio .NET Professional普通にこっちのがいいかとも思ったけど Express Editionでも平気ならそっちでいいか
508 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 19:19:56 ] お前に使えるのか不安に思った
509 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 20:36:02 ] むむ…初心者を舐めたらいかん きっとなんとかなる…はず…多分…恐らく…
510 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:23:22 ] >>507 グダグダ言ってる間に使ってみればいいだろ
511 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:41:18 ] >>499 VC++ 2008にSP1当ればboostなくてもstd::tr1::shared_ptrが使える。
512 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:39:27 ] 数日前までうまく言っていたのに、急にコンソールウィンドウを 最大化しないと見られなくなりました。 原因が分からないのでどなたか教えてください
513 名前:デフォルトの名無しさん [2008/09/18(木) 20:22:37 ] VC6で、ウィンドウ上部のメニューやツールバーアイコンを、 必要に応じて適宜、グレー可(クリック不可なようにする)などの変更をする方法教えてください。
514 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:07:25 ] Enable: ボタンを選択可能または選択不可能に設定します。
515 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 09:06:37 ] CとC++の違いって何ですか?
516 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 10:07:07 ] 一言では言い表せない
517 名前:デフォルトの名無しさん [2008/09/19(金) 14:06:30 ] VC++とBorland C++Builderってどっちのほうがつかいやすい? 低スペPCの俺には無理?
518 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 14:35:32 ] 人による
519 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:15:31 ] VC++のほうが低スペック コンパイル速度はBCC
520 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 15:18:52 ] そんなどうでもいいことで選ぶやつもいるんだ
521 名前:481 mailto:sage [2008/09/19(金) 17:35:10 ] >>486 ビットマップの作成で失敗していると思われます。 プログラムの作成に使用したPCではビットマップ画像のファイルの大きさが2,521KB に対して、プログラムを移行させたPCではファイルの大きさが1,262KBで作成されてしまいます。 >>487 プログラムを移行させたPCが手元にないのでわかりませんが、調べて同じにしてみたいと思います。 >>490 上にも書いたとおり、ファイルの大きさが違うので作成で失敗していると思われます。 よろしくお願いします。
522 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 17:56:20 ] >>517 VCスレきたんだからおとなしくVCつかっときな BCのほうはただでさえ人少ないのに 偏屈なこだわりがある自称玄人ばかりだから ネットの情報すくないし何を聞くにしても大変 だからといってVCはましなのかというと腐ってるわけだがBCほど腐ってない
523 名前:デフォルトの名無しさん [2008/09/20(土) 16:48:08 ] VC6で、DirectXのAPIを使わずに、スプライトなどの2Dグラフィックス表現を実現する簡単な方法はありますか? オートシェイプのような簡単な画面レイアウトソフトを作りたいのですが、 標準のコントロールやCViewクラスの描画メソッドでは、重なりや透過などの指定に限界が出てきてしまうようです。 オブジェクトをドラッグで移動したり拡大縮小したりにも対応させたいので、 ゲームプログラムに近い作り方で各オブジェクトをスプライトとして扱いたいのです。 業務用で使うツールとして、DirectXが動くかどうか怪しい環境でも使うことを想定しているので。 DirectXのAPIを使うことは無しの方向で、いろいろ模索しています。
524 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 16:52:36 ] bitbitがある
525 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 16:59:53 ] このソースで初めて、windowsの標準で描写できるのを知った おまいらSaGa4つくろうぜ! www.geocities.jp/saga4project/
526 名前:デフォルトの名無しさん [2008/09/20(土) 17:12:53 ] VC++でソースをかいてビルドするのですが、 VC++が応答なしになってしまってビルドできません。 これはスペックの問題でしょうか? ちなみに警告やエラーはありません。
527 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:31:06 ] 正直向いてない
528 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:25:09 ] bitbltだろww
529 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:32:17 ] 当然とは思ったけど念のため手持ちのゲームを解析してみたら 必ずしもDirectXは使ってないね
530 名前:481 mailto:sage [2008/09/20(土) 22:24:56 ] 解決しました。 >>487 さんがおっしゃってたことを試しました。 プログラムに使用したPCのモニターのカラーのビット数を最高(32ビット)から16ビットにして ビットマップを作成すると、1,262KBの描画できていないビットマップが作成されました。 なので移行したPCもモニターのカラーを最高(32ビット)に変更したいと思います。 ありがとうございました。
531 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 22:29:28 ] なんつう糞プログラムだ
532 名前:523 [2008/09/20(土) 23:17:20 ] >>524 >>525 >>528 >>529 Bitbltですね。ヒントありがとうございます。 スプライト的な使い方ができる解説やサンプルみたいなのありますか? >>525 のソースは見てみましたが、 できればVC6のプロジェクト形式でのサンプルがあればと。 Bitbltを使えば、CViewクラスのビュー上に描画することが可能なのですか?
533 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:21:35 ] VC++開発においてC#やVBなどで用いられる IDE機能をもたらすアドインはないでしょうか? 例えば、コメント表示(C#ではコメントはXMLで整理されており コード内のメンバにカーソルをあわせたときや入力補完のときに 情報ウィンドウにコメントが表示されます)や、 コードチェッカ・整形(C#ではresharperというアドインによって 定義されていないメンバの呼び出しに色づけしたり、 メンバ名変更などのリファクタリングができます) クラス定義のリンク (既定・継承クラスへのリンクを列挙したり 名前からクラスやメンバを検索したり、 参照へのリンクも標準のgrepみたいな質素なのではなくて、 名前空間・クラス・メンバで階層化されたものがよいです) こういった定番的な付加機能のアドインを知りたいです。 あとVSのエディタで宣言部分 (例えば「Vector vec;」でVectorの部分)に色づけをすることはできませんか?
534 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 23:43:50 ] コピペ、クレクレ厨かよ
535 名前:533 mailto:sage [2008/09/20(土) 23:55:04 ] >>534 お気を悪くされたのでしたら申し訳ありません。 でもコピペではないし、 ここはVC++関連について教えて頂けるスレではないのでしょうか? クレクレばかりではなく普段自分が教えられることは教えていますし、 事前に一応検索もしました。うまく見つけられなかったので お力を借りたいと思いここに書きました。
536 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 00:22:22 ] その機能ってインテリセンスなんじゃないのか? あと、特定の単語に色をつける機能はある。Userナントカってファイルがどうのこうの、だったが……忘れた。
537 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 08:25:41 ] >535 初心者スレで質問してるんだから初心者だよな? 慣れるまでデフォルト、ノーマルで使っとけ
538 名前:533 mailto:sage [2008/09/21(日) 19:33:38 ] >>537 すみません、C++は初心者ですが必要になったから使うだけなので ガリガリ書いてマスターする気にはなれません (デフォでやったからといって上達するわけでもないし)。 なので支援機能は是非欲しいのですが皆さんデフォで使ってるのでしょうか? .NETと比べるとまるでプレーンテキストを読み書きする感覚です。 初心者スレではなく他のスレに書いたほうがいいのかな?
539 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:44:47 ] C++はマスターしてから書きましょう
540 名前:デフォルトの名無しさん [2008/09/21(日) 20:25:18 ] visual C++の入門書を買おうと思うんですが、どれがいいでしょうか? プログラミング経験は、あまりないです。(PHPを少し扱える程度)
541 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:34:15 ] >プレーンテキストを読み書きする感覚 的確な表現だと思うのは俺だけか。 ドットネットが部品を組み合わせて使うものなら、C/C++はその部品を自分で作らなくちゃいけないんだよ。 判りやすく言うと、マゾい。作りたいアプリとは関係ないところで躓くことも多いし、 ちょっと間違えただけで簡単にクラッシュする。一昔前ならOSごと落ちる。 はっきりいって、そのような向上心のない態度ではとてもじゃないが使えない。 時間の無駄。断言できる。結果が出せるまで一年くらいかかることは確定的に明らか。 それでもC/C++を使ってる人たちは、そのような強烈なデメリットを承知の上で、 なおあまりあるメリットを見いだしてるから。 部品を自分で作る必要がある、ってのを、どうとらえるか。 それ次第で、C/C++は便利な道具にも、使えないガラクタにもなる。 いいかね?使う方が言語を選ぶんじゃあない、言語が使い手を選ぶんだ。それがC/C++だ。 わかったらドットネッターにもどるんだな。おまえにも かぞくがいるだろう……
542 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:35:39 ] ガイル乙www
543 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:36:22 ] 少佐!お疲れ様であります!
544 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:27:48 ] >538 このへんを参考に www.microsoft.com/resources/msdn/en-us/msdntv/episodes/en/20031028LHORNDB/ChrisA-DonB_300K.asx
545 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:28:39 ] >>541 マスターする気がないといったことは、 バリバリやってるマ様には失礼な発言ですみませんでした。 でもそこまでマゾになんなくても、 楽をするのに努力を惜しまないのがマなのでは? OSSが巷に溢れる昨今に部品を自作する意味は弱いという考えもありますし、 そもそも今回の話題は部品の自作ではなく環境の整備が焦点です。 あんまりにも環境が貧弱でそれが無駄にC++の敷居を上げている と思ったのです。 以下は質問なのですが 継承クラスを探すのにはgrepでもやってるのでしょうか? 与える引数の型がミスしてるのを脳内チェックかコンパイラしか 見つけられないのでしょうか? メンバ名の変更は対象以外が置き換わる危険性を孕んでまで全文置換でしょうか? 細かな仕様(例えば参照渡しで事前に値設定が必要なのかなど) もわかりづらいと思うのですが、いちいちリファレンスを引くのでしょうか?
546 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:32:51 ] C++は複雑すぎてインテリセンスできないのです。 C#のように単純な言語ならではなのですインテリセンスは。
547 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:40:51 ] >>546 インテリセンス(入力補完)はC++でも有効でしょうし複雑さとは 関係がないような気がします。コメント概略が表示されないのは何故…。
548 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:49:20 ] >>544 ありがとうございます!少し道が開けた感じです。 連投すみませんでした。皆様もよりよい環境でプログラミング できますように。
549 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:20:40 ] ここでそんなことをぐだらぐだら聞くよりもやるべきことは他にあるだろうに。
550 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:21:41 ] forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3904878&SiteID=7 日本語読まない奴ってどこにでもいるなぁ
551 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:26:45 ] 自分の知らない単語は無意識に飛ばしてるのだろう。 これは日本語でも英語でも同じw
552 名前:デフォルトの名無しさん [2008/09/22(月) 18:54:56 ] >>540 の回答お願いします。
553 名前:523,532 [2008/09/22(月) 18:56:55 ] Bitbltでオブジェクトを表示したりマスクかけたりする処理についていろいろ調べてみました。 画像とそのマスクを用意して透過するぐらいまではなんとかできるようになりました。 今作ってる表示のメインはテキストや図形なので、とりあえずテキストを貼り付けたCDCオブジェクトを用意したいのですが・・・ どのようにしても表示されず困っています。 viewのOnDrawメソッドで、 CDC* spr=new CDC; spr->CreateCompatibleDC(pDC); spr->TextOut(0,0,"テスト文字"); pDC->BitBlt( 0, 0, 300, 300, spr, 0, 0, SRCCOPY); これで何も出ないです。 TextOutではなくDrawTextでやる方法も試みました。 DrawText(spr->m_hDC,"てすともじ",11,temp,DT_CENTER) こちらも表示されないようです。 画像表示のときは CDC::SelectObject() で、対象のCBitMapを指定すれば良かったようですが、 テキストの場合はどう指定すればよいですか? VC6なので資料やサンプルが少なくて難儀してます・・・
554 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:58:30 ] >552 PHPを少し扱える程度じゃVCは無理 もうちょっと初心者向けの言語をお勧めします。
555 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 18:59:52 ] >>553 DCはデフォルトでは1x1のモノクロビットマップが選択されている そのまま描いたらたぶん、1ドットだけBitBltされてると思うよ、よくみてみ。 通常はイメージに限らず、ビットマップを作成してDCに選択し、そこに書き込んでから ウィンドウにBitBltする。
556 名前:デフォルトの名無しさん [2008/09/22(月) 19:20:34 ] >>555 CBitmapクラスにテキスト(の形)を読み込んで使うということですか? どのメソッドを使ったら良いか教えてください。
557 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:29:20 ] コピペ君には教えるだけ無駄
558 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:59:36 ] メソッドじゃできないよ。CでAPIを直に触らないとダメ
559 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 00:49:37 ] >>553 CBitmap::CreateCompatibleBitmapをやって 553で言うところのsprにSelectObject あとはspr->TextOut or DrawTextしてpDCへBitBlt 手(CDC)に紙(CBitmap)と活字(CFont)を持って(SelectObject)文字を書く(DrawText) 最初は面倒だけどすぐ慣れるよ。
560 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:30:31 ] >>556 DCにつながってるデバイスってディスプレイだったりプリンターだったりするじゃない? そういうデバイスを指定しないで作ったDCはビットマップがデバイスなんだよ。 だから自分でビットマップを作りそれをDCに選択してそのDCにTextOutすると そのビットマップに文字が描かれる。 そのビットマップをウィンドウのDCにBitBltすれば画面上で見られるってわけ。
561 名前:デフォルトの名無しさん [2008/09/23(火) 13:42:57 ] visual studio 2008 express を使用しています。 現在あるオープンソースソフトウェアをソースからビルドしようとしているのですが、 ビルドに際し、環境変数が見つからないと言われます。 windowsOSの環境変数は指定されている通り設定しているのですが、エラーが起こります。 確かvisual studio自体にも環境変数を指定する箇所があったと思うのですが、 場所がわかりません。 visual studio自体に環境変数を指定する場所があるならば、 その方法を教えていただきたいです。
562 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:49:35 ] すいません。 スレ違いのようですね・・・ 失礼いたしました。
563 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 13:53:25 ] さようなら
564 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:36:04 ] 新規プロジェクト追加時に、自分で設定した値を常に反映させることは可能でしょうか。 具体的には警告レベルを4として、新規プロジェクトが作成されることを望んでいます。
565 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:48:50 ] お使いの製品のグレードあるいはユーザーの知的レベルによって可能
566 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 16:51:39 ] VS2005EEです。知能は未アカデミックです。
567 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:01:03 ] エンタープライズエディションをばかにするな あやまれ!! みたいな。
568 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:35:19 ] カスタムプロジェクトを使用 マクロで設定 既存のプロジェクトをコピーして使いまわす。 プログラム、スクリプト等で定義ファイルを書き替え VSにパッチを当てて改造する。
569 名前:デフォルトの名無しさん [2008/09/24(水) 15:57:07 ] C/C++室から誘導されて参りました。 VC++2005の使い方を教えてください。質問は以下です。 > 482 :デフォルトの名無しさん [] :2008/09/24(水) 07:57:18 > VC++2005を利用しています > 例外を勉強しているのですが、例外を発生させたときに、 > catchで例外を処理しても、デバッガに例外があったことが出力されます > > catchで例外を処理するときは、 > デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか > > 483 :デフォルトの名無しさん [↓] :2008/09/24(水) 12:37:12 > >>482 > 出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる > デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。 > > 484 :482 [] :2008/09/24(水) 13:18:40 > >>483 > れす、ありがとうございます。後者です。 > > 例外のつかいかたについては勉強していくところです。 > もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。
570 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:12:20 ] リリースビルド
571 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:18:03 ] 勉強? その出力で困るやつがいるのか? 遊びじゃないんだからいい加減にしろ
572 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:30:52 ] 無料になってから馬鹿が増えたな
573 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:37:53 ] >>569 Googleで検索しろ 遊びじゃないんだからそのくらい自分で調べろ
574 名前:553 [2008/09/25(木) 08:33:12 ] >>559 >>560 大変分かりやすい説明ありがとうございました。 やりたかったことが実現できました。
575 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:49:58 ] >>569 例外は文字通り例外的なことが起きた場合に使うもので、実行を中断せざるを得ないぐらいの場合にしか使わないほうがいい。 そんな滅多におきないことのためにifをたくさん書くのは面倒だしテストが大変になる。だから例外を使って楽に例外処理を実装する。
576 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 21:16:30 ] class Hoge{ public: Hoge(); virtual void abs_func() = 0; }; class Hoge_1:public Hoge{ public: virtual void abs_func(); }; Hoge::Hoge(){ abs_func(); } void Hoge_1::abs_func(){ } int main(int argc, char* argv[]){ Hoge *p = new Hoge_1; delete p; return 0; } このコード、BCB6では正常ビルドできるけど VC2005では「外部参照 1 が未解決」リンカエラーなる。 何で?コンパイラスイッチで回避可能?
577 名前:デフォルトの名無しさん [2008/09/26(金) 22:18:04 ] 基底クラスのコンストラクタで純粋仮想関数呼んでるから
578 名前:デフォルトの名無しさん [2008/09/27(土) 10:58:32 ] 今までEclipceをずっと使ってたんだけど、C++で開発するにあたり、VisualC++を使ってみた。 これにはEclipceみたいに、コンパイルエラーが出る箇所を赤線で事前に教えてくれたりってのはないの?
579 名前:デフォルトの名無しさん [2008/09/27(土) 11:12:32 ] ないね。
580 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 11:27:05 ] ありがと〜
581 名前:デフォルトの名無しさん [2008/09/27(土) 11:40:47 ] ほのぼのしたスレですね
582 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 13:14:19 ] 文法間違えてると、それ以降のツールチップヒントが出てこない場合がある。 例えば、構造体のメンバだと、 hoge. ここまで書くとメンバ一覧がひょこっとでてくるが、 前に間違いがあると、 a += b: これ間違い。 hoge. ここでヒントが出てこなくなる。
583 名前:デフォルトの名無しさん [2008/09/27(土) 14:30:10 ] VC2005でプログラム(コンソールで動くもの)を作成しています。 コンパイルして実行してみても予期したとおりに動かないのでデバッグで調べた所、 cppファイルのテキストと実行している位置がずれているようです。 ステップオーバーで1行ずつ実行しているのにありえないところで数行飛んだりします。 (代入文が5つ続いてるのをジャンプしたりする) 一つ気になる点はビルド時に LINK : 前回のインクリメンタル リンクで C:\Documents and Settings\管理者\My Documents\Visual Studio 2005\Projects\****\Debug\****.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。 という表示が出ることです。 ソリューションのクリーンを行ってもncbファイルを削除してからリビルドしてもこの表示が出ています。 原因or解決方法ご存知の方、お助けくださいませ。
584 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:34:59 ] Release版をデバッグ実行してね?
585 名前:583 [2008/09/27(土) 14:38:59 ] >>582 素早いレスありがとうございます。 確認しましたが構成はDebugになってます。
586 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:39:39 ] そもそもデバッガなんて使わないほうがいいよ。 printfとfprintfがあればおk
587 名前:583 [2008/09/27(土) 14:39:42 ] ↑は>>582 じゃなくて>>584 です。
588 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:42:31 ] 漢は黙ってmdbg
589 名前:583 mailto:sage [2008/09/27(土) 14:43:31 ] >>586 了解です。 printfで変数を調べてみた所きちんと代入されていることが分かりました。 一つ一つチェックしていくことにします。 回答ありがとうございました。
590 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:43:32 ] 586みたいなのを時代遅れっていうんだろうな
591 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:45:50 ] >>585 つか、Debugビルドの構成が間違ってるんじゃね?
592 名前:583 mailto:sage [2008/09/27(土) 14:52:03 ] >>591 回答ありがとうございます 構成マネージャ-> 構成=Debug プラットフォーム=Win32 ビルド=チェックあり 構成プロパティ->C/C++->全般にある デバッグ情報の形式=C7互換 となってます。 Debugビルドの構成の部分がどこを指すのかイマイチよくわからないのですが
593 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 14:54:47 ] デバッガに頼るようでは真のプログラマとは言えない
594 名前:583 mailto:sage [2008/09/27(土) 14:56:02 ] >>593 まだ真のプログラマじゃないのでご容赦下さい
595 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:06:08 ] 旧バージョンのプロジェクトからアップグレードでもしたのかな? C7互換を /Zi か/ZI にする。 最適化 無効 (/Od) であることを確認する。 変なのが沸いてるけどデバッガにトラウマでもあるのかな(笑
596 名前:583 mailto:sage [2008/09/27(土) 15:12:34 ] >>595 最適化無効によりデバッグ情報と実行位置情報が一致するようになりました。 無事いつもどおりのデバッグができるようになりました。 回答していただいた皆様、どうもありがとうございました
597 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:23:25 ] 最適化してたら一致しないのはあたり前だ
598 名前:583 mailto:sage [2008/09/27(土) 15:30:00 ] >>597 すいません。全くもってその通りですね… いつもはデフォルトで最適化が無効になっているのですが 今回はなぜか最適化されてしまっていたので気づきませんでした。
599 名前:デフォルトの名無しさん [2008/09/28(日) 00:30:32 ] Visual C++ と C++ って何が違うんですか><
600 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 00:34:06 ] VC++は商品名。
601 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:01:13 ] C++はプログラミング言語の名前、Visual C++はC++開発のためのソフトウェアの名前
602 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 01:19:12 ] 開発ソフトの名前に言語名入れるの禁止にしようぜ
603 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 02:27:43 ] むしろ言語名が入ってないほうが困る
604 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 03:34:12 ] Visual C++/CLI でおk
605 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 14:42:10 ] パソコンもプログラミングも初心者ですがインストールで詰まったり(一応)解決できたりしたので報告してみる OS:Vista HomeBasic SP1 はじめ、Visual Studio 2008 SP1 のDVDイメージをダウンロードして焼いてVC++インストール開始。 インストールの途中で、暗転・黒背景白字の英文エラー数秒出て(読めない)OSが落ちて再起動、インストール失敗。 次に書籍付録DVDからVC++2008無印をインストール。一応最後まで成功。 だが前回インストール失敗した残骸(?)が中途半端に残っているのか、登録手続きでキーが表示されなかったり、 ヘルプの参照で壊れている項目があったり、ということが発生。 そこでMicroSoftのアンインストールツールでアンインストール、.NET FRAMEWORK 日本語パックと本体も削除した。 今度はVC++2008SP1をウェブインストール開始。 が.NET FRAMEWORKインストール直後あたりに数秒エラーメッセージが出て(やっぱり読めない)落ちて再起動、失敗。 再びアンインストール作業をして、今度はもうちょっと慎重にやろうと決意。 LAN抜いて、セキュリティソフト(ウイルスバスター2008)を切って、msconfigからMS以外のサービスを停止。 そしてSP1のDVDからインストール開始。 途中Machine Debug Managerを停止せよとの通告が出たので、コンピュータの管理から該当サービス停止。 またHTMLアプリケーションホストも停止せよと言ってきたので、(これっておかしくね?DVDからインスーラ起動する(?)htaのアレだろ? なんで邪魔にすんだよ?とか思ったが)setup.htaのウィンドウを閉じて、再試行。 最後まで進んでコンピュータの再起動。「システムの構成を更新」してるという表示が出て2回ほど再起動。 今度はうまくいったようで、今のところ問題なく hello fuck'n world とかで遊べてます。 すごい迷走だ。バスターのせいだったのかな。
606 名前:605 mailto:sage [2008/09/28(日) 14:50:10 ] Cドライブ直下にインストール作業フォルダっぽいのがいくつも残ってるwww
607 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 17:41:04 ] ここはあなたのメモ張じゃありませんよ
608 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:23:28 ] 失敗例と解決しての成功例は貴重なレポートなのでむしろいいぞもっとやれ
609 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:41:01 ] ブログにでも買い解け
610 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 18:48:56 ] >>609 はげどう
611 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 12:26:56 ] インストールだけでこんなにも躓く奴が存在するなんて・・・
612 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:13:31 ] ttp://www.microsoft.com/japan/msdn/vstudio/express/maninstall/2008/default.aspx 最新で無料のバージョンはこれでいいの?
613 名前:デフォルトの名無しさん [2008/09/30(火) 19:59:04 ] VC6で質問です。 CScrollViewクラスのビュー上で、 クライアント領域にBitbltでいくつかのオブジェクトを貼り付けて表示したり動かしたりするプログラムを作っています。 ページが動かないときはそれでいいのですが、スクロールバーを動かしたりしても連動して動いてくれないです。 たとえばBitbltで座標100,100に貼り付けた場合、スクロール有効領域全体の0,0を基点にするわけではなく、 「現在見えている」領域の、100,100の位置に貼り付けられるといった具合です。 OnScrollメソッドで再描画をかけて、GetScrollPosition()の値分、補正して貼り付けてやれば、 スクロールバー連動で位置を動かすことはできたのですが、画面がちらついてしまいます。 スクロールバーと連動して描画したい場合、もっとスマートなやり方はありますか? たとえば、スクロール有効領域全体の0,0を基点にしたデバイスコンテキスト(のようなもの)を取得して、 そこに貼り付けてやればこちらで再描画かけてやらなくても、スクロールによりWindowsが勝手に動かしてくれるイメージで。
614 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:11:36 ] ずらして描画は正しい まずはちらつく原因を特定して、それを抑えよう バッファに描いてそれを転送でもいいし、バックグラウンドの塗り潰しかもしれん スクロールした場合、元の画像はずらしてくれて、 新たな部分だけ無効領域になってるはずだよ
615 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:16:25 ] ってもしかしてOnScrollでInvalidateしてんのか? それは意味ないぞ 全部更新したいなら別だが。 そこはUpdateWindowだけな
616 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:13:48 ] VisualC++ 2005 Express Editionをインストールしようとしたらvs_setup.msを開けませんでした と出てきてインストール出来ませんでした。 ちょっと前には普通にインストール出来てたのですが、何が原因かわからないです。
617 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:21:14 ] 私も分からないです
618 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 21:28:44 ] ハードディスクがお亡くなりになる前兆ですね なむ〜
619 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:22:53 ] >>618 HDの寿命なのか・・・ うわああああああああああああああああああ
620 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:45:34 ] >vs_setup.ms こんなもん始めから無いだろ。 vs_setup.msiじゃないの? これ試してみては。 ttp://support.microsoft.com/default.aspx/kb/833594/ja
621 名前:613 [2008/10/01(水) 14:09:24 ] >>614 ありがとうございます。 バッファとしてのデバイスコンテキストを持つようにする方式を試してみました。 CreateCompatibleBitmapでビューのDCと互換のでDCをクリエイトするようにしたところ、 ディスプレイ解像度を超える部分には書き込まれないようです。 (ディスプレイ解像度を大きく超える広さの領域をバーでスクロール表示したい) ディスプレイに影響されない、独自の形式(解像度)のDCを作る方法がありましたら、教えてください。 CreateCompatibleBitmapではなく、 CreateDCで独自の形式(解像度)のDCを定義することを考えていますが、 このメソッドの使い方(引数の指定方法)がよく分かりません。 ウェブの資料にあった、 bufDC.CreateDC("DISPLAY", 0, 0, 0); とすると、書き込んだ時点で全画面モードになってしまう予想外の動きが・・・
622 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:01:03 ] そりゃディスプレイのDC持ってくりゃそうなるだろ。 いったいどうやってんの? Bitmap作るのに大きさ指定できるでしょ? GetClientRect(&rect); CPoint pos = GetScrollPosition(); (略) pDC->BitBlt(pos.x, pos.y, rect.Width(), rect.Height(), &dc, pos.x, pos.y, SRCCOPY); こんな感じでやってる? 面倒だからとりあえず、 pDC->BitBlt(0, 0, bitmap.Width, bitmap.Height(), &dc, 0, 0, SRCCOPY); で試してみては?
623 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:32:08 ] ところでbitbltの読み方はビットブリットでいいのかな ビットブルト?ビットブロット?
624 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:06:19 ] ビットブリットと言っているなあ
625 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:06:54 ] 自分はビットブリットだと思ってるけど 周りのみんなはビットビルトって言ってる
626 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 17:11:16 ] >>620 vs_setup.msiでした 無事インストール出来ました。ありがとうございます
627 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:42:06 ] >>622 ありがとうございます。 ディスプレイ解像度うんぬんは的外れで、CBitmapのCreateBitmapのところで必要な解像度指定すればうまくいきました。 もうひとつ質問です。 VC6で、DrawTextで貼り付けるテキストを、サイズ指定したりフォントや色を変えたりできますか? MFC見ているとVC2003以降はDrawTextExってのがあるみたいですが、6でそのようなことをする方法あったら教えてください
628 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:50:05 ] えーと、、、、それは基本中の基本だと思うんだが。 フォント作ってDCに選択して書くだけだろ。 色はペンやブラシを替えればいいし、GDI関連一通り実験してくれ。
629 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:50:29 ] DrawTextExはVC6にもある
630 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:52:49 ] 俺はビットビーエルテーって読んでる。
631 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:15:45 ] C++って何て読むのー?しーぷらすぷらす?
632 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:17:59 ] ttp://wikipedia.org/wiki/C++
633 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:18:09 ] シータスタス
634 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:53:07 ] 吹いた
635 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:14:48 ] 質問です。 今、自作のゲームソフトを作っているのですが、 プログラムでどのぐらいメモリが使われてるか見てみようと思って Windows タスクマネージャでメモリ使用量を眺めていた所です。 どうも、ファイル読み込みがあるたびにメモリ使用量が増えていき ある程度の数字を超えると使用量の増加がやむ、というような感じみたいなのです。 mallocやnewで確保したメモリが開放されていないのかな?と思いましたが、 何度見直しても開放処理を行っています。 これってひょっとしてXPのシステムキャッシュというのが プロセスのメモリ使用量として加算されてるという解釈であっていますでしょうか? また、ゲームを公開するにあたって動作環境の表記は必要だと思いますが、 このようにプログラマの意図しない所でメモリが消費されているとすると、 プロセスが実際に使う最大メモリ使用量というのはどのように割り出せばいいのでしょうか?
636 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:19:22 ] メモリのほうは判らんが、 動作環境なら、自分の動かしてる環境書いて、「これ以上のスペックなら問題ないでしょう」でいいんじゃない?
637 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:11:42 ] >635 基本的に「メモリ使用量」(専門的にはワーキングセットという)は OSがプロセスに割り当てた物理メモリの量。 プログラムがまたアロケートしたときに 割り当てのための余計なコストが増えないよう 物理メモリを確保したままでとどまる。 プロセスがバックグラウンドに移されたり、 他のプロセスがメモリを要求したりした時点で 初めてワーキングセットが減らされる。 ちなみに実際にプロセスが使っているメモリの量を知りたければ 「仮想メモリサイズ」を得る必要がある。
638 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:23:31 ] >>636-637 レスありがとうございます。 >>636 確かにそれでもいいのかも知れませんが、Windowsアプリになれたプロの人なんかは、 そのソフトに必要なメモリをどのように決めているのかと思いまして。 >>637 >プログラムがまたアロケートしたときに >割り当てのための余計なコストが増えないよう >物理メモリを確保したままでとどまる。 ということは、メモリ割り当ての問題であってファイル読み込みとは無関係なのですか? 音声のファイルを読み込んだりしたときに、ディスクアクセスしてないように見えるのですが
639 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:33:47 ] そりゃ以前読み込んだ音声ファイルのデータがキャッシュに残ってたんだわ。 ちなみにシステムやプログラムが使ってない物理メモリは 全部ディスクキャッシュとして使われる。
640 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:30:24 ] なるほど。ファイル読み込みのキャッシュはプロセスのメモリ使用量とは また別として確保されるのですね。 仮想メモリサイズを取得するというのはGlobalMemoryStatus()でしょうか? これってプロセス単体の使用量を調べられましたっけ? それとも、他にプロセスの仮想メモリサイズを調べるための関数がありますか?
641 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:14:10 ] GUIアプリとコンソールアプリの共存って出来ますか? 例えば、物理シミュレーションの映像をDirectXやopenGLでウィンドウ表示しつつ、 演算結果はコンソールで表示し続けるみたいなことです。 プロジェクトを作るときに、コンソールとwin32アプリの2択しかないので、 そういうことは出来ないのでしょうか…
642 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:15:59 ] コンソールプログラムからCreateWindow関数を呼ぶとできます。
643 名前:641 mailto:sage [2008/10/02(木) 11:39:08 ] >>642 ありがとうございます。
644 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:18:40 ] そんなに簡単に呼べたっけ? ライブラリとインクルード用意すれば呼べそうな気もするけど、 mainとwinmainで全然作りが違う気がする
645 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:25:00 ] 一つのプロジェクトの中には、一つのmain関数しか定義できないのですか? だとすると、directxなどのライブラリを用いるサンプルソースを試すにはその 都度、プロジェクトを作成しなといけないと思うのですが、ソリューション内の プロジェクト全てに同じインクルードパスとライブラリパスを適用するような ことは出来ますか?
646 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:41:45 ] パスの設定はVC++そのものの設定でやればいいだろう。 lib指定が面倒だったらヘッダーに#pragma comment入れとけばいいし
647 名前:645 mailto:sage [2008/10/02(木) 13:02:32 ] >>646 ありがとうございます。 #pragmaはコンパイラによって挙動が違ったような気がするので 見送りかな。linuxでもコンパイル出来るようにしときたいので。
648 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:13:28 ] >>647 LinuxではDirectX使えないよ そもそもここはVisualC++のばりばり環境依存のスレです
649 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:28:45 ] >>644 #include <windows.h> int main(void) { HWND myWindow = CreateWindow( TEXT("STATIC"), TEXT("hogehoge"), WS_OVERLAPPED, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, NULL, NULL ); ShowWindow(myWindow, SW_SHOW); MessageBox(NULL,TEXT("ok"),TEXT("close"),MB_OK); return 0; }
650 名前:640 mailto:sage [2008/10/02(木) 13:40:43 ] 一応自分なりに調べてみてGetProcessMemoryInfo()という関数があるのがわかりました。 プロセス終了時に取得したPROCESS_MEMORY_COUNTERS構造体のメンバのうち、 PeakWorkingSetSize と PeakPagefileUsage の合計値が プロセスで実際に使われた最大メモリ使用量という事でいいのでしょうか? というか、ゲームに使われる全てのファイルサイズの合計超えてます^^; こういうものなのでしょうか?プロの人は本当にどうしてるのか気になります。 一度大きくメモリを確保してプログラムで小出しにするなんちゃってアロケート実装とかですかね?
651 名前:647 mailto:sage [2008/10/02(木) 13:45:51 ] >>648 directxはあくまで例で言っただけで、openGL使うと思います。 混乱させてすみませんでした。
652 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:46:00 ] テストプログラム作って実測だろうが 机上で計算しても何の意味もない
653 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:59:01 ] lib指定のpragmaはcomment文なので、他には影響なさそうだけどね。
654 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:00:34 ] >>641 は入門用にglutから入ればそんな心配も出てこなかったろうに。
655 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:01:06 ] >>652 >>650 は実測はしてはみたけどそれが正しい方法なのか知りたいって事でしょ 俺もメモリ関係よくわからんから知りたいわ
656 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:05:12 ] >一度大きくメモリを確保してプログラムで小出しにするなんちゃってアロケート実装とかですかね? こんなこと言うくらいだから知ったかぶりして余計な心配してるだけだろ
657 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:05:17 ] GUIって「ぐい」ってよみますよね。 無知な後輩から馬鹿にされたんですが。師ねよ。
658 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:06:53 ] >>656 Windowsはともかく、家庭用ゲームの開発だと大抵はそういう手法とってるよ Windowsのメモリ管理なんてまともにやってるゲーム会社なんてないんじゃね?
659 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:06:57 ] 自動で付けられるコードの「 { 」を次の行にする設定ってあるんでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:10:17 ] >>659 C言語で { を勝手に改行されたら逆に困りますよ
661 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:14:03 ] C++クラスの追加とかの自動で挿入されるコードについて、ってこと?
662 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:17:34 ] 具体的に言うと private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { を private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { て感じです そもそも後者の方は一般的ではないんでしょうか? もしそうなら今の設定に慣れるように努力します
663 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:20:33 ] 俺は後者だよ。その方が見やすい。別に手動で改行すればいいじゃん。
664 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:28:00 ] 自動でできる設定はないですか・・・。 分かりました手動で頑張ってみます どうもありがとうございました
665 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:29:37 ] ツール→オプション→テキストエディタ→C#→書式設定→改行→新しい行にメソッドの始めかっこを配置する にチェック ではないか C++/CLIの設定ってあるのかね?
666 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:20:17 ] 自分で探せ
667 名前:デフォルトの名無しさん [2008/10/02(木) 23:33:03 ] あるレジストリキーの直下にある複数のレジストリキーの リストを取得する関数はありますか? 具体的には↓のtest直下にあるtest1、test2、test3の名称を取得したいです。 test\test1 \test2 \test3
668 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:41:52 ] apiにはそういう機能がないから第三者が作った関数を探してるということ?
669 名前:デフォルトの名無しさん [2008/10/02(木) 23:50:43 ] test以下に何があるかわかんない場合だよね RegOpenKeyEx と RegQueryInfoKey と RegEnumValue で列挙できたと思う 詳しい使い方忘れた、ググれ
670 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:51:36 ] >>668 そういうAPIを探していたのですが見つからないので 自作しかないでしょうか?
671 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:55:52 ] >>669 ありがとうございます。それらのAPIを調べてみます。
672 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:31:05 ] RegEnumKeyExという関数を見つけました。 これで取得できそうです。
673 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:22:01 ] #define ANYARGS ... と言う宣言は、可変長引数を表しているのですか? '...'でググッたら死ねましたorz
674 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:48:13 ] レジストリ触るのが怖くて未だにINIファイルな俺
675 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 07:49:35 ] そう予測したのなら、可変長引数でググってみればいいじゃない
676 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:18:54 ] >>673 名前と ... から考えるとそうだろう
677 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:01:50 ] 今Vista(x64)マシンでVC++.net2008を使いコンパイルしたのを ノーパソのXP(x86)にもってきてみると動きませんでした 動かない理由は 1.x64でコンパイルしたから 2.MS土台のバージョンが古いから 3.そもそもXPでは動かない どれでしょうか?
678 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:08:52 ] クイズかよ
679 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:12:15 ] ワロタw
680 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:12:24 ] あと2008は2005と違って日数制限があって完全フリーじゃないんですよね?
681 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:16:15 ] 2008 expressはフリー゜
682 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:20:20 ] AnyCPUなら動くよ… fw入ってないんだろう
683 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:20:24 ] そうですか 677 ノーパソに2008入れてないのがまずいのかな〜
684 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:21:48 ] >>682 ノートはシングルコアでした
685 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:24:34 ] ああ、ここVC++か 再配布可能なファイルredistなんたらが入ってるから それ入れてみ
686 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:28:45 ] やってみます 使う側も最新にしとかないとだめなんですねえ
687 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:36:14 ] あと、ターゲットをx64にしてたら 動かすほうのOSも64bitじゃないと 動かないよ、当然だけど念のため
688 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:38:04 ] 了解
689 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:47:38 ] あーあとコード生成の設定で/MTにすると追加無くても動くかもな。
690 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:54:58 ] /MTですか 探して見ます
691 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:04:42 ] 結局、Debug版という落ちだったりして。
692 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:07:41 ] >>674 俺は商用アプリでもなきゃレジストリ使わないな インストーラーアンインストーラー不要で済むし
693 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:08:23 ] いくらなんでもメッセージ見て気が付くだろ
694 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:11:03 ] .netから *View.cpp はないんですよね 全部 *.cpp に書くんですか
695 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:20:11 ] C++/CLIのことを言ってるならありゃ全部 *.hに書くんだぜ。 MVCとかMVPにしたいなら自分で勝手にrefクラスを分ける。
696 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:25:37 ] C++勉強しようとインストールしたまでは良いのですが、コンパイルが出来ません メニューにビルドの項目が無いのですが、どうやって追加するのですか?
697 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:30:07 ] 新規プロジェクトを作成して、書いたコードをプロジェクトに追加してからビルドする。
698 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:31:19 ] >>696 メニューの、新規作成 -> プロジェクト でプロジェクトを作成しないと、ビルドはでないよ。
699 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:36:09 ] >>697-698 親切にありがとうございます 無事にコンパイルが出来ました
700 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 21:47:21 ] pc11.2ch.net/test/read.cgi/tech/1222813731/31,32 で宿題を教えてもらったものですが、 Visual C++で pc11.2ch.net/test/read.cgi/tech/1222813731/32 のソースコードで開くファイルを指定するにはどうすればよいでしょうか? 向こうのスレでは pc11.2ch.net/test/read.cgi/tech/1222813731/71 という方法を教えられたのでコマンド引数にファイル名をフルパスで書いたのですが、うまくいきません
701 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:19:53 ] あなたはプログラムをやらない方がいいと思うよ とっととコンビにのバイトの面接でも受けにいけばいかがでしょうか。
702 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:24:13 ] コンビ弐
703 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:27:46 ] 学校で聞け
704 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:32:32 ] 過去ログ読まないでいきなり質問するやつ
705 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 22:43:46 ] >>704 このスレのログは「ファイル」で検索して読みました。 読んでもわかりませんでした。
706 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:46:39 ] この程度のことを自力でできないような奴にプログラマになられても迷惑だよ
707 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:53:44 ] >>705 何がどううまくいかないのか説明して欲しい。 fopen()でNULLが返ってくるのか、 それとも他に何かエラーが出ているのか。
708 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:05:14 ] >>707 ソースコードは #include<stdio.h> void moji_line_count(const char *filename){ FILE *fp; int prev='\n', moji, moji_count=0, line_count=0; if((fp=fopen(filename, "rb"))==NULL) return; for(;(moji=fgetc(fp))!=EOF;prev=moji,moji_count++) if(moji=='\n') line_count++; fclose(fp); if(prev!='\n') line_count++; printf("File : %s\nCharacter count : %d\nLine count : %d\n\n", filename, moji_count, line_count); } int main(int argc, char *argv[]){ int i; for(i=1;i<argc;i++) moji_line_count(argv[i]); return 0; } なのですが、エラーが帰ってくるのではなく純粋にこのソースコードで開くファイルを指定する方法ががわからないのです
709 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:09:33 ] コマンドラインに打ち込んだ文字列も書けよ
710 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:10:36 ] >>708 ファイルを指定する方法は、 プロジェクトのプロパティ>構成プロパティ>デバッグ>コマンド引数で ファイル名を指定する、と既にアドバイスをもらっているはずだけど。
711 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:16:07 ] >>710 適当なテキストファイルのフルパスを打ち込んで見ましたが、うまくいきませんでした アドレスは 打ち込むのってこれであってますよね? C:\\Documents and Settings\\ユーザー名\\デスクトップ\\テキストファイル.txt
712 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:17:26 ] gccつかえ
713 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:19:19 ] gcc www.tdragon.net/recentgcc/
714 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:20:39 ] コマンドライン使えないやつ
715 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:22:00 ] >>711 何度も言うけど、うまくいかないという書き方は良くない。 何をやって何がうまくいかなかったのか丁寧に書くべき。 で、そのフォルダに「テキストファイル.txt」というファイルは置いてある?
716 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:23:24 ] 結局何がどううまくいかないのかがわからないんだが。 意図していた結果と、実際に得られた結果がどうなってるの?
717 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:28:54 ] >>715 すいませんでした。 Ctrl+F5でビルドしても「続行するには何かキーを押してください」とでてキーを押すと終了します。 ファイルは確かにデスクトップにおいてあります。 >>716 >>708 のソースで求めているものは、 ファイルを1つまたは複数指定し、 各ファイルに含まれる行数と文字数を数えて画面に出力 なのですが、 ファイルを指定して各ファイルに含まれる行数と文字数を数えて画面に出すことができず、 終了してしまいます
718 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:30:42 ] もう711で答え出てるじゃん
719 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:38:22 ] >>717 コマンド引数を指定して、ファイルは存在するとしたら プログラム自体がおかしい、となる。 そこでブレークポイントを置いてF5でデバッグ実行。
720 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:41:47 ] あっちの71です。 ひょっとしてDocuments and Settingsの罠にかかってる? argvの中身確認してみて。
721 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:47:22 ] >>720 argvをググりましたがさっぱりわかりません
722 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:48:53 ] だめだこりゃ
723 名前: ◆3CnrSiNVYE mailto:sage [2008/10/04(土) 23:50:49 ] ダメですか… んじゃー退散します つきあってくれたかたありがとうございました
724 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:51:37 ] >>721 何がわからないのか説明(ry あとデバッグ実行(ry
725 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:58:07 ] argvの中身を確認しろと言われてググるとは… プログラムは誰かに作ってもらったんだろうな。
726 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:18:23 ] 最初から宿題スレで作ってもらったと書いてあるやん
727 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:02:34 ] \\ バカじゃねーのwww
728 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:16:41 ] 質問者も回答者も馬鹿 ホントゴミ溜め以下だなここは
729 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:18:23 ] 宿題やってもらう前に授業をちゃんと受けろと
730 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 01:39:36 ] こういうのがいるから、ソフトのバグはいつまで経っても無くならないんだろうなあ……
731 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 08:26:38 ] GUI環境でコンソールプログラムをやると GUI環境とコンソール環境の両方の知識が必要になるから 最初はコンソール環境で始めた方がいい。 小さなプログラムコンパイルするのにいちいちプロジェクト作ったり パラメータ渡すのに設定いじるとか よくそんな面倒なことやってるなと感心する。
732 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 08:43:54 ] 学校と同じgccいれろよ www.tdragon.net/recentgcc/
733 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:02:31 ] >>731 MAKEFILE覚えないですむから比較的楽じゃね?
734 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:04:21 ] いきなりデバッガ使えるからGUIに限る。 しかしデバッガ自体知らないのでは話にならんが。
735 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:07:01 ] 確かに、printfデバッグより楽だからいいよな まあでも学生ならgccなりBolandのC++コンパイラーなり覚えた方がいいと思うが
736 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:30:02 ] プロジェクトつくるまでもない規模ならMAKEFILEも必要ない
737 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:34:58 ] プロジェクト作る程度の事がそんなに大変だともおもわんけどね
738 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:41:45 ] プロジェクトがないとCやるのは不便 一ファイルに難行も詰め込んだら間違える
739 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:00:43 ] まあ、ちょいとしたツールや宿題程度の問題なら、 cl main.c で充分だわな