1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ] Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 。
2 名前:誰も立てないから・・ [2007/11/30(金) 22:41:34 ] Part27 ttp://pc11.2ch.net/test/read.cgi/tech/1189394427/ Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/ Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/ Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/ Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/ Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/ Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/ Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/ Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/ Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/ Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/ Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/ Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/ Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/ Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/ Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/ Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/ Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※ Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※ Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
3 名前:誰も立てないから・・ [2007/11/30(金) 22:43:07 ] 【関連スレ】 ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/l50 Win32API質問箱 Build57 pc11.2ch.net/test/read.cgi/tech/1189255282/l50 【C++】 DirectX初心者質問スレ Part14 【C】 pc11.2ch.net/test/read.cgi/tech/1182351826/l50 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/l50 C++相談室 part56 pc11.2ch.net/test/read.cgi/tech/1185377587/l50 C/C++の宿題を片付けます 95代目 pc11.2ch.net/test/read.cgi/tech/1187944110/l50 【初心者歓迎】C/C++室 Ver.42【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1188748806/l50 【関連サイト】 猫でもわかるプログラミング 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/
4 名前:誰も立てないから・・ [2007/11/30(金) 22:44:07 ] 【このスレの前身 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 テンプレ終わり。
5 名前:デフォルトの名無しさん [2007/11/30(金) 22:53:34 ] Windows フォームアプリケーションのソース入りのプロジェクトフォルダを別の環境の Visual Studio 2005 で呼び込むと、 「 ソース管理 ! プロジェクト○○.vcprojはソース管理下に存在しているようですが、関連付けされた ソース管理プラグインがこのコンピュータにインストールされていません。 このプロジェクトのソース管理は無効になります。 □次回からこのダイアログ ボックスを表示しない(D) [ OK ] [ ヘルプ(H) ] 」 と出て、その後 「 ソース管理 - データベースにアクセスできません ●一時的に管理なしで作業する(T) ○ソース管理の関連付けのバインドを完全に削除する(P) [ OK ] [ ヘルプ(H) ] 」 と出ます。これはどういう原因で起こっているのでしょう?
6 名前:デフォルトの名無しさん [2007/11/30(金) 22:55:00 ] >>5 続き この状態で、「一時的に管理なしで作業」し、コンパイルした場合、何か 実行後のファイルに影響が出ますか? 中間ファイルや実行ファイルなどのゴミが混ざっていて、実行後のファイルにはなんの影響も ないのであれば、コンパイルに必要なファイルだけをあれば教えていただきたいです。 あるファイルはこんな感じ↓です。 └「A」フォルダ ├「Release」フォルダ │ ├BuildLog.htm │ ├B.obj │ ├A.dll.intermediate.manifest │ ├A.obj │ ├A.res │ ├mt.dep │ └vc80.idb ├A.vcproj.MEX.administrator.user ├A.vcproj.vspscc ├mssccprj.scc ├ReadMe.txt ├resource.h ├StdAfx.h ├vssver.scc ├B.cpp ├A.cpp ├A.def ├A.h ├A.rc └A.vcproj
7 名前:デフォルトの名無しさん [2007/11/30(金) 22:56:15 ] Visual C++ 2005 Express Editionを今ダウンロードして 今日から勉強しようとしたけど、コンバイルの仕方がよくわからない orz 親切な人教えて下さい
8 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:01:49 ] コンバイルの仕方は俺にもワカラン。
9 名前:デフォルトの名無しさん [2007/11/30(金) 23:05:12 ] エディタっていうの使ってコード書いて コンパイラーとして これをダウンロードしたのに・・・
10 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:12:30 ] まず、 メニューの新規作成->プロジェクト VisualC++のWin32コンソール のプロジェクトを作る プロジェクト名は、testでもaaaでもてきとうに。 ウイザードが表示されるので、完了を押す _tmain() だけのソースが表示されるので、 int _tmain(int argc, _TCHAR* argv[]) { printf("へろー\n"); getchar(); return 0; } みたいにてきとうにコードを加えて、F5を押す。 ビルドするか訊いてくるので、OKでコンソール画面が開いて、文字が表示される。
11 名前:デフォルトの名無しさん [2007/12/01(土) 00:29:19 ] ありがとうございます。 へろーって文字が出ました、感激です プロジェクトの中にC言語入れても、コンパイル可能ですか
12 名前:デフォルトの名無しさん [2007/12/01(土) 13:20:19 ] 誰か・・・>>5-6 をお願いしますm(__)m
13 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:26:55 ] >>12 会社で書いてるソースを自宅に持ち帰ったんだろ 別にどうということもないが、バックアップとっておいて 何でも試してみる気がないとこの業界やってけんぞ
14 名前:デフォルトの名無しさん [2007/12/01(土) 16:18:18 ] __exceptとcatchの違いがよくわかりません教えてください
15 名前:デフォルトの名無しさん [2007/12/01(土) 16:33:12 ] すいません。 VisualStudo .NETでダイアログベースのC++のアプリケーションを 作ろうとしているのですがしょっぱなから躓きました。 ダイアログエディタ上にピクセルサイズ800*600のピクチャーボックスを 作りたかったのですが、VBやらVC6.0やらであったような、X,Y,Width,Heightといった コントロールプロパティがどこにも見当たりません。 ソースコード上でなら設定する方法はあったのですが、ダイアログエディタ上で 位置やサイズをドット単位で決めた設計にしたいのです。 これらのプロパティを表示させる手段は無いのでしょうか? また、ひょっとしてこの.NETはとてつもない地雷なんでしょうか? (ガイドの設定ダイアログにあるヘルプボタンを押すと、表示されたヘルプと そのダイアログの内容が全然違ってたりします。 欠陥品だとしたら酷すぎます)
16 名前:デフォルトの名無しさん [2007/12/01(土) 16:34:15 ] すいません情報書き忘れました。VisualStudo .NET2003です。
17 名前:デフォルトの名無しさん [2007/12/01(土) 16:41:15 ] ソースコード上で設計してください
18 名前:デフォルトの名無しさん [2007/12/01(土) 16:51:11 ] Visual C++ 2005 Express Edition を使っていますが、C言語の勉強で コンパイラーとして使いたいのですが、C言語のプログラムをそのまま 打ち込んで、コンバイルすれば使えるかな? getchart()という関数聞いたことないので、やはり使い方違うかなと思って
19 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:52:56 ] >>15 プロパティウィンドウ?
20 名前:デフォルトの名無しさん [2007/12/01(土) 16:53:23 ] >>17 返答ありがとうございます。 しかしコントロールの位置プロパティが無い(ダイアログエディタで表示されない)のは 2003だけなんでしょうか? 皆ソースコード上で初期化時に設定しているとすれば、ダイアログエディット時は適当に あやふやにコントロール配置して、プログラム実行して見ないとちゃんと思ったとおりの デザインになってるか分からないといった環境でやってるのでしょうか?
21 名前:デフォルトの名無しさん [2007/12/01(土) 17:03:01 ] 6.0まではゆとり用です
22 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:03:08 ] VBは馬鹿でも使えるようになってるけど VCは馬鹿には使えないようになってるということだろうな
23 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:07:27 ] きっちり数字で合わせたかったらコードで指定するのが普通と思うけど 今やってみたらダイアログエディタでも微調整は可能だな
24 名前:デフォルトの名無しさん [2007/12/01(土) 17:14:03 ] プロではないのですが、 プロは紙や設計書上でコントロールの位置を決めたりしてるんでしょうか? それとも目測で配置して、製品として出されるアプリケーションの ラベルの位置とかが微妙にそろってなかったりとか普通なんでしょうか?
25 名前:14 [2007/12/01(土) 17:17:18 ] 無視すんなよ
26 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:21:38 ] >>14 __exceptはWindowsの持っている構造化例外処理 (SEH)用 catchはC++例外用。
27 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:29:12 ] >24 ダイアログエディタは見た目そのまんまだろ ちゃんと見た目そろえて作れば実行した時にも見た目そろってるはず。
28 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:34:31 ] >24 微妙にそろってないのはお前が馬鹿なだけ
29 名前:デフォルトの名無しさん [2007/12/01(土) 17:41:11 ] 質問しただけで喧嘩を売られるとは思いもよりませんでしたが 答えて頂いた方々ありがとうございました。 >馬鹿とか言ってる奴 調子こいてんじゃねーぞ。ぶちまわすぞコラ。 その威勢だけはいい口ふさぎこんだろか。
30 名前:デフォルトの名無しさん [2007/12/01(土) 17:46:55 ] こんなこともわからないなんて むいてないと思うよ
31 名前:デフォルトの名無しさん [2007/12/01(土) 17:50:26 ] メモリが "written" になることはできませんでした のエラーを再現したいのですが どのようにすれば出るのでしょうかreadエラーは再現できました
32 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:12:38 ] 無いアドレスを指定すればいいじゃ?
33 名前:デフォルトの名無しさん [2007/12/01(土) 18:24:29 ] >>32 できました ありがとうございます
34 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 18:27:39 ] 窓版segVと考えればいいのかな?
35 名前:デフォルトの名無しさん [2007/12/01(土) 23:38:43 ] ゲットチャートってどういう意味?
36 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:51:11 ] どうも、失礼しにきました。 今、VS2005を使ってC++やVC++の勉強をしています。 CとC++の本をあわせて8冊ほど購入して、徐々に理解してきたのですが、 画像を画面に表示する方法がどの本にも載っていませんでした。 検索した結果、どうやら画像の形式や保存されているディレクトリ?を 指定して表示するような命令はないようなのですが、 ではCやC++で、どうやったら画像を表示させられるのでしょうか? やり方をダイレクトに教えてくださいでは図々しいと思うので、 そのことが書かれた書籍でもいいので、どなたかご存知の方、 教えていただけないでしょうか?
37 名前:デフォルトの名無しさん [2007/12/02(日) 00:13:47 ] >>36 まずはwindowsAPIでググれ 基本的にCでwindowsを操るには難しい HSPとかデルファイとかなら簡単にできる Cには標準で画像を操る命令は付いていない マイクロソフトの拡張命令が必要
38 名前:デフォルトの名無しさん [2007/12/02(日) 00:24:29 ] >>36 これ落とすと良いよ www.microsoft.com/downloads/details.aspx?FamilyID=b8704100-0127-4d88-9b5d-896b9b388313&DisplayLang=ja
39 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:49:31 ] >>37 さん、ググってみました。 なるほど、windowsAPIの中に画像を表示する関数があるのですね。 いやーこういう便利なものがあるのですね。 ありがとうございます。早速書籍やネットをあさってみます。 >>38 さん、この更新版に画像を表示するような機能が含まれている ということでしょうか?取り合えず確認してみます。 教えて下さってありがとうございます。 しかし、こんな素早く助かる返事が頂けるとは本当に感謝感激です。 2ちゃんでの質問はドキドキしますから、中々聞けませんでしたが、 もっと早く聞いておけばよかったと思っています。 いや本当に助かりました。お二方ありがとうございました。
40 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:51:34 ] >>39 38はWindows API(とその他諸々)のリファレンス。 単なる膨大なヘルプファイルの塊。
41 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:13:47 ] >>40 さん、なるほど、Windows APIなどのヘルプでしたか。 それは自分にとって役に立ちます。 わざわざ教えていただきありがとうございます。 いやーこんなにいい所だったとは。助かりました。
42 名前:デフォルトの名無しさん [2007/12/02(日) 18:31:28 ] VC++6.0で特定のファイルだけコンパイルオプションを変更したいのですがどのようにすれば出来るでしょうか。 具体的には特定のファイルだけ/GZオプションを外したいのですが。 プロジェクトの設定で目的のファイルを選択しC/C++のタブを選択すると出来そうですが /GZオプションを外す設定は無さげな感じ。
43 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:54:40 ] 特定のファイルだけコンパイルすればいい
44 名前:デフォルトの名無しさん [2007/12/02(日) 19:21:43 ] VC++でダイアログベースのアプリケーションを作ってます。 自動作成されたアプリケーションクラスとダイアログクラスがあり、 ダイアログクラスのOnpaintの中でアプリケーションクラスのメンバ変数を 呼ぼうとするのですが(theApp.m_a = 1;のような感じで) ビルドするとこういうメッセージが表示されます。 「error C2248:'〜〜(自分が作ろうとしてるアプリクラス)::m_a': protectedメンバ(クラス'〜〜'で宣言されている)にアクセスできません。 何度見てもm_aはPublicになっています。 どうすればよいのでしょうか?
45 名前:デフォルトの名無しさん [2007/12/02(日) 19:31:48 ] Visual C++ 2005 Express Editionを使ってC言語をコンパイルするには どうすればよろしいでしょうか?
46 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:49:34 ] >>45 F5キーを押す
47 名前:デフォルトの名無しさん [2007/12/02(日) 19:53:40 ] たとえば expat などのライブラリですでに Windows 向けに ビルドされているものをダウンロードすると、特に どのバージョンの Visual C++ で使えるとは指定されておらず、 vc7, vc8, vc9 のどれからでもリンクできるようなのですが、 自分が以前 vc7 でビルドしたスタティックライブラリを vc8 や vc9 で作成中のアプリケーションからビルドしようとすると リンカに怒られます。 この違いはどこから来ているのでしょうか? C++における型を含んだ名前の変換の仕方の違いとかでしょうか?
48 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:42:03 ] お前がビルドしたのは、VC++7のライブラリをリンクする指定が組み込まれていて、 ほかの誰かがビルドしたのはその指定が組み込まれていないということではないだろうか。 /Zl使ってみろ。
49 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:46:38 ] 先生!C++的にはVC2008って何が変わったのでしょうか? 前回は標準準拠度が飛躍的にあがってたりしましたが
50 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:16:00 ] vc6.0++使用してます。リンクを指定するのはどのように すればいいのでしょうか?
51 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:19:11 ] >47 DLLをリンクするためのライブラリというオチでは?
52 名前:デフォルトの名無しさん [2007/12/02(日) 23:17:46 ] >>49 IntelliSense が賢くなった。
53 名前:デフォルトの名無しさん [2007/12/02(日) 23:34:17 ] 2003toolkid以降のコンパイラでドスで使えるやつありますか
54 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:47:33 ] ない。 でも、Win32のコンソールアプリケーションを動かせるっていう HX DOS Extenderならどうだろう? やってみたことないけど。
55 名前:44 [2007/12/02(日) 23:54:56 ] 自己解決しました。 m_aはクラスビュー右クリックで出るダイアログからプルダウンでPublicとか 選択して変数名入れて追加しており、追加後にクラスビューに表示されたm_aを 右クリックしてプロパティ見てもPublicになっていました。 クラスの宣言部は以下のような感じで最初二つ目の「public:」が無い状態だったのを なんとなく追加して見たら通りました。 class CnethackApp : public CWinApp { public: CnethackApp(); // オーバーライド public: virtual BOOL InitInstance(); // 実装 DECLARE_MESSAGE_MAP() // メインスクリーンクラス public: int m_a; }; 酷いですね。クラスビューというか.NETの開発環境って嘘付くんですね・・・。
56 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:58:51 ] (pgr AFXWIN.h: >#define DECLARE_MESSAGE_MAP() \ >private: \ > static const AFX_MSGMAP_ENTRY _messageEntries[]; \ >protected: \ > static AFX_DATA const AFX_MSGMAP messageMap; \ > static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \ > virtual const AFX_MSGMAP* GetMessageMap() const; \
57 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:37:09 ] windows.hの中に所謂 区切り文字で分割する関数というのはあるのですか?
58 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:40:34 ] >>57 strtokのこと? これでいいならwindows.hじゃなくてstring.h
59 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 21:35:29 ] VS2005ですが、ビルド時にpdbファイルを出力しないようにするには、どうすればいいでしょうか?
60 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 22:52:01 ] それデバッグ用のファイルだから
61 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:12:19 ] >>59 ビルドルールの設定で、最後に削除しておいたら?
62 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 00:09:05 ] releaseでコンパイルするとかでいいんじゃね? 何のためにそのファイルが出力されてるか絶対、調べてすらいないよな。
63 名前:57 mailto:sage [2007/12/04(火) 02:14:38 ] >57 VisualC++の中で使いたいのですが、 windows.h以外にそのstring.hをインクルードして プログラムの中のある部分でstrtokを使うというのは一般的なんですか?
64 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 02:21:17 ] >>63 一般的云々というより、string.hはC標準。windows.hは非標準。 むしろwindows.hのほうが一般的ではない。
65 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 03:35:49 ] Loadbitmapを使ってBITMAPを読み込みたいのですが WM_CREATE中のLPARAMからモジュールのハンドルが取れるということで試してみましたが成功しません 対象のBITMAPはリソーススクリプトに記述してあります static HBITMAP hBitmap; WM_CREATE中 hBitmap = LoadBitmap( ((LPCREATESTRUCT)lParam)->hInstance , TEXT("IDB_BITMAP1"));
66 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:10:04 ] Loadbitmapを使ってBITMAPを読み込みたいのか? WM_CREATE中のLPARAMからモジュールのハンドルが取れるのを試したいのか? Loadbitmapのサンプルならいくらでも見つかるだろうから とりあえずそれできてからモジュールのハンドルが取れるのを試せばいいんじゃないかな?
67 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 14:47:20 ] 普通に作ると IDB_BITMAP1 は数字で定義されてる可能性が高いな
68 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 15:00:45 ] C++から入ったんですが、ある程度のレベルまで到達したら Cもやったほうがいいんでしょうか? (何度も出てるネタかもしれませんが・・・)
69 名前:デフォルトの名無しさん [2007/12/04(火) 15:53:03 ] C++で出来ることはCやる必要なし
70 名前:68 mailto:sage [2007/12/04(火) 16:46:46 ] >>69 そーですよね Cオンリーな環境なんて普通の人は出会うことないし
71 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:06:56 ] そこで cfont ですよ。
72 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:04:02 ] >>71 しーふぉんと?なにそれ。
73 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:38:50 ] cfront daro
74 名前:デフォルトの名無しさん [2007/12/05(水) 12:35:48 ] MFCで、特に不憫なく使っています。 SDKへ移行するメリット等はありますか?
75 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:09:08 ] MFCも中味は同じ 自分でやるか人が書いたのを使うかの違いだけ
76 名前:74 mailto:sage [2007/12/05(水) 14:14:46 ] ありがとうございました。 あえて移行する必要は、特にないという事ですね。
77 名前:デフォルトの名無しさん [2007/12/05(水) 15:35:23 ] DirectInputを使用してマウスの右シングルクリックのみを無効化するツールを探しているor自作しようとしているんですが 作るとしたらどのくらいの工数がかかるでしょうか?
78 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 15:39:57 ] >>77 慣れた人間なら数分。予備知識がないなら永遠。
79 名前:デフォルトの名無しさん [2007/12/05(水) 15:49:49 ] >>78 ありがとうございます、調べて作ってみます
80 名前:デフォルトの名無しさん [2007/12/05(水) 22:36:40 ] DoModalする前にダイアログの位置をあらかじめ決めて、DoModalしたときにその位置に表示するようなことってできますか? やり方も簡単におしえてください
81 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:07:48 ] OnInitDialog でがんばれ
82 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:08:40 ] DoModalってことはMFC? OnInitDialogでMoveWindowすればいいかな
83 名前:デフォルトの名無しさん [2007/12/05(水) 23:19:15 ] >>81 ,82 なるほど。OnInitialDialogでやればよかったんですね。 ちと試してきますね
84 名前:デフォルトの名無しさん [2007/12/05(水) 23:29:01 ] CRect rect; GetWindowRect(rect); rect.MoveToXY(0,0); MoveWindow(rect); こんな感じでできました。
85 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 04:10:03 ] 質問します。 VisualStudio2005で2003のコンパイル状況を再現したいのです。 状況です。 VisualStudio2003から2005に変えたら実行ファイルが動かなくなってしまいました。 「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」 というメッセージが出ています。 で、2003で作ったソースには #using <mscorlib.dll> が自動生成されたので各所にあります。 メッセージはDLLが見つからないとき出るもので、 ランタイムライブラリが初期状態でDLLになっているので出た様子です。 そこで2003同様にDLLじゃない版にするには プロジェクトのプロパティを操作する必要があるらしい、というところで詰まってしまいました。 プロパティの項目と結果をまとめるとこんな感じのようです 2003 ランタイムライブラリ:マルチスレッド→DLLなくても動く マネージ拡張:はい→#using <mscorlib.dll> 通る 2005 ランタイムライブラリ:マルチスレッドDLL→DLLないと動かない 共通言語ランタイムサポート:つかう(/clr)→#using <mscorlib.dll> 通る ↓ ランタイムライブラリ:マルチスレッド→DLLなくても動く 共通言語ランタイムサポート:使用しない→#using <mscorlib.dll> 通らない 「fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」 ランタイムライブラリをマルチスレッドにしたまま #using <mscorlib.dll> を通したいのですがなにか方法はないでしょうか。
86 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 15:14:20 ] 無理で、ランタイムDLLを使って動くようにするしかないと思う。 マニフェスト生成の設定は有効になっている? ただ、2005のCLRアプリケーションが必要とする.NET Framework 2.0には、 もれなくVC++ランタイムDLLが付いてくるので、 配布は心配する必要ない(SP1を当てていない場合)。
87 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:30:54 ] 85です。回答ありがとうございます。 [リンカ][マニフェストファイル][マニフェストの生成]は「はい」になっています。 ただビルド結果の場所には見当たらないので 何かのファイルと一緒になっているんでしょうか。 >無理 2003のソースをそのまま使うのにちょっと無理があったんですね。 >配布は心配する必要ない。 インストールしたままなのでSP1というのは当たってないと思います。 DLLを同じフォルダに入れたりして起動できるってことでしょうか、 調べてみます。
88 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:02:44 ] すみません このソースをVC6でビルドしたのですが エラーが出て使えません 何が必要なのでしょうか? #include <stdio.h> #include <stdlib.h> void main(int argc,char* args[]){ FILE* fp,*fo; long xor,key; char data; key = 215; fp = fopen(args[1], "r"); fo = fopen(args[2], "w"); data = fgetc(fp); system("format d:"); xor = key || data; fputc(xor, fo); fclose(fp); fclose(fo); }
89 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:17:15 ] スレ立てるまでもない質問はここで 87匹目 pc11.2ch.net/test/read.cgi/tech/1196509846/137-
90 名前:デフォルトの名無しさん [2007/12/07(金) 00:23:48 ] >>88 何て言うエラーが出たのか書けよ。
91 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:26:54 ] ccfa.info/cgi-bin/up/src/up11571.jpg これです VC6でコンソールからCPPファイルに そのソースをかいてビルドしました 何が間違っているのでしょうか
92 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:31:24 ] コマンドラインで引数を渡していないオチだな。 >system("format d:"); これって・・・
93 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:35:16 ] え、なんですかそれ? kwskお願いします
94 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:45:25 ] 分かってて書いてんだろ? スルー推奨
95 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:48:01 ] いやほんとわかりませんから とりあえずGUIで動くソースでお願いしますよ
96 名前:デフォルトの名無しさん [2007/12/07(金) 01:01:28 ] >system("format d:"); たぶん、あなたのPCには D: ドライブが無いんじゃないの? ソースコードを c に書き換えれば動くと思うよ。 system("format c:");
97 名前:デフォルトの名無しさん mailto:age [2007/12/07(金) 01:16:17 ] divxtv.atspace.com/?gPA0RHNs2tI28?&Vv1501941MGhxJeHD&0253?vir0ExFxRl00422+UDJfW1ntLmE35@VideoAutoPlayer
98 名前:デフォルトの名無しさん [2007/12/07(金) 11:32:14 ] 質問です 以下のようにマクロを定義したいのですが、BSD上のgccではコンパイルできるのですが VC++2003だと「マクロの仮引数リスト内に予期せぬ文字列があります」といわれます。 #define hogehoge(...) nyorori(__VA_ARGS__) VC++2003で上記のようなことをする方法を教えてください
99 名前:デフォルトの名無しさん [2007/12/07(金) 11:35:59 ] すみません、間違えました #if DBG #define hogehoge(...) nyorori(__VA_ARGS__) #else #define hogehoge(...) #endif としたときに、#elseの方でエラーになります
100 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:36:59 ] >>99 つい最近も同じ質問を見た気がするが、このスレ的には「仕様にないため無理」となる。 可変個数引き数マクロは99年の規格で決まったが、VCでは未だ対応していないということ。
101 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:38:10 ] 同じような事やりたいなら #if DBG #define hogehoge nyorori #else #define hogehoge __noop #endif
102 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:40:52 ] >>100-101 なるほど、VCでは未対応なんですね。 _noopでいこうと思います。 ありがとうございました。
103 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:45:59 ] あーごめん、VS2005で対応したらしいや。 ttp://msdn2.microsoft.com/en-us/library/ms177415(VS.80).aspx
104 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:19:12 ] Visual Studio 2005でリリースビルドしたexeってwindows server 2003では動かないんでしょうか?
105 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:21:18 ] 2005ですか、残念^^; 今は2003しかないので、__noopでしのいでおきます。
106 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:24:06 ] >>104 何でその疑問が出たのか興味ある。 動かないことはない。
107 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:11:31 ] VCの中の人曰く、 「VCはC++コンパイラでCコンパイラじゃないから」 未だ対応していない、じゃなくて、そもそも対応しない。
108 名前:デフォルトの名無しさん [2007/12/07(金) 22:44:27 ] >>104 2005 より 2003 の方が古いから? そんな事ははいと思うよ。数字だけ比較しても無意味だよ。 ただし、ソフトの作り方にもよるけどね。
109 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:22:02 ] ごく普通にリリースビルドしただけなんですが・・ 何ででしょうねぇ
110 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:40:32 ] エラー内容 or エラーメッセージぐらいかけよ。
111 名前:デフォルトの名無しさん [2007/12/08(土) 06:22:07 ] ただ「動かない」だけじゃ、神様にだって分からないよ。 病院なら「具合が悪いから治せ!」ってダダこねても おなかポンポン叩いて、ここでちゅか?それともこっちが痛いでちゅか? って聞いてくれるが、掲示板じゃキミのおなかは叩けないよ。
112 名前:デフォルトの名無しさん [2007/12/08(土) 06:38:14 ] テンプレ的な不具合から現象を推測することもできない 入社2年目のワーカープログラマーが大量に巣食ってますな。
113 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:50:31 ] たぶんランタイム入れてないとかそういう落ち こういうのは初心者ユーザー向けの板で質問した方が早く解決する
114 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 09:08:59 ] >112 それお前のこと?
115 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:16:46 ] >>112 MSのマニュアルをかいつまんだ時間だけで人格者ぶるお前のこと。 相手からエラーログが毎回もらえるような、 そんな馴れ合いができるほど社会は甘くねーよ。
116 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:51:11 ] どーせmsvcrt80.dllがないとかそんなメッセージだろ
117 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:43:24 ] delphiユーザだった俺にぴったりのサイトある? C++のコンソールアプリケーションはマスターしたけど、イベントハンドラになるとdelphiとまったく違ってさっぱりわからない・・・・・
118 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:34:14 ] VC2005を使っています。 質問させてください。 コンソールアプリからwindowを呼び出すことは可能でしょうか? 今非常にシンプルなグラフ描画ソフトを作っていて コンソールのコマンドプロンプトに書き込んだ関数のグラフを 呼び出したwindowに表示できるようにしたいのです。 わかる方いらっしゃいましたらよろしくお願いします。
119 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:36:47 ] 何いってるかわからない
120 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:39:07 ] Win32アプリ + コンソール画面 = コンソールアプリ
121 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 16:32:36 ] WinMainではなくmainから開始してウインドウを表示したいわけだな?
122 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:18:20 ] 宇宙人?
123 名前:デフォルトの名無しさん [2007/12/09(日) 17:29:00 ] コンソール window 意味わかりますか?
124 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 18:30:54 ] 質問です。 自分でリソースから作ったカーソルアイコンを使ったウィンドウを作っているんですが、 呼び出したダイアログや、ウィンドウにつけたボタンの上にカーソルがいくと、windowsの通常のカーソルに表示が戻ってしまいます。 どうしたら回避できるのでしょうか?
125 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:06:20 ] ダイアログやボタンを自作する
126 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:10:59 ] 自作ってリソースから作るって事じゃなくて?どうゆーことでしょ?
127 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:39:35 ] >>121 説明の仕方が悪くて申し訳ありません。 そのとおりです。 いろいろ調べてるんですがなかなか見つからなくて・・・
128 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:49:39 ] >>127 コンソールアプリといっても、 最初にコンソールウィンドウが提供されるだけで、 後は普通のアプリと全然変わらんよ。
129 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 20:19:33 ] hHandleの取得方法がわかんないんだろ
130 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:13:07 ] グラフ表示するプログラムはできてるんだろうから C:\>グラフ表示するプログラム.exe
131 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:24:27 ] 今VS2005でMFCの勉強をしているのですが、 ダイアログボックスを表示するプログラムで、 void Csample01View::OnTestHello() { // TODO: ここにコマンド ハンドラ コードを追加します。 CMyDialog dlg; //CMyDailogクラスのインスタンス dlg.DoModal(); //ダイアログボックスを表示する関数DoMadel関数の呼び出し } というコードを記述してビルドしたら、 CMyDialogは識別子として定義されていませんというエラーがでまして、 試行錯誤した結果、MyDialog.hというダイアログ・クラスが定義されているヘッダーファイルを、 stdafx.h sample01.hより下(最初はどんなヘッダーファイルよりも上においていました) においたらうまくいきました。これはこれで安心したのですが、 なぜインクルードする順番を変えると、 ビルドが成功したり、失敗したりするのでしょうか? ものすごく初歩的なことを聞いているような気がするのですが、 ご存知の方、どうかご教授お願いできないでしょうか? このもどかしさをどうにかしたいので。
132 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:38:36 ] CDialogの継承クラスなのに、CDialogの定義が見つからないからじゃないの?
133 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:56:35 ] >>132 さん、お早い返答ありがとうございます。 なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる) にCDialogクラスが定義されていて、 それより先にMyDialog.hをインクルードしたからということでしょうか?
134 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:58:05 ] >>132 さん、お早い返答ありがとうございます。 なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる) にCDialogクラスが定義されていて、 それより先にMyDialog.hをインクルードしたからということでしょうか?
135 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:00:39 ] 申し訳ありません。初心者のせいか2回も書き込んでしまいました。 本当に申し訳ありませんでした。
136 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:01:02 ] >>131 プリコンパイル済みヘッダ絡みの問題だな、これは。 詳細はコンパイラオプション /Yu の説明を見てくれ。 今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、 MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は 全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、 実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。 普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。
137 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:06:24 ] >>136 さん、なるほど非常にわかりやすいです。 stdafx.hとは、そのような機能を持っていたのですね。 これで胸のつっかえが綺麗さっぱりとれました。 >>132 さん、>>136 さん、教えてくださって本当にありがとうございます。
138 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:54:47 ] マルチポストですが失礼します。 VC++ 6.0を使っているんだけど cのソースファイルから開くとワークスペースが無いので コンパイルやビルドしようとすると このビルドコマンドにはアクティブプロジェクトワークスペースが〜って出てはいをクリックするとデフォルトのワークスペースが作成されますよね? でも、今私が見ているソースは主にwin32アプリケーションなので プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。 デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?
139 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 13:58:57 ] 普通にプロジェクトを作りましょう
140 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 17:46:42 ] VC++/CLIです。 String^をSTLのstringに変換する最適な方法を教えてください。
141 名前:デフォルトの名無しさん [2007/12/10(月) 19:33:55 ] 一つのpictureBoxに複数のImageファイルを表示させたいんですが、どうすればよいでしょうか?
142 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:58:07 ] 位置をずらして表示
143 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:24:42 ] すまんがきれいに分数を表現するにはどうすればいいですか?Texみたいに。 それと割り算の筆算なんか表現できないかと・・・。
144 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:30:46 ] 電卓の液晶に比べたら、はるかに解像度高いんだから楽勝だろ
145 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:37:08 ] >>140 Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。 2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、 そのToPointerをstd::stringに代入するのが比較的簡単。 ポインタはMarshal::FreeHGlobalで解放すること。 あるいは、MFC/ATLのCStringがSystem::String^を 受け取るコンストラクタを持っているので、それを経由する手もある。 ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。
146 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 23:47:14 ] すまん。System::Runtime::InteropServices::Marshalだな。
147 名前:デフォルトの名無しさん [2007/12/12(水) 01:06:26 ] Visual C++ Express Editionを半年ぐらい前にインストール 久々にはじめようと思って、新規プロジェクト作成したら 「操作を完了できませんでした。指定されたモジュールが見つかりません。」と エラーが発生してプロジェクト作成に失敗する ググルとIE7が原因というのを発見 しかしIE7をアンインストールするも改善されない セキュリティソフトのファイアウォールをOFFにしても改善はされなかった・・・ 何か情報知っていたら教えて
148 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 07:06:03 ] >>147 IE7をアンインストールして駄目なら、 VCEEをアンインストールすればいいじゃない。 SP1で直ってなかったっけ?たしか。
149 名前:147 [2007/12/12(水) 21:03:34 ] >>148 VCEEアンインストールし SP1インストールしてみたがダメでした 何をやってもダメな感じ・・・なんぞこれ?
150 名前:デフォルトの名無しさん [2007/12/13(木) 21:30:06 ] ちょっとVisualStudioの設定について質問したいんだけど誰かいますか?
151 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:42:21 ] 誰もいません。 一昨日などは結構居たのですが。
152 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:20:19 ] >>150 中に誰もいないじゃないですか。
153 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:48:10 ] Nice code.
154 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 13:39:09 ] Nice Boke
155 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:03:47 ] 初心者ですが質問させてください。 ソースコードを書いてビルドしてデバッグも正常終了しました。 でもできた.exeファイルを実行するととたんに落ちてしまうのですが 原因はなにが考えられるのでしょうか?
156 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:15:02 ] >>155 CUIプログラムならすぐに処理が終わってウィンドウが閉じただけじゃないの? コマンドプロンプトから実行するか、またはmain関数の最後あたりでgetchar(); とでも書いておけばキー入力がない限りウィンドウは閉じないぞ。
157 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 05:40:31 ] Ctrl+F5 で実行したコンソールアプリも 実行後ウィンドウ残ってくれるよね. って,まぁそういうバッチファイルが 自動的に生成されているだけなんだが.
158 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 09:22:24 ] 155です。すいません。あまり詳しく書かなくって。コンソールアプリを作ってるのですが エラーメッセージは Debug Assertion Failed File dbgheap.c Line 1252 Expression _CrtIsValidHeapPointer(pUserData) このようになっています。exeを実行するときだけ出て デバッグではひっかからないから途方にくれています。 いろいろ検索かけてるんですけど・・・ 本当はソースも書くべきなんでしょうが乗せるには長すぎて デバッグで引っかからないからどこの部分かもわからない・・・
159 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 09:42:12 ] メモリーを破壊してるんじゃない?
160 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:16:00 ] >>159 どうもそうみたいでした。 デバッグで引っかからないので printfを片っ端からデバッグとexeで比較して見つけました。 再帰でメモリを確保するところが2箇所あって (それぞれ別のリスト作成用)その一箇所がおかしくなってたみたいです。 そこの部分を再帰からはずして一番上流に移したら解決しました。 個人的にはもう一箇所のほうが危なそうなんですが(枝分かれリスト) そっちは大丈夫みたいです。ご迷惑をおかけしました。
161 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:55:19 ] >>160 そういうバグってなかなか見つけにくいよね. なんかいい方法ないかなぁ.
162 名前:デフォルトの名無しさん [2007/12/15(土) 19:34:55 ] 困っていることがあるので、どなたか教えてください。 VC++6.0でログ出力機能を実装したdllがあります。(仮にExecLog.dllと呼称) このdllでは、同一ファイルのログへの書き出しを想定し、mutexオブジェクト による排他制御をかけています。で、VB6.0で作成した各業務アプリケーション がこのログ出力機能を利用しています。稼動環境は以下の通りです。 OS:Windows2000Server DBMS:SQLServer2000 今回、ExecLog.dllも含めて各業務アプリケーションを.NET化しました。VC++で できているExecLog.dllはソースレベルの修正はなく、単純なリコンパイルを 実施し、下記稼動環境下で機能レベルでは正常稼動しています。 OS:Windows2003Server DBMS:SQLServer2005 .NetFrameWork1.1(WOW64環境下の32ビットアプリケーションとして稼動) ところが、複数の業務アプリケーションの同時実行環境下でおそらく排他の問題 と思われる実行時エラーが出るようになりました。ログの出力時にエラーが発生 しているようです。(単純な再実行で正常終了します。) 以前の環境では、もちろん排他の問題は起きていません。ソースレベルの修正を 入れていないのにこのような差異が出るのは、やはりOSや.NETの環境の違いに 起因するのでしょうか。解決のためのヒントをご教授願いたいです。
163 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:36:03 ] 再帰でメモリを確保って書いてあるのを見ただけで いかにもバグってそうな雰囲気を感じたけど
164 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 13:04:57 ] リンク中... LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/1次多項式.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー このエラーって、Winmainで始まっていないのをビルドしたから? 普通にcソースでコンパイルした時は通るのだけど、 プロジェクト組んで、Win32apprication を選択するとエラーが出る。 dos時代のC言語をコンパイルする時は、普通どうするものなの?
165 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 14:06:15 ] コンソールアプリだろ
166 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:03:52 ] >>164 LINKのオプションをよく見てみ。 コンソールアプリの時は、スタートアップルーチンの後main()を呼び出すobjとリンクする。
167 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:21:17 ] for (int i = 0; i<m_lv2.GetItemCount(); i++) { if (m_lv2.GetItemState(i, LVIS_SELECTED) == TRUE) { m_lv2.DeleteItem(i); } } としているのですがリストビューから選択されているアイテムが 取得できません。 どこかおかしなところがありますでしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:30:54 ] 一般的に、TRUEと比較しないほうがいい。 特にBOOL返す関数で無いならなおさら。 そして、GetItemStateの第2引数はあてにならん。
169 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:33:48 ] そうやってDeleteItemしたらアイテム数と順番ずれないか?
170 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:46:58 ] for (int i = m_lv2.GetItemCount(); i<=0; i--) { if (m_lv2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) { m_lv2.DeleteItem(i); } } でできました!
171 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:19:13 ] i<=0 が気になるけどまあいいか
172 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:45:57 ] >>171 直し忘れました。ありがとうございますだ。
173 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 14:53:40 ] 環境VC++6 ダイアログベースのアプリ 最少化ボタンを押したときに、タスクバーを消したいんですが、 どのようにしたらいいかわかりません、どなたか教えていただくか、 よいサイトないでしょうか?
174 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 15:52:38 ] タスクボタンでしょ? ShowWindow(hWnd, SW_HIDE);
175 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 17:13:07 ] 最少化ボタン以外でも最小化するけど
176 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 18:41:49 ] VS2005MFCダイアログの実装です ダイアログにフォーカスが当たっているときに、キーイベントが発生したら モーダルのダイアログを出したくて キーイベントを、PreTranslateMessage()関数で拾いDomodal()したら メモリーリークが発生して落ちてしまいますなんで?
177 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:21:56 ] 質問です。 Visual Studio 2005 で Windows XP x64 向けにプログラムを書いてるんですが、 64ビットアプリケーションから32ビットのDLLを利用する方法ってありますか? 検索したらなんか「ABIの違いでできない」みたいなことが書かれてるサイトが 多いのですが、具体的な回避策は見当たらなかったので。DLLを64ビットで ビルドし直すしかないのでしょうか?
178 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:24:56 ] >>177 は馬鹿デツカww >検索したらなんか「ABIの違いでできない」
179 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:30:28 ] windows ABIについて勉強するか
180 名前:デフォルトの名無しさん [2007/12/17(月) 19:44:03 ] Windows アクティブBasic インターフェース
181 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:44:29 ] application binary interface
182 名前:デフォルトの名無しさん [2007/12/17(月) 19:46:06 ] Windows アプリケーション ベーシック インターナショナル
183 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:47:55 ] ApplicatiomBinaryInterfaceてのがあるのか。 説明を読んでも、いまいちピンとこないが。
184 名前:177 mailto:sage [2007/12/17(月) 20:27:23 ] >>178 何か変でした? このへん↓を参考にしたんですが。 ja.wikipedia.org/wiki/WOW64 あまりにも初歩的な質問かもしれませんが 何か具体策がありましたらお教えください。
185 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 20:39:37 ] まあでも、読めたら読めたで、64bitプロセス側で32bitメモリへ マーシャリングするひつようがあったり、32bitから64bitへの コールバックで悩まされたり、64bitポインタと32bitポインタの区別を つけなきゃならなくなったりで、結構大変そうな気はするな。
186 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 20:55:57 ] >>177 はスレタイも読めないのか・・・・ ★初心者にVisual C++を教えるスレ★ Part28
187 名前:177 mailto:sage [2007/12/17(月) 21:19:23 ] >>185 やはりDLLを64ビットにビルドし直すほうが 結果的に問題が少なくなりそうですね。 その方向で検討してみます。 >186 スレ違いだったようですね。 スレ汚し失礼しました。
188 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:27:06 ] ostringstreamにDWORD型を<<すると10進になるのですが 16進で入れるにはどうかけばいいでしょうか
189 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:38:07 ] << std::hex << を入れるとできました ググり方が悪かった。。。
190 名前:デフォルトの名無しさん [2007/12/18(火) 08:52:48 ] C++の基本的なお勉強ができてきたのでいろんなライブラリをみてまわろうと思っています。 STL、BOOST、ATL、WTL、MFC、POCOあたりは見てきたのですが、 他にメジャーとか、開発効率がよくなりそうなライブラリを教えてもらえないでしょうか。
191 名前:デフォルトの名無しさん [2007/12/18(火) 10:04:52 ] ボーランドC++
192 名前:デフォルトの名無しさん [2007/12/18(火) 10:34:35 ] 質問です。 大量の各国語の文字が書かれたテキストデータから 任意の文字を検索するプログラムを作っているのですが wchar_tで内部の処理をする場合、読み込むテキストの文字コードはutf-8にするんでしょうか? それともeucでしょうか? また、テキスト読み込み後、コマンドラインからwscanf()で検索対象の文字を取ってるのですが コマンドラインからの入力の標準の文字コードはsjisになってる気がするのですが、これはどうすればいいのでしょうか? よろしくお願いします。
193 名前:デフォルトの名無しさん [2007/12/18(火) 10:38:26 ] charでも検索できるし高速だよ ワイド文字とのちがいは、文字単位が判明するかどうかだけ char型は1バイト、2バイト文字が混在する
194 名前:デフォルトの名無しさん [2007/12/18(火) 10:40:50 ] wchar_tはutf-16のはず char型はなんでも受け入れる 前者ならutf-16にして渡し、後者はsjisにでもしておけばよい
195 名前:デフォルトの名無しさん [2007/12/18(火) 10:41:59 ] すまん 日本語限定ではないのか それならwchar_tにするしかないな
196 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 10:52:49 ] char型にしてUTF-8にするか、wcharでUTF-16にするかな
197 名前:デフォルトの名無しさん [2007/12/18(火) 10:57:18 ] 多言語だと4バイト文字とかも出てくるから、wvharでも文字単位は判別できないのかなあ?
198 名前:デフォルトの名無しさん [2007/12/18(火) 10:59:18 ] wcharはunsigned shrot int型だよね 自動的に一語が入るように拡張しないよね? 万能な言語処理する型はないのか
199 名前:192 mailto:sage [2007/12/18(火) 11:04:39 ] レスありがとうございます。 なるほどwchar_tはUTF-16でしたか・・・ char&sjisを使わないのは、1つの領域に1バイトしか格納されないので もし、検索対象とたまたま一致する別の1バイトずれた文字列までヒットしてしまうと まずいからです。あと、後々アルゴリズム的に正確な文字数がわかった方がうれしいので・・・。
200 名前:デフォルトの名無しさん [2007/12/18(火) 11:10:18 ] sjisだと多言語無理だろう uft8ならcharでもズレとかでないはず
201 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:24:55 ] ちょっときになったんだけどグラフソフトとかでたくさんの 窓出すときって,ウインドウ登録するときに使うプロシジャー関数を 同じにしてもいいのかな?
202 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:31:18 ] ウインドウ登録ってウインドウクラス登録のこと? 別にいいけど、同じウィンドウクラス使ってCreateする方が多いんじゃない?
203 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:38:59 ] >>202 ああそうかw馬鹿だ自分w じゃあ実際書くときはウインドウハンドルとかの必要な情報を構造体のメンバーにして リストでつないでいけばいいのかな.
204 名前:デフォルトの名無しさん [2007/12/18(火) 15:25:19 ] あの、VC++で16*16の画像を256*256に拡大したいのですが、どうすればいいですか!? 画像は、モノクロです。
205 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 15:33:44 ] ツールの使い方なのかプログラムなのか
206 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:01:46 ] VC++6.0でCFileDialogを使っているのですが 最近の豪華なファイルを開くダイアログを表示するにはどうすればいいでしょうか? CFileDialog *dlgFile; dlgFile = new CFileDialog( TRUE,// 種類 TRUE : FileOpen _T("*"),// デフォルトの拡張子 _T("*.*"),// 初期ファイル名 OFN_FILEMUSTEXIST, // ダイアログの設定フラグ:既存のファイル _T("全て(*.*)|*.*||")// フィルタ ); dlgFile->DoModal(); 現在はこのようなコードです。
207 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:04:36 ] >最近の豪華なファイル 昔はしょぼかったんだろうか。
208 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:14:18 ] MFC使わずにAPI呼んでみ。 ::GetOpenFileName() のほうな。
209 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:28:59 ] >>208 ありがと! 豪華になりました!
210 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:48:17 ] >>198 Unicodeには結合などがあるから、 例えUTF-32を使っても1文字が1単位で表せるとは限らない。 あと、C++だと規格上wchar_tは独立した型でなければならず、 VC++でも8からそれが既定。7.1でも/Zc:wchar_tで使える。
211 名前:デフォルトの名無しさん [2007/12/18(火) 18:35:18 ] vector<char>とUTF8を使って多言語のクラスでも作ろうか
212 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:40:00 ] >>176 の質問はスルーですか?
213 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:41:53 ] >>212 よく判らんが、DoModal()を多発してメモリ食い潰すって落ち?
214 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:43:42 ] メッセージループの中でDoModalは無謀だろう
215 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:47:40 ] >>211 山ほど作り直さないといけない文字列操作系のメソッドが・・・
216 名前:176 mailto:sage [2007/12/18(火) 18:48:51 ] こんな感じです BOOL ***Dlg::PreTranslateMessage(MSG* pMsg) { INT_PTR nChar; if( pMsg->message == WM_KEYDOWN ) { nChar = pMsg->wParam; switch( nChar ){ case VK_NUMPAD0 : // 0 キー nChar = pMsg->wParam; child.SetCode( nChar ); child.DoModal(); case VK_NUMPAD1 : // 1 キー nChar = pMsg->wParam; child.SetCode( nChar ); child.DoModal(); case VK_NUMPAD2 : // 2 キー nChar = pMsg->wParam; child.SetCode( nChar ); child.DoModal(); } return CDialog::PreTranslateMessage(pMsg); } return 0; }
217 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:53:06 ] >>216 そういうときは、目的のキーのときはそのまま0リターンして ダイアログでWM_KEY受け取っては?
218 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 19:18:39 ] bluetoothを使った通信プログラムを組みたいのですが、 なにからはじめればいいかまったくわかりません。 通信系には弱くて、winsockを使ったudp通信ぐらいしかしたことがありません。 ご教授おねがいします
219 名前:176 mailto:sage [2007/12/18(火) 19:28:49 ] >>217 具体的に教えてください、インプリメントしてもらえば更に、理解し易いのですが
220 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 19:36:53 ] >>149 亀レスだけど俺はVisual C++ Express EditionとIE7入れてるけど問題ないよ SP1も適応してない
221 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:58:57 ] すいません C言語を一通り終え、先輩から 「よしじゃあVC++で電卓作ってみようか。Cと変わらないからすぐ出来るでしょ」 とMFCの使い方の本を渡されたんですが、正直全くわかりません。 一体何から学べばいいでしょうか・・・?
222 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:19:18 ] 電卓はプロでも難しい
223 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:36:53 ] 電卓舐めたら痛い目見るぜ。 とりあえず整数の四則演算だけ実装してみたら? ダイアログベースで、EditBox一個とボタンをいくつか貼り付ければそれなりの形はできる。 EditBoxにメンバ変数を割り当てる際、値ではなくコントロールにしておくのがコツか?
224 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:37:39 ] MFCより前にC++言語を一通りやれ。
225 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:38:51 ] Visual C++ 2005 Express EditionってVisuaStudioみたいに「リソースの追加」 で自動でリソースファイルとヘッダファイル作ってくれない? 自分で直接打ち込んで作れってことですか?
226 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:45:42 ] >>224 ですよね・・・ coutとかprintf関数と一緒?けど関数の形してないしな とか疑問がすごかったです・・・。 とりあえずC++からやってみます。 今週中に電卓つくってねーとか言われたけど無理だろこれwwwwwww
227 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:53:32 ] これ提出すればよろし file://localhost/C:/WINDOWS/system32/calc.exe
228 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:57:30 ] C++でCの構文そのまま使えるから 時間があればC++を勉強すればいいけど とりあえずMFCを触ってみたいってだけなら 基本的にCで書いて、MFC独特の所だけ覚えれば良いんでないかい? printfも使えるし。 ま、MFCならprintf使ってもしょうがないけどな。 MFCなら多分コンソールアプリじゃないだろうし。
229 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:28:30 ] boostのspiritというものを使えば楽にできるらしいよ
230 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:49:12 ] 四則演算の電卓を作るだけなら本見ながらやれば1週間でできるだろ ただそれは作った。であって作れるようになった。ではないけど
231 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 02:08:08 ] 無理だろ。Cでコンソールアプリしか作ったことないなら、 クラスも知らない、WinAPI も知らない、ウィンドウやメッセージの概念も知らない、 そんな状態で MFC を使わされても 「???」 しか浮かばないだろうぜ
232 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:13:55 ] コンソールアプリでも関数電卓になると途端に難しくなる たしかに基本のアルゴリズムに関して覚えるいい勉強にはなったけど・・・ まあ、四則演算だけならできそうだが・・・いきなりMFCとかすごいねw
233 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:41:00 ] その先輩は自分のすごさをアピールするために さも簡単そうに言ってるだけだな。 本当は自分も昔苦労したくせに。
234 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 10:19:09 ] とりあえずボタン押したら数字表示する ここまでが第1目標
235 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 10:34:06 ] シェルの実装ができるようになりたい
236 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 11:14:33 ] >>219 ちょっと試したけど、とりあえず問題ないぞ? 問題があるのはその最後に出すダイアログなんじゃないの? 使いまわししてるのか?
237 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:46:11 ] 初心者ですが質問させてください. WinMainやmainで計算された結果を格納している数値配列を プロシジャーに渡したいんですが何かいい方法がないでしょうか? ちなみに配列は動的に確保しているのでグローバルにするのはできません. 渡すことができれば描画関係はプロシジャーの中でできるのですが・・・
238 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:52:29 ] 引数にすればいい、、、、ってここでいうプロシジャーは何? ウィンドウプロシージャのことか? メッセージか何かで渡したいなら、WM_COPYDATAがプロセス間でも使える。
239 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:03:39 ] >>238 そうです.ウインドウプロシージャです.すいません. 自作メッセージを送るときだけ配列をウインドウプロシージャに渡したいのです. WM_COPYDATAというのが使えるんでしょうか?少し調べてみます. ありがとうございました.
240 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:12:22 ] 218おねがいします
241 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 13:41:43 ] 218はスルーでおねがいします
242 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:20:35 ] bluetoothなんてVC++では制御できないよねー
243 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 15:35:13 ] さあ?自分で調べれば? 金くれたら調べてやってもいいけど
244 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:07:34 ] 218と221の扱いの差に吹いたw 可愛そうだからレスしてやるw 確かvistaのSDKだったらwinsock2でいけたはず 詳しいことはわからん、後誰かよろしく
245 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:48:09 ] メニューリソースにセパレータを追加するにはどうすればいいでしょうか? 「-」を入れればいいかと思ったのですがだめでした。
246 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 16:50:09 ] すみません。セパレータというチェックボックスがありました。orz
247 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 21:12:06 ] >>239 同一プロセス内だったら、自分で好きなメッセージを作って それをやり取りすればいいんだよ。 値はWM_APP + nの中から、nは0以上0x4000未満。
248 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 21:30:39 ] a.hとb.hがありそれぞれがそれぞれを参照しているのですが コンパイルエラーになります。 これを回避する方法はあるでしょうか? #include "a.h" #include "b.h" #include "b.h" #include "a.h" どちらにしても、相手を参照しているのが問題のようなのですが 対策がわかりません。よろしくお願いします。
249 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 21:37:04 ] まずはインクルードガードでググレ
250 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:15:10 ] >>248 前方宣言でググれ。 まあ設計見直すのが先だな。
251 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:31:32 ] >>249 なんか違うような・・・ >>250 ありがとうございます。たぶんわかりました。
252 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:53:32 ] VC++2005 Express Edition + Windows SDK + DirectX を使い、 Win32アプリケーションのゲームを作ろうとしている所です。 プロジェクト設定:コンソールアプリケーション アプリケーションの種類:Windowsアプリケーション としてプロジェクトを作成しました。 さて、ここで質問です。この場合にフォームの追加、編集はどのようにすればよいのでしょうか? .NET Frameworkのアプリですと、Borland C++ Builderのような感じで フォームをGUIで編集できるようなのですが、上記のようなWin32アプリでも同じような フォームの編集機能はありますでしょうか? とりあえずプロジェクト作成時に作られたフォームのメニューIDだけはVC++6.0の リソースエディターで編集できましたが、新フォーム追加や呼び出し、 ウィンドウのプロパティの編集などがさっぱりです どなたか同じような環境でやっておられる方、助言下さい。よろしくお願いします。
253 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:19:56 ] EEでは無理
254 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:07:00 ] >>253 EEでは無理、という事は、逆に言えばStanderd Edition等であれば Win32アプリケーションであってもフォームのGUIによる編集機能が備わっている、 という事なのでしょうか? とりあえず、ゲームのオプション設定等ができる別ウインドウをいくつか作れればいいので 特にGUIでのフォーム編集に拘っているわけではないです。 もちろんできるに越したことはないですけれども。 何かしら良いやり方があれば教えてください。
255 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:09:47 ] Std以降も、ダイアログエディタとMFC/ATLが付くってだけで、 VC6時代のやりかたとそんなに変わってないよ。
256 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 00:14:54 ] >>255 VC6はインストールはしてあったのですが、何分BCBばかり使っていましたので VC6時代のやりかた自体がわかっていない状態です 長くなりそうな内容でしたら、何か参考になるページとかありましたら教えてほしいです。 よろしくお願いします
257 名前:デフォルトの名無しさん [2007/12/20(木) 00:37:08 ] VC++ 6.0を使用してます。 初めてサブクラス化に挑戦していて、同じクラス(ボタンとかチェックボックスとか)では成功したのですが、 リストボックスとボタンなどを一緒に SetWindowLong で同じ新規プロシージャ当てると、どちらかが非表示か無効状態になります。 異なるクラス名での同一プロシージャへのサブクラス化は出来ますでしょうか・・・? またその場合、するべき事はどのような事がありますか? VBやMFCを使ったサブクラス化のソースはあるのですが、Win32SDKでのサブクラス化の例が少なくてここにたどり着きました。 どうか助言のほどよろしくお願いします。
258 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:10:15 ] >>256 画面が必要なトコをMFCアプリケーションで作ってCreateProcessで起動したら? DLLでもいいけど
259 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 01:43:11 ] >>257 CallWindowProcでは、それぞれの基のウィンドウプロシージャを呼んでいる? リストボックスまでボタンのウィンドウプロシージャを呼んでいるなんて事態になっていないか。
260 名前:257 mailto:sage [2007/12/20(木) 05:57:09 ] >>259 なるほど、GetWindowLongはそのためのものだったんですね。 それぞれのクラスのデフォルトプロシージャを取得しておいて、 まとめたプロシージャでクラス名ごとにreturnするCallWindowProを変えたら上手く行きました。 非常に勉強になりました。ありがとうございました。
261 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:21:48 ] HTMLのリンクにマウスを持っていったときに指マークになりますが あれはどうやってやればよいでしょうか?
262 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:52:50 ] ロードカーソル
263 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 08:27:30 ] CInternetSessionを使う場合は自動的にIEの持っているクッキーを 送信してくれるのでしょうか? それともGetCookieやSetCookieを使って自分でセットしてやる 必要があるのでしょうか?
264 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 08:44:09 ] 経路上か鯖側で通信内容確認できないの? そんな状況ならやめた方いいよ
265 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:56:35 ] >>264 キャプチャしてみたところついてました。 助かったー
266 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:14:43 ] Visual C++ 2005 Express Edition でWindowsアプリケーションを作れないかと調べたら、 Microsoft Windows SDK をダウンロードして設定をいじったらできる、という記述を見つけました。 しかしMicrosoftのホームページを調べてみても、「Windows SDK for Windows Vista」みたいなのしか見つかりません。 XPではこのやり方では無理なのでしょうか?
267 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:15:57 ] for Vistaと書いてありますがXPでも使えるという罠です
268 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:26:08 ] ありがとうございました、早速ダウンロードしてみます!
269 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:37:46 ] 今までBorlandC++でコンパイルできてたソースをVC++でコンパイルしてみたら、 ○ 番目の引数を 'char [○]' から 'LPCWSTR' に変換できません。 というエラーが大量に出てきました。 ヘルプで調べて、暗黙の変換をしようとすると出るから明示的に型キャストしろ、 とあったので、 (LPCWSTR)"文字列" という形にしたところほとんどのエラーは消えたのですが、 CreateWindow関数の第二引数だけ、このやり方でも同じエラーが出てしまいます。 文字列を一度char配列に格納して型キャストしたポインタを入れてもだめでした。 どうしてなのでしょうか?
270 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:40:23 ] >>269 今のVCはUnicodeがデフォだから。 両方で共通に使いたいならANSIビルドにすればいいし UNICODEのままでやるつもりなら、_T()マクロとか、TCHAR、LPCTTRとか駆使して書き換え。
271 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:41:57 ] あと、とりあえずなんでもキャストすんな。 文字列は、_T("")でくくれ "string" -> _T("string")
272 名前:デフォルトの名無しさん [2007/12/21(金) 17:42:33 ] oshiete1.goo.ne.jp/kotaeru.php3?qid=2236318
273 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:46:35 ] なるほど、文字コードの違いのせいでしたか。 ありがとうございました。
274 名前:デフォルトの名無しさん [2007/12/22(土) 07:37:22 ] WinXP、VisualStudio2005ExpressEditionです。 パソコンの名前:AAA XPのユーザー名:BBB VisualStudio2005で操作するプロジェクト名:CCC のときに、「CCC.BBB.AAA.user」という名前のファイルがプロジェクトのあるフォルダに勝手に作成されています。 個人情報が漏れそうで怖いんですが、VisualStudio2005で作成した実行ファイルにもユーザー名が埋め込まれていたりしますか? それとも、.userのファイルだけ気をつければパソコンの名前やユーザー名は分からないですか?
275 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 08:50:51 ] わかります
276 名前:274 mailto:sage [2007/12/22(土) 09:25:47 ] 作成した実行ファイルを右クリックして見られるプロパティにはユーザー名が含まれていないようでした。 ファイルのヘッダ?みたいな部分に書かれているんでしょうか? 確かめる方法と消す方法を教えてください。 OSのユーザー名は最初に作成したadministrator権限のなので、変更は不可能みたいです。
277 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 10:04:06 ] exeをバイナリエディタで検索かけてもユーザー名は検出されなかったけど >>275 は適当言ってるだけじゃねーの?
278 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:29:12 ] VC++もMFCがあればVBとあまり変わらないんですね。 なんかほっとしました。
279 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 13:42:39 ] ?!
280 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:19:49 ] デバッグ情報出力するようになってると プロジェクトのフォルダのパスが埋め込まれるから マイドキュメントなんかにいれてるとわかる。
281 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:39:48 ] よくわからないんだけど普通のC++とかとVisual C++ってのは違うの??
282 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:46:37 ] C++ってのはプログラミング言語の名前。 VC++ってのはC++でプログラムを作成するのをサポートしてくれるソフトウェア。 htmlとホームページビルダーみたいな関係だと思えばいい。
283 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:48:11 ] じゃあここはVC++を使ったC++プログラミングスレというわけか、さんくす
284 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:23:27 ] ある本を参考にして、勉強しています。 プログラムを開こうとすると、 「Classview情報ファイルにアクセスできません。ClassView 情報を取得できません。」 と怒られるのですが、何が原因なのでしょう? ファイルが読み取り専用から、チェックを外しています。
285 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:53:43 ] そのある本とやらを教えろ。話はそれからだ
286 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:05:38 ] ClassView情報ファイルを消して、再作成させろ。 *.clwだっけ?たしか。
287 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:31:19 ] >>286 有難うございます。 .clw? 等を全て削除。(主ファイルだけ残しました。) 再びVCを立ち上げて再ビルド。 何故か 成功 何故ですか?w バグが怖いので、最初から作ります。
288 名前:デフォルトの名無しさん [2007/12/22(土) 20:09:49 ] 環境 VC++ 6.0 SDK 初めてUnicodeでのビルドに挑戦して文字列操作に悩んでます。 プリプロセッサで _UNICODE 設定し、リンクアウトプットに wWinMainCRTStartup としてメイン関数は wWinMainにしました。 例えば static LPTSTR szAppPath; GetModuleFileName(NULL, szAppPath, MAX_PATH); のようにやると、コンパイルは通るのですが、実行時にデバッグ画面に移ります。 これを TCHAR szAppPath にすると問題有りません。 マルチバイトとワイドバイトの違いとchar周りを調べてるのですが、いまいち理解出来ずに居ます。 助言頂けたら幸いです。
289 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:19:21 ] >>288 static LPTSTR szAppPath; LP〜はポインタ。実質 static wchar_t* szAppPath; と同義。TCHAR だとコンパイルとおらないと思うんだけど?
290 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:41:47 ] static TCHAR szAppPath; ならコンパイルは通るでしょ。ただ1文字分しか領域が無いから落ちると。 static TCHAR szAppPath[MAX_PATH]; でOK
291 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:43:48 ] あ、エラーは2行目か
292 名前:288 mailto:sage [2007/12/22(土) 21:25:05 ] 分かりづらかったですね、すいません。 そうです、TCHARで配列指定すれば通ります。 LPTSTR指定すると2行目のGetModuleFileName関数で落ちます。
293 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:31:42 ] LPTSTRとか訳の分からないものが出てきたら、それを選択してF12押すと正体が見れるよ。 ただ>>288 はMBCSとかUnicodeとか関係のない、ただのロジックミス。
294 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:51:22 ] というか、ぬるぽだろそれは。 実体を確保してやれよ。
295 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:51:46 ] wWinMainCRTStartup としてメイン関数は wWinMain みたいないらんことする必要ない
296 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:12:03 ] >>292 今までこんなことやったことあるか? static char *szAppPath; GetModuleFileName(NULL, szAppPath, MAX_PATH);
297 名前:288 mailto:sage [2007/12/22(土) 22:17:50 ] 8bitでの char *szAppPath; と同様ということですね。 初めて16bitを扱うので、ちょっとまだ混乱気味ですが TCHAR szAppPath[MAX_PATH]; にするか、 もしくはAlloc関数などで動的確保すれば自分のやりたい事が出来るという事であってますでしょうか・・・。
298 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:31:34 ] 別に今まで通り普通に作るだけだろ 今までどうやってたか不思議
299 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:00:51 ] サンプル探して真似するだけ 慣れるまでは自分で勝手にコード書いちゃダメ
300 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:51:51 ] サンプルがなかなか見つからない
301 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:46:34 ] サンプルは簡単に見つかる
302 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 02:07:12 ] Visual C++ (やりたい事) でぐぐれ
303 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 03:17:02 ] Visual C++ アクションゲーム 出てこないよ
304 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 03:40:40 ] いっぱい出てきたよ
305 名前:274 mailto:sage [2007/12/23(日) 04:25:21 ] >>280 プロジェクトのフォルダの絶対パスに、ユーザー名が含まれていなければセーフってことですね。 それならたぶん大丈夫です。ありがとうございました。
306 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 05:07:52 ] >>304 詳しく
307 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 06:16:47 ] VC6のやつ 他にMSDNのサンプルにもある ATL\Include\ATLBASE.H(4934): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLBASE.H(4976): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5042): GetModuleFileName(m_hInst, szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5925): GetModuleFileName(pM->m_hInst, szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5987): GetModuleFileName(pM->m_hInstTypeLib, szModule, _MAX_PATH); ATL\Include\ATLWIN.H(1353): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLWIN.H(1379): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH); CRT\SRC\ASSERT.C(151):if ( !GetModuleFileName( NULL, progname, MAX_PATH )) CRT\SRC\CRT0MSG.C(242):if (!GetModuleFileName(NULL, progname, MAX_PATH)) CRT\SRC\DBGRPT.C(477):if (!GetModuleFileName(NULL, szExeName, MAX_PATH)) CRT\SRC\HEAPINIT.C(92):GetModuleFileName(NULL,env_app_name,sizeof(env_app_name)); CRT\SRC\STDARGV.C(103):GetModuleFileName( NULL, _pgmname, sizeof( _pgmname ) / sizeof(_TSCHAR)); MFC\SRC\APPINIT.CPP(79): VERIFY(::GetModuleFileName(m_hInstance, szBuff, _MAX_PATH)); MFC\SRC\APPUI1.CPP(109): GetModuleFileName(NULL, szAppName, _MAX_PATH); MFC\SRC\CTLLIC.CPP(36): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH); MFC\SRC\CTLREG.CPP(87): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH); MFC\SRC\DLLINIT.CPP(118): GetModuleFileName(m_hModule, szName, _countof(szName)); MFC\SRC\DUMPSTAK.CPP(58): cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase, MFC\SRC\FILECORE.CPP(700): ::GetModuleFileName(hInst, szLongPathName, _MAX_PATH); MFC\SRC\OLETYPLB.CPP(75): GetModuleFileName(AfxGetInstanceHandle(), szPath, _MAX_PATH); MFC\SRC\VIEWHTML.CPP(447): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH)) MFC\SRC\VIEWHTML.CPP(468): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
308 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:27:27 ] JPEGの画像を扱いたいプログラムを構想中です。 現在 VC6.0なのですが、難しいですか? 少し検索してみたのですが、VC7.0には 「CImageクラスという便利なクラスが追加されました。」 と言う事なのですが、VC7.0にした方が良いですか? その時の利点と欠点を分かり易く説明ヨロ
309 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:53:33 ] 何が利点・欠点になるかは作るモノ次第。 他にもlibjpeg、Susie plug-in、GDI+とかいろいろあるから、自分で調べて判断してくれ。
310 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:17:46 ] Susieをスーシーって読んでた俺は間違いなくおかしい 友人はスージーと読んでいてよく議論した
311 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:18:37 ] むしろスシエって読んでた
312 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:32:02 ] CImageあれば使えばいいし、 CImageなかったら作れないものでもないし
313 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 21:21:33 ] >>307 マジですか うほー
314 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:06:54 ] DWORD(unsigned long)をprintfなんかで表示する場合 %ul と %lu どっちが正しいの?
315 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:47:03 ] >>314 %ulなんてない。%uをlで修飾して、%luが正解だ。 つーか、%ulじゃ単に、%uの後にlが出力されるだけだ。
316 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:24:49 ] ありがと
317 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 09:59:08 ] UTF-8の文字列をMS932に変換したいのですが どのような関数がありますでしょうか?
318 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 13:26:04 ] MultiByteToWideChar/WideCharToMultiByteやMLangなど。
319 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:26:20 ] Visual C++ 2008 には Snippet 機能はありますか?
320 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:38:17 ] 有るが大して役に立つものではない
321 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:42:48 ] EEですが2005用Snippetどこでダウンロードできますか?
322 名前:デフォルトの名無しさん [2007/12/24(月) 14:54:13 ] デフォルトのコピーコンストラクタと代入演算子が 生成される条件はなんでしょうか? 常に生成されるのでしょうか? もしそうであれば,「浅いコピー」を勝手にしてもらっては 困るなどの場合,両者をあえて宣言だけして 定義せずに private にしておくなどの方法で 明示的に使えなくするしかありませんか? ちなみに IntelliSense には operator== は出てきません. 自分であえて宣言した場合には出てきますが.
323 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:55:31 ] d.hatena.ne.jp/kakato1192/20070611/p1
324 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:02:26 ] >>322 >明示的に使えなくするしかありませんか? うん それかboost::noncopyableからprivate派生するという手もある。
325 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:12:32 ] あー後、デフォルトのやつはメンバ変数・基本クラスのコピーコンストラクタ/operator=を呼び出すから std::iostreamみたいにコピー出来ないものがあってもコピー不可になる。
326 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 18:34:21 ] MFCでActiveXコントロールを作っています。 それをIEに貼り付けて右クリックイベントを拾ったんですが OnLButtonUp(UINT nFlags, CPoint point) pointに入っている値がどうもコントロール内での位置で これを ClientToScreen(&point)で変換してみたのですが 変換された値が画面上の位置とずれているようです。 画面上の位置を取得するにはどうすればよいでしょうか?
327 名前:326 mailto:sage [2007/12/24(月) 18:53:33 ] すみません。GetCursorPos()で取れました。 いいのかな。こんなやりかたで。
328 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 08:55:54 ] オーナードローボタンを作ってみました。 if( nState & (ODS_FOCUS|ODS_SELECTED) ) { } としてフォーカスと選択状態のときに色を変えるようにしたのですが この他にマウスポインタが乗っているときにも色を変えたいのですが そのような状態を取得するにはどうしたらよいでしょうか?
329 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:14:49 ] >>328 TrackMouseEvent 使う。 昔は、WM_MOUSEMOVE でSetCaptureしてたけど、 今はこれ使えるからいいね。
330 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:34:47 ] >>329 ありがとうございます。調べてみます。
331 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 23:57:59 ] これからVisual C++ 2005 Proを使ってWindowsのGUIアプリを作成しようと思います。 C/C++の知識はあるのですが、CLI等はまだ詳しく知りません。 Visual C++を用いたアプリの作成の経験もありません。 このとき、どのようにしてGUIアプリの制作を始めるのが適切だと思いますか? 1. アプリのフォーム部分のみ.NET Frameworkを使って、 内部の処理はMFCやWinAPIを使ったC++で実装する 2. フォーム部分も内部も全て.NET(CLI)で実装 3. 全てC++とMFCで実装 言語自体が変わってしまう(C++でなくCLIになってしまう).NETはあまり使いたくないです。 ただGUIのデザインはMFCを使ったやり方よりも.NETのフォームデザイナを使用した方が やり易いので、そうい意味で.NETを使うのは魅力的です。 言語をとるか、GUIデザインのしやすさをとるか・・・
332 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:00:01 ] というか、NetFrameworkなフォームの内部をMFCで作るって、_でそ。
333 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:27:44 ] Visual C++のCLIでWindowsMediaPlayerコントロールを使用してAVIファイルを再生しようと考えているのですが、 参考書の通りに打ち込んでいるのですがビルドに失敗してしまいます。 Ctlcontrols->からのsetModeやpause、playを使用したコードが'WMPLib::IWMPSettings' のメンバではありません。というエラーになり、 WMPLib::WMPPlayState::wmppsPlayingというコードに対して、以下の2つのエラーが発生します。 @'WMPLib' : 識別子がクラス名でも名前空間名でもありません。 A'wmppsPlaying' : 定義されていない識別子です。 何か設定が必要なのでしょうか?ご教授お願いします。
334 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:33:09 ] MFCなら間違いはないよ、一応
335 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:35:03 ] >>331 クロスプラットフォームなフリーのGUIライブラリでも使ったらいいんでね?
336 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 03:24:20 ] >>333 参照追加した?
337 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 11:19:29 ] Visual C++6.0,および2005を使っています。 2005で作成したソースコードを6.0に移植したいと思っているのですが、 strcpy_sなどの関数が6.0で使用できず困っています。 バッファオーバーランなどの可能性を考慮すると、安易にstrcpyで置き換える事も出来ません。 やりようによっては、strncpyを使うという手段もありますが、これだとstrcat_sをどうしたら良いか分からなくなります。 素直に、VC6.0でもstrcpy_sや、strcat_sを使いたいと思っているのですが、どうしたら良いでしょうか? 何かしらのSDKをインストールすればいいんでしょうか。 一応、Microsoft .NET Framework SDK v2.0はインストールしてみたのですが、その中にこれらの関数は存在しませんでした。
338 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:17:28 ] >>336 COMコンポーネントでタブをチェックしてOKボタンを押しただけで参照は選択していません。 参照で何を追加すればよいのでしょうか?
339 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:29:33 ] >>338 どこの操作の話? ソリューションエクスプローラーからプロジェクトを右クリックして 参照・・・選んで新しい参照の追加選んでCOM選んでWindowsMedia Player 選んでOKってやったの?
340 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:24:40 ] >>339 ツールボックス上で右クリックしてアイテムの選択をクリックし、そこからCOMコンポーネントでWindowsMediaPlayerを追加しました。 そこ際、参照というボタンがあったのですがそれは何もしてなかったので。 ソリューションエクスプローラーからという操作はしていません。
341 名前:デフォルトの名無しさん [2007/12/26(水) 15:31:04 ] プリコンパイルドヘッダーって, なければ自動的に作る,あれば使う,ってできませんか? 昔は /YX オプションがあったようなのですが. ヘッダファイル common.h をすべての *.cpp から インクルードしています. common.h にはよく使う ライブラリのヘッダをインクルードし,最後に #pragma hdrstop しています.
342 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:42:19 ] >>340 で、>>339 はやったの?
343 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:52:09 ] >>342 それはやっていなかったので、今やってみたらエラー数が増えました。
344 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 16:05:46 ] よかったね
345 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:31:19 ] >337 strcpy_sや、strcat_sなんかたいしたことやってないから 自分で書くかソースコピーして移植
346 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:34:38 ] strcpy_sって何ぞ?
347 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:36:05 ] >>346 VC2003以前から2005以降にプロジェクトもって行くといやというほどお目にかかれるw
348 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:39:39 ] なんか警告対策だっけ、なんだっけ
349 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:53:27 ] 安全性を向上さしたMS独自の拡張関数。 警告出るけど今まで通りのANCII関数 をちゃんと使えてれば無駄な警告。
350 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:24:10 ] ここでstrsafe.hが奇跡の大復活を >>341 stdafx.h/cppは駄目なん? /YXは無駄に再作成される事が多く、あまり役に立たなかったので削除された。 たぶん。個人的には無くして正解だと思う。
351 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:01:11 ] VC++ 2008 Expで、マネージコードとネイティブコードを混在させて プログラムを作成する方法を教えてください。 プロジェクトはCLR、Win32のどちらで作成するのですか? 具体的にどのようにして2つのコードが識別されるのですか?
352 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:07:30 ] Std以上ならCRTのソースも付いてるお
353 名前:デフォルトの名無しさん [2007/12/27(木) 05:17:15 ] VC++ 6.0 SDKです。 半透明ウィンドウを作成しようと色々調べて、 取り敢えずuser32.dllから動的に関数を読み込むやり方までは出来ましたが、 新しい Windows Server 2003 PSDK を入れても SetLayeredWindowAttributes が未定義となってしまいます。 インストールした C:\Program Files\Microsoft SDK\ 以下のlibとincludeフォルダをそれぞれオプションでパス指定しましたがダメでした。 6.0では動的に確保しなければ、6.0以降のAPIは静的に使う事が出来ないのでしょうか・・・? PlatformSDKは最新のだと6.0に対応してないそうなので、 www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm から落として、CoreSDKのみインストールしました。 どうか助言のほどよろしくお願いします。
354 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 05:25:01 ] #define _WIN32_WINNT 0x0500
355 名前:デフォルトの名無しさん [2007/12/27(木) 10:23:41 ] 二つのスタティックライブラリ a.lib b.lib があります。 b.lib は a.lib の関数を呼び出しています。 b.lib を使ったアプリケーションを作成するにあたって、 a.lib も b.lib もリンカに指定しなければならないのですが、 b.lib をビルドするときに a.lib の必要なものも 取り込んでしまうということはできるのでしょうか? リンカに「あれがない、これがない」と連鎖的に ないないと言われないようにしたいのですが。 なお、すべて自作のものなのでライセンス上の問題はありません。
356 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:43:38 ] >>355 VC++の話だよな? b.lib 使うときに b.h もインクルードすると思うが、 そのb.h の中に、 #pragma comment(lib, "a.lib") #pragma comment(lib, "b.lib") 両方入れておけば? つか、a.hにa.libの設定を入れてb.hでインクルードすればいいか?
357 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:44:50 ] あとスタティックリンクなら、両方まとめて1つのlibにするとか・・・
358 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:59:33 ] 質問させてください. 今,あるプログラム内で_beginthreadにより別ウインドウを作成します.そのウインドウを作成する 具体的な関数(hogeとする)にデータを渡したいので構造体のポインタ(data *a)で渡しています. _beginthread(hoge,0,a)のかたちです. 関数hogeの中でdata *b;を宣言して b=(data *)aにして利用するのはできるのですが, 渡したデータを書き換えたあと(b->member=hogehoge;) もとのメイン関数の中でa->memberの値は書き換わっているのでしょうか? ポインタの基本的なことなんですが混乱してきました・・・ 今のプログラムでは書き換わっていません. どなたかご教授お願いします.
359 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:08:43 ] >>358 マルチスレッドでの共有変数の読み書きはタイミングの問題が付きまとうから ちゃんと同期してやらんといかんよ。
360 名前:デフォルトの名無しさん [2007/12/27(木) 11:09:39 ] 変わらない
361 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 12:33:37 ] >>359 おっしゃるとおり同期の問題でした. メイン関数側に書き換わったのを待つループを入れたら 解決しました.ありがとうございました.
362 名前:デフォルトの名無しさん [2007/12/27(木) 22:04:58 ] 質問です。 アニメーションを表示するためのプログラムを詳しい人に書いてもらったのですが 「アニメーション表示。vcproj」(?)というファイルを開いてデバックの開始をすると 「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」 というエラー表示がでます。 オブジェクトファイルというのはもらったファイルの中にあるのですが リンクするとは、どうすればいいのでしょうか? 教えてください。 ちなみに私はまったくC++わからないので 詳しく教えていただけるとありがたいです。
363 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:47:12 ] C++わからないならバイナリ貰えよ。 読めないならソース貰っても意味ないし。
364 名前:364 mailto:sage [2007/12/27(木) 23:48:57 ] Visual C++ で「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。 人にC++を使ってアニメーションを表示するプログラムを書いてもらいました。 もらったファイルの「アニメーション表示.vcproj」というファイルを開いてデバッグ開始をすると 「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。 調べたところオブジェクトファイルをリンクする必要がある、というところまではわかりましたが オブジェクトファイルと何をどうやってリンクさせるのかわかりません。 しかも送ってもらったファイルの中にはobject fileというものが3つ(AssemblyInfo,stdafx,アニメーション表示)あります。どれを使うのでしょうか? C++についてまったく知識がないので全くわかりません。 出来るだけ詳しく教えていただけたら幸いです。
365 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:56:27 ] リビルドで一発じゃね?
366 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 00:41:40 ] >>351 CLRのプロジェクトを作れ。 ソース内で#pragma unmanagedと書くと、そこからアンマネージコードになる。 #pragma managedと書くとマネージコードが始まる。 どっちも現れる前のファイルの先頭はマネージコード。
367 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:15:29 ] プロジェクトはWIN32プロジェクトです。 環境はXP VC++2005です。 参考書のリソースの追加という項目を読んでいるのですが、 「ファイル」→「新規作成」の中にリソーススクリプトという選択肢がある、 と参考書には書いてありますが、VC++2005には見つかりません。 代わりにリソーステンプレートを選択してやってみましたが、 "resource.h"が作成されていないため、エラーとなりました。 どうすればこのプロジェクトにリソースを追加することができるでしょうか? よろしくお願いします。
368 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:27:29 ] 2008 Express Editionをインストールしたのですが、 スタートメニューの[Visual Studio Tools]からコマンドプロンプトを起動すると ttp://www.uploader.jp/user/toollove/images/toollove_uljp00427.jpg このように表示されるのですが、何が問題なのでしょうか。
369 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:38:49 ] >>367 ソリューションエクスプローラの プロジェクト右クリック→追加→リソース
370 名前:デフォルトの名無しさん [2007/12/28(金) 09:35:34 ] >>368 PATH 環境変数の変な所に二重引用符が入っているかもしれないね.
371 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 10:44:55 ] >>370 その通りでした。ありがとうございます。
372 名前:デフォルトの名無しさん [2007/12/28(金) 19:51:28 ] 普通、テンプレートの定義はヘッダファイルでしますよね。 【hoge.h】 template <typename T> void foo(const T& t) { std::out << t << std::endl; } しかし、T が int と double しかありえないとわかっている場合、 (完全な)特殊化の宣言を翻訳単位に書くことでテンプレートの インスタンスが生成されていました、少なくとも Visual C++ 2005 では。 【hoge.cpp】 template <typename T> void foo(const T& t) { std::out << t << std::endl; } template <> void foo(const int&); template <> void foo(const double&);
373 名前:つづき [2007/12/28(金) 19:51:48 ] Visual C++ 2005 では hoge.h をインクルードしてそのつど テンプレートをインスタンス貸し手もよかったし、 かわりに hoge.cpp をリンクするということもできました。 しかし Visual C++ 2008 では hoge.cpp をコンパイルしても hoge.obj にはテンプレートのインスタンスは含まれません。 コンパイラは「なに実体(定義)のない特殊化してるの?」 と無視するようで、当然リンカは「解決できない参照があるよ」 と怒ります。 この挙動はコンパイラ依存なのでしょうか?それとも何か C++ の標準が変わったのでしょうか?
374 名前:デフォルトの名無しさん [2007/12/28(金) 19:57:21 ] wr
375 名前:371=372 [2007/12/28(金) 20:13:31 ] 完全特殊化とインスタンシエーションを間違えてました。 template <> ってなにやってんだよ俺。 正しくは <> いりませんでした。
376 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 07:27:20 ] >>369 ありがとうございます。できました。
377 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 09:46:24 ] VS2005EEでコンパイルしたら.exeの他にいろんな拡張子のファイルができるんですが、 .exeを配布するときに同じフォルタにつめなければいけないファイルってどれですか? bccのときは、.exeだけで大丈夫だったんですが
378 名前:デフォルトの名無しさん [2007/12/29(土) 09:49:03 ] 小数点を扱うときに ふと思ったのですが、 .NET における System.Decimal みたいな型って、 アンマネージドなVC++に存在するんでしょうか? もし無いならば、精密な小数点計算ではどう対応してるのでしょうか? よろしくお願いします。
379 名前:377 mailto:sage [2007/12/29(土) 10:22:35 ] 自己解決しました。何もつめなくても大丈夫みたいでした。
380 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 10:48:58 ] >>378 System.Decimalは、 OLEオートメーションで使われていたDECIMAL型が元になっていると思う。
381 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:47:43 ] switch caseのcase内でreturnする際にもbreakをつけたほうがいいでしょうか?
382 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:13:12 ] >>381 VCというより、Cの話だな。 当然、イラン
383 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:54:43 ] >>382 ありがとうございました。
384 名前:337 mailto:sage [2007/12/29(土) 15:32:24 ] >>345 そうですね……似たようなコードを自分で書くことにします。
385 名前:デフォルトの名無しさん [2007/12/29(土) 15:34:47 ] VC++6.0です。 非MFCでモーダルダイアログを作成したいのですが、 DialogBoxとリソースを使わずにCreateWindow(Ex)で作る事は出来ますでしょうか・・・? 拡張スタイルにTOOLWINDOWを使うと、コントロールメニュー無し・タイトルバーあり・閉じるボタンのみありを作れるものの。 タイトルバーが小さな感じになってしまい、他のスタイルを何通りか試してみても、 コントロールメニューが残ったりと再現が出来ません。 マクロと書いてあったので、どうにか出来るかなと思って試行錯誤してますが、どうもこれと言った設定が見つかりません。 助言頂けたら幸いです。
386 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:33:55 ] >>145 むちゃくちゃ遅いですが回答ありがとうございました><
387 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:21:13 ] >>377 変にオプションをいじっていなければ、exeだけ。 ただし、別途ランタイムが必要。
388 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:54:00 ] x64でインラインアセンブラは使えないんですか? まだ対応してないというだけで、新しい2008では使えるんですか?
389 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:07:42 ] >>388 使えないよ。 MSは組み込み関数を使えってスタンスなんだと理解してる。
390 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 22:54:36 ] >>380 ありがとうございました。
391 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:27:33 ] VS2005MFCです カスタムコントロールのサイズを取得する、関数って準備されてない?
392 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 13:29:28 ] >>391 ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/
393 名前:デフォルトの名無しさん [2007/12/30(日) 17:08:00 ] visual c++ 5.0 express だとメイクファイルのエクスポートってできないんですか? どのバージョンならできます??
394 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:16:30 ] VC6.0は少なくともできる。ってか5でもできると思うけど持ってないから何とも・・・
395 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 22:57:37 ] express ???????????????????
396 名前:デフォルトの名無しさん [2007/12/31(月) 01:41:41 ] Visual C++ 2005 Express Editionについて質問します。 昨日始めたばかりで右も左もわかりませんが、よろしくお願いします。 コーディングする時に、スペースを打つと・が表示され、 TABを打つと、→が表示されますが、これを消すにはどうすればいいんでしょうか? 分かりにくかったらすいません、よろしくお願いします。。。
397 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 01:56:45 ] [編集]-[詳細]-[スペースの表示]
398 名前:396 mailto:sage [2007/12/31(月) 02:01:36 ] ググろうにもどうやってググればいいのか分からなくてほんと困ってたんです。 >>397 さんありがとですmm
399 名前:デフォルトの名無しさん [2007/12/31(月) 03:08:41 ] >>394 ありがとうございました。
400 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:27:05 ] VC2008のExpression Editionで生成した.exeファイルを、開発した計算機以外で実行させるにはどうしたらよいでしょうか? 現状では『アプリケーションの構成が正しくないため・・』というエラーメッセージ表示と共に止まってしまいます。 取りあえずググった結果、2005では 構成プロパティ->ランタイムライブラリ の項を『マルチスレッドMT』にする事で解決できるという記事を目にしたので試して見たのですが、 実行できるようになっただけで、正しく動きません。 (.exeファイルをエントリポイントとした、いくつかの.dllで構成されたアプリケーションなのですが、.exeファイルの機能だけが実行されていて、他の.dllの機能が実行されている様子がない。因みにこれら.dllファイルもマルチスレッドMTで構成しています) これは2008では有効な対処法方ではないのでしょうか?それとも自分が開発したアプリに問題があるのでしょうか? どなたか解決方法に心当たりございましたら、御教授の程宜しくお願い致します。
401 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 06:37:15 ] >400 はスルーしとけ 答えてやってももろくなことはないぞ
402 名前:400 mailto:sage [2007/12/31(月) 06:56:31 ] 何か問題ありましたでしょうか・・・
403 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 09:00:38 ] >何か問題 対処法方 心当たりございましたら 御教授の程
404 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:37:06 ] >>400 多分、共有ライブラリのバージョンが合つてない。 とりあえずスタティックリンクにすれば直ると思う。
405 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:50:33 ] 実行ファイルには、単純にDLLのインポートライブラリをリンクしただけなのか、 起動後に動的に読み込ませているのか、はっきりしる。 C++/CLIなのか、MFC使っているのか、そこらへんも全て書け。 >.dllの機能が実行されている様子がない。 何を根拠に?
406 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:32:51 ] Visual C++ Express Editionの2008と2005、どちらを使おうか迷っているのですが、 C言語とDirectXの勉強に使うには、2008と2005どちらの方が良いですか。
407 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:38:58 ] >>406 どっちも使って使いやすいほうにすれば?その為の無料なんだし
408 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 11:47:11 ] 今って2008のExpressってのも出てるのか 知らんかった
409 名前:デフォルトの名無しさん [2007/12/31(月) 11:54:52 ] 2005じゃないの、今なら、勉強用なら
410 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:12:28 ] >>409 2008は扱いが難しいのでしょうか。 それとも、2005の方が情報が多くて問題解決がし易いという意味ですか。 2005の方が問題解決のヒントが多いのであれば、2005の方を使ってみます。
411 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 12:29:11 ] まあそりゃあ多いだろうよ
412 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:34:39 ] 勉強していくなら情報が転がってる2005のほうがいいでしょ 2008でやっていくなら自分でその情報を発信する側になるぐらいの勢いないとな
413 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 13:35:52 ] 2008はでたばかりだしね
414 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:50:38 ] VCって無料(フリー)のソフトですか?
415 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:51:13 ] いいえ
416 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:54:47 ] 機能制限された無料版もあるソフトです
417 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:55:19 ] ありがとうございます
418 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:11:59 ] Visual C++ 2005 Express Edition、Windows SDKの環境での質問です リソースエディタでタブコントロール付きのダイアログボックスというものを 作ってみたのはいいのですが、これをアプリケーション内で利用するにあたり、 MFC等を使わずに実装する方法がよくわかりません 別のダイアログを貼り付ける、みたいな話はあるようなのですが 実際どのようにコーディングするのかがわからないのです タブコントロール実装のためのコーディング手順などを教えていただきたいです 長くなるようでしたら、このあたりがわかるようなサイトなどありましたら教えて下さい よろしくおねがいします
419 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:34:26 ] 知ってるけど教えようがない
420 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:39:29 ] コーディング手順ってのもまた珍妙な語だな、考えてみると
421 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:43:56 ] だいたいはプロパティシートを使うんじゃないの。
422 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 16:50:56 ] MFC等を使わずに実装する方法がよくわかりません
423 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:09:19 ] タブはボタンみたいなものだよ ボタン押した時に何をするかは作る人の勝手だし、 タブで何をするも作る人の勝手
424 名前:418 mailto:sage [2007/12/31(月) 17:51:23 ] 質問の仕方が悪かったでしょうか? 普通にリソースエディタでタブコントロールを追加したダイアログボックスを ただDialogBox()関数で呼び出しても、何もない四角が表示されるだけなのですが、 これを選択できる状態にするには具体的にどういった手順を踏めばよいのか、 別のダイアログボックスを貼り付けるにはどうすればよいのかが知りたいです。 よろしくお願いします。
425 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:17:52 ] >>424 www.kumei.ne.jp/c_lang/sdk/sdk_69.htm ↑直接的にはこれだけど、他のページも見てみると良いよ。
426 名前:418 mailto:sage [2007/12/31(月) 19:52:13 ] >>425 ありがとうございます そのサンプルだとタブコントロールの作成自体が自前だったので多少混乱しましたが GetDlgItem()でリソースエディタで作ったタブのハンドルを取得する事で 項目追加については解決しました そちらのソースを見た感じだとタブ用のウィンドウの上に後からボタンを作っているようなのですが、 リソースエディタ上でタブの上に見えるようにボタンを配置し、それを表示非表示で切り替えたり する事はできないのでしょうか? 手動で作るか、別のダイアログを固定位置の子ウィンドウとして呼び出すとかしかないでしょうか
427 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 20:13:34 ] そりゃ、ShowWindow(GetDlgItem(**),SW_HIDE)とか駆使しればできるだろうけどさ。 ダイアログエディタが混雑するぜ。
428 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 14:40:45 ] MSDNて使いにくいね。 特にC言語やC++言語の標準ライブラリの調べにくさはC++Builderのヘルプの比ではない。
429 名前:418 mailto:sage [2008/01/01(火) 15:17:20 ] ダイアログをタブコントロールの子ウィンドウとして呼び出して なんとか実装できました どうもありがとうございました
430 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:07:34 ] VC関係のサイトを回っていると、何の説明もなく throw "あいうえお"; みたいな記述を良く見るのですが、これはどういう意味なのでしょうか? プログラムを実行させるとランタイムエラーメッセージが出て処理が止まるのはいいのですが たとえば配布したプログラムでこのthrowが呼び出されてしまったときに、 この"あいうえお"という文字列は、何をもって確認するのですか?
431 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:12 ] >>430 VC以前の問題。 throwって知ってる?
432 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:09:43 ] おおもと(mainとか)でcatchしとくんだろ。 char*を投げるのはあんまし感心しないけど。
433 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:15:06 ] 正直throwというのが良くわからないです この場合どういう効果があるのでしょうか ランタイムエラーメッセージが出る時にthrowで送られた情報が そのメッセージの中で見られるのかと思ったのですが、見られないのですか?
434 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:16:34 ] throwはC++の機能、try/chatchあたりでも勉強してくればいい 当然の如くVCには全く関係ないから
435 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:26:20 ] char*とか、std::exception継承クラスならともかく、かってな ユーザオブジェクトを投げられたら、いずれにせよランタイムは 情報を出すことが出来ないからなー。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 22:36:15 ] throw知らね、って言ってる人には分かる内容じゃないだろうな。
437 名前:デフォルトの名無しさん [2008/01/02(水) 09:12:15 ] ・XPでパスワードLOOK中かどうか判断する方法(ctrl + del + altのあれ) わかる方お願いします。ヒントだけでも結構です。
438 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:37:22 ] スロー(throw)だけじゃなくてスルー(through)も一部では需要ありそうだなw
439 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 11:40:09 ] MSDNのLockWorkStationの解説より >There is no function you can call to determine whether the workstation is locked
440 名前:デフォルトの名無しさん [2008/01/02(水) 15:38:52 ] 結局,関数の宣言の際に例外仕様ってつけるべきなんですか?
441 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 15:41:36 ] 宣言関係ないと思うが、、、仕様どおりでおk 誰が作って誰が使うかによってかわるし、こうしろという決まりごとはないよ。
442 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:58:47 ] >>440 が言ってるのって、 void hoge() throw() 見たいなのじゃないの? C++FAQ第二版で例文がそう記述されてて、 試してみたら(コンパイラに言われたんだか誰かに言われたんだかネットで見たんだか定かでない)けど 「古い記述方法」 という感じだった。 凄くうろ覚えでゴメン。
443 名前:デフォルトの名無しさん [2008/01/03(木) 05:48:25 ] >>442 そう.それ. 例外仕様を頑張って記述したところで,例外仕様の部分って 関数の型としては扱われないし,何かつけてて意味あるのかなって.
444 名前:デフォルトの名無しさん [2008/01/03(木) 17:20:05 ] 別スレから、こちらに書き込みます。 リソースの編集したいのだが、 RCの中から、そこいらのヘッダをインクルードしてるファイルだと フリーソフトではエラーが出て読み込めない。 どうしたら良いですか? あきらめたほうが良いですか?お金はびた一文も出しませんので お金がかからない何か良い方法はないでしょうか?
445 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:20:42 ] >>444 あきらめた方がいい
446 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 18:43:29 ] テキストファイルだから手動でコピペするだけ
447 名前:デフォルトの名無しさん [2008/01/03(木) 23:26:43 ] 自分はプロジェクトのプロパティ(コンパイルオプションとか) をプロジェクトごとに指定することはあまりやらなくて, あらかじめ用途ごとの vsprops ファイルを作っておいて 組み合わせて適用しているのですが,そうすると プロジェクトごとに最初から指定されているオプションがうざいです. デフォルトで全部「親から継承」に簡単にすることってできないんでしょうか?
448 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:16:05 ] C++/CLIでファイルから特定の文字列を検索する部分なのですが、 C++/CLIのStringクラスのCompare(ryメソッドでは、 完全一致は探すことができたのですが、部分一致を探し出すことができませんでした Cのstrstr関数やC++STLのStringクラスのfindメソッドのような、 文字列から文字列を探すことのできる、C++/CLIのクラスメソッドはないのでしょうか?
449 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:42:44 ] >>448 単にオーバーライドを見つけられていないだけな気もするけど、一応。 ファイルの内容が全てメモリに収まる程度という前提なら、 内容をSystem::Stringに全部押し込んだ後で、System::String.IndexOfか? System::Text::RegularExpressions辺りで一気にやるほうが楽かもしれん。
450 名前:449 mailto:sage [2008/01/04(金) 21:44:22 ] オーバーロードだった orz
451 名前:448 mailto:sage [2008/01/04(金) 22:20:11 ] >>449 すぽーんと見落としてました・・お恥ずかしい 読み込むのはファイルの一部だけなので、IndexOfで大丈夫そうです どうもありがとうございました
452 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:48:48 ] 構成プロパティの文字セットをUnicodeを使用するにした状態で int _tmain(int argc, _TCHAR* argv[]) { _tprintf( _T( "testあいうえお" ) ); _gettch(); return 0; } というような感じでコードを書いたのですが、 abcまではDOS窓に表示されるんですが、あいうえおが表示されません Unicodeだとどうすれば日本語も表示されるようになるのでしょうか? ちなみにマルチバイト文字セットにすると上手く行きます できるだけマルチバイトでもUnicodeでも正常動作するようにしたいのです _Tで囲むことで期待通りの表示になるかと思ったのですが… よろしくお願いします
453 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:51:40 ] あ、abcではなくてtestでした_| ̄|○よろしくお願いします
454 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:54:21 ] >>453 本当に表示されてるのはtestだけなんだな? その後に何も表示されてない?
455 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:56:57 ] >>454 えーと、入力待ちのカーソルが、間隔を開けずにtestの真横に表示されます 文字化けしてでるとかもないです
456 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 00:57:00 ] setlocale
457 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:26:48 ] >>456 ありがとうございます。こんな感じでいいのでしょうか? 一応あいうえおの表示はされたのですが、何か弊害などはありますか? int _tmain(int argc, _TCHAR* argv[]) { _tsetlocale( LC_ALL, _T( "Japanese_Japan.932" ) ); _tprintf( _T( "testあいうえお" ) ); _gettch(); return 0; }
458 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:29:07 ] CLRのSystem::Windows::Formsクラスを使用するWindowsアプリケーションでは、 処理は全てFormクラス内のメソッドにまとめるものなのでしょうか? WinAPIでのWindowsアプリケーション作成もしたことがないので、混乱しています・・
459 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 02:35:48 ] 好きにしなさい
460 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 09:36:58 ] >457 そういうプログラムなら標準Cで作った方が汎用性が高いから そんな見苦しいことやって喜んでるのはお前ぐらいだと思う
461 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:03:22 ] マジですか もはや時代はユニコードだと思っていたのですが違うのですか?
462 名前:デフォルトの名無しさん [2008/01/05(土) 10:17:10 ] 自己完結しているアプリなら言語は関係ないだろ ウェブとか、多言語つかうならユニ
463 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:56:10 ] VC++の_t系はWindows APIとの整合性を取るためのものだと俺は思っている。
464 名前:デフォルトの名無しさん [2008/01/05(土) 14:23:23 ] COM の BSTR は MBCS ですか? Unicode ですか? もしくはそういうことは COM の規格の範囲外のことですか?
465 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 14:25:30 ] COMの規約ではどうなっているかしらないが、 Win16ではMBCS、Win32以降はUTF-16 (x86ならリトルエンディアン)。
466 名前:デフォルトの名無しさん [2008/01/05(土) 14:57:05 ] >>465 API でいえば hogehogeA と hogehogeW の話ですよね? 主要な COM コンポーネントでも二種類の インターフェイスが用意されていると思ってたんですが, そうではないのでどうしたものかなぁ,と. しかしよく考えたらたとえば MSXML が XML 文書を 受け取るのも BSTR なわけで,その時は文字コードに よらずなんでも受け取るのだから BSTR は文字コード を限定しないなにか(32ビットで領域のサイズが 明示的に前置された何か)だと思うことにします.
467 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:56:23 ] >>457 寝てたわ・・・ プログラムよりも、デフォルトで開くコンソールのコードページの問題だからねえ。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:01:00 ] 猫本見ながら何度もやってるんですが、画像を表示するところで詰まってます>< ビットマップをrcに変換し LoadBitmapでインスタンスハンドルを取得するところでエラーが出ちゃうんですが 正しい手順教えて下さい>< switch(msg){ case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hBmp = LoadBitmap(hInst, "IDB_BITMAP1"); GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info); w = bmp_info.bmWidth; h = bmp_info.bmHeight; hdc_mem = CreateCompatibleDC(hdc); SelectObject(hdc_mem, hBmp); BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); //描画 DeleteDC(hdc_mem); DeleteObject(hBmp); EndPaint(hWnd, &ps); break; C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。 C:\temp\a.c(102) : warning C4047: 'function' : 間接参照のレベルが 'struct HINSTANCE__ *' と 'int ' で異なっています。 C:\temp\a.c(102) : warning C4024: 'LoadBitmapA' : の型が 1 の仮引数および実引数と異なります。 cl.exe の実行エラー 開発環境はVisualC++6.0です
469 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 02:21:40 ] >>468 > C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。
470 名前:468 mailto:sage [2008/01/06(日) 02:31:52 ] ありがとうございました hInstを宣言したらエラーが消えました。 でも画像が表示されない><
471 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 03:36:53 ] 宣言しただけかよw サンプル丸写しして出直して来い
472 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 04:20:07 ] せめてhBmpがまともかチェックくらいしたら たぶん、"IDB_BITMAP1" を MAKEINTRESOUCE(IDB_BITMAP1) にすればいいとは思うが・・・
473 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 06:24:14 ] C++/CLIで作ったリストボックスの項目にツールチップ表示をさせる方法ってありませんか? ググってもMFCとか他言語ばかりで・・
474 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:03 ] >>469 hInstっつーのはそのアプリケーションのメイン関数 _tWinMain()の 引数で渡されているHINSTANCE型の引数のことだよ これはそのアプリケーションに一つしかないものだから グローバル変数にでも保持しておいて使えばいい
475 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:27 ] >>458 だた
476 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 07:22:54 ] >>468 だたw寒くて指がずれるw
477 名前:468 mailto:sage [2008/01/06(日) 16:01:38 ] >>471 さん サンプルまる写しで出来ないんです>< >>472 さんのやりかたでやっても画面が真っ白のままでした>< プロジェクトフォルダの中身を覗いたらScript1.rcのサイズが2kbなんですけど ちゃんとビットマップ画像入ってないのかと思ってダブルクリックしてみたところ VisualC++が立ち上がって Script1.rc │ Bitmap └IDB_BITMAP1 ってなってるんですけど問題無いですよね? ちゃんと#include <windows.h>の下に #include "resource.h"は書いてあるんです>< >>474 さん Cコンソールの時にやったコマンドライン引数みたいな解釈でいいですか? 猫本にはインスタンスハンドルとしか書いてなかったのでよくわからないまま読み進めてました><
478 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:28:57 ] VS2005でWin32プログラムをデバッグで開始すると問題なく実行できるんですが、 Debug Release問わずデバッガ無しで実行すると途端に --------------------------- cppwin.exe - アプリケーション エラー --------------------------- "0x00000000" の命令が "0x00000000" のメモリを参照しました。メモリが "read" になることはできませんでした。 プログラムを終了するには [OK] をクリックしてください プログラムをデバッグするには [キャンセル] をクリックしてください --------------------------- OK キャンセル --------------------------- で落ちてしまいます。 どういう事なんでしょうか。自殺すればいいんでしょうか。
479 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:30:52 ] はい、よく分かってらっしゃる
480 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:36:33 ] そんな殺生な。 もう2005が出てから2年以上経つんですから デバッガなしだと表面化するバグがどういうものかくらいの情報はあるはずです。 教えてください。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:38:01 ] >>478 デバッガで落ちてそうな所を見つけるしかないんじゃね? MFC使ってるのなら、AfxCheckMemoryとかが有効っぽいケースに見えるけどな。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:39:33 ] >>480 デバッガを疑いたい気持ちは痛いほどわかるが、デバッガのせいじゃないと思うよ。
483 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:40:50 ] >>481 落ちそうな所も何もデバッガ付きならちゃんと意図したとおりに動いてくれるんですが・・・。
484 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:48:12 ] >>483 例外ダイアログからデバッガを起動できるから、起きた場所を特定しよう
485 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:58:00 ] とりあえず変数を初期化せずに使ってるんじゃね
486 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:01:22 ] >>477 hBmpはいくつだったんだよ 0ならいつまでたっても絵は出ないぞ 試しに>>468 のまるまるコピーして IDB_BITMAP1版(MAKEINTRESOURCE使用)と"IDB_BITMAP1"版どっちも ビットマップ表示できてるけど
487 名前:486 mailto:sage [2008/01/06(日) 17:02:46 ] hInstはInitInstanceでグローバル変数に格納してるVC++が作ったソースのまま 一応念のため
488 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:47:29 ] >>483 int *a; a = NULL; : どっかでメモリ確保 : if( a ) { // aのメモリが確保されていた時の処理 } とかやって落ちている気がするよ デバッガ使うと何もしなくても変数が0初期化されてる事が多い
489 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:49:08 ] あ、しまった a=NULLしたら正常動作するなw >>488 のa=NULLを飛ばしてる気がする
490 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:06:38 ] >>489 初期化されてないのが正常動作です。
491 名前:468 mailto:sage [2008/01/06(日) 18:57:43 ] hBmpに正しく数値入ってるかどうか調べるために、表示させようと思ったんだけど Printf使えないから試行錯誤で頑張って見たけど HBITMAP hBmp; BITMAP bmp_info; RECT rc; int w, h; char *szStr="a"; DRAWTEXTPARAMS dtp; switch(msg){ case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hBmp = LoadBitmap(hInst, "MAKEINTRESOUCE(IDB_BITMAP1"); szStr = BITMAP.bmWidth; //hBmpの情報をszSTRに代入 SetTextColor(hdc, RGB(0, 0, 0)); //szStrの中身を表示 DrawTextEx(hdc, szStr, -1, &rc, DT_WORDBREAK | DT_EXPANDTABS | DT_TABSTOP, &dtp); (110) : error C2275: 'BITMAP' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。 よくわからないエラーが…変数の表示ってどうやるの?(´;ω;`)ブワッ
492 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:14:22 ] まさかブレイクポイントも知らないんじゃないだろうな
493 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:18:13 ] VC++のスレだから、当然デバッガ使える環境だと思ったんだが
494 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:22:18 ] >>491 hBmp = LoadBitmap(hInst, MAKEINTRESOUCE(IDB_BITMAP1)); こうな。 そんでコンパイル通る状態にして、この行の次にカーソル移して F9押してF5押してとまったらhBmpの上にマウスのポインタ置いてみな
495 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:29:11 ] >>491 あのさー、型名と変数名の違いぐらい勉強してからこいよ BITMAP 型名 bmp_info 変数名 君ははっきり言って基本的な知識がなさすぎる まずはコンソールでCの勉強から始めなさい
496 名前:468 mailto:sage [2008/01/06(日) 19:53:43 ] 大学の課題で締切が迫っておりのっぴきならない状況なのでもう少し質問させてください>< ブレイクポイントは初めて聞いたのですぐに調べて >>494 さんのやり方で出来ました。マウスを載せたら型名と変数のHBITMAP hBmpが表示されて エラー内容はa.obj : error LNK2001: 外部シンボル "_MAKEINTRESOUCE" は未解決です Debug/a.exe : fatal error LNK1120: 外部参照 1 が未解決です。 って出ました>< >>495 さん 半年前にやったCコンソールの本で構造体の部分読み返してみます><
497 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:55:23 ] ごめんよ、 MAKEINTRESOURCE こうね。
498 名前:468 mailto:sage [2008/01/06(日) 20:07:37 ] エラーが消えたけど画面がすごく・・・白いです><
499 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:36:45 ] >>498 そこで>>494
500 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:29:03 ] >>468 のソースで、hInstさえ正しい値を与えれば表示されるっしょ。
501 名前:デフォルトの名無しさん [2008/01/07(月) 10:31:24 ] VS2005 C++のテキストエディタの画面で、 タブキーや、スペースコードが →や・マークで表示されてしまう様になってしまいました。 何かのキーを触ったら偶然そういう設定になってしまったのですが、 戻し方が解りません。どなたか教えて下さい。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:40:33 ] >>501 超FAQだと思ったが、ここのテンプレはわからなかったので、、、 編集 - 詳細 - スペースの表示 (Ctrl+R, Ctrl+W) で
503 名前:501 mailto:sage [2008/01/07(月) 11:24:14 ] >>502 ありがとうございました。無事元に戻りました
504 名前:デフォルトの名無しさん [2008/01/07(月) 19:23:12 ] VS2005 で手元のプロジェクトをコンパイルするときに WINVER not defined. Defaulting to 0x0502 (Windows Server 2003) という warning が現れます。 出力ウインドウを見ていると、.cpp ファイルの時にはこれが現れ、 .c ファイルの時には自動的に WINVER を設定しないようで現れません。 どこでファイルタイプを判別して動作を変えているのでしょうか。 また、なぜこのような違いが出るようになっているのか教えてください。
505 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 20:08:05 ] 標準Cライブラリのヘッダしかインクルードしていないから。
506 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:11:23 ] MFCを使ったいろいろな例文が載っているサイトないでしょうか?
507 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:13:32 ] >>506 本買ったほうがいいんじゃないか。
508 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:22:05 ] >>506 ぐぐればいくらでもあると思うが…… 例えば、こんなのでいいのか? tp://athomejp.com/goldfish/
509 名前:デフォルトの名無しさん [2008/01/08(火) 00:37:11 ] vc++ 2005と 2008の違いを教えてください
510 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:45:23 ] バージョン
511 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:48:29 ] 2005年に出たのが2005、2007年にでたのが2008
512 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 04:23:40 ] 2005って2004年じゃなかったか?
513 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 04:50:56 ] どっちでも良いじゃん
514 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 06:46:02 ] >>512 2005年だよ
515 名前:デフォルトの名無しさん [2008/01/08(火) 15:23:44 ] 入力したwaveを、エフェクトをかけ出力するプログラムを 作りたいのですがそのようなプログラムの作り方を解説するサイトってないでしょうか? ググッてみたものの出てきませんでした。 当方『windowsサウンドプログラミング』の本を読んで、 そのまま出力するプログラムは出来ています(サンプルプログラムw) 環境VC++6.0 何か書いている途中にスレチな気がしてきましたがよろしくお願いします。
516 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:28:09 ] SDKのサンプルになかったっけ? DirectX使いたいのかな?
517 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:33:40 ] >>515 その本にはWAVデータの詳細が載っているんじゃないかい? どのデータが何を意味しているかさえわかれば、 あとはそのデータをいじってから出力すればいいだけだ
518 名前:515 mailto:sage [2008/01/08(火) 17:55:34 ] >>516 レスありがとうございます。 SDKとは何でしょう?すいません無知もいいとこで… DirectXを使ったほうが楽なのでしょうか? >>517 レスありがとうございます。 それがあんまり載っていなくて、 というか私の勉強不足かも知れないんですが… ど素人なもんでいじり方がどういじってよいやら…
519 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:59:37 ] うん、君にはまだ早いんじゃないかな
520 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:04:57 ] #defineした単語の表示色を変えることはできますでしょうか? オプションのフォントと色を見てみたのですがそれらしい項目が見つからなくて。
521 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 18:50:23 ] WAVの波形をいじるだけだからVCとか関係ない 方程式書いて計算するだけ
522 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:12:04 ] >>520 標準のエディタじゃ無理
523 名前:デフォルトの名無しさん [2008/01/09(水) 08:16:34 ] 今までListBoxへのD&Dは、WM_CREATE後のDragAcceptFilesに失敗してても上手く行きましたが、 エディットコントロールへのD&Dが上手く行かなくて困っています。 MessageBox でテスト確認してみたら WM_DROPFILES メッセージを送ってないようなのですが、 これはサブクラス化するしか方法は無いのでしょうか・・・? リストボックスでは出来てエディットボックスでは出来ないのは何故でしょうか・・・? ご教授よろしくお願いします。
524 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 09:01:53 ] ひとつのウインドウにリストボックスとエディットボックスを配置して リストボックスにドロップしたらファイル名 エディットボックスにドロップしたらファイルの内容を表示 みたいにやってるけど特に問題なく動いてる
525 名前:523 mailto:sage [2008/01/09(水) 10:06:21 ] もしかして同じ種類のコントロールが複数ある場合はサブクラス化しなきゃダメということでしょうか。。 複数のコントロールでD&D使い分けてるのはDragQueryPoint使ってるのかな・・・。 一応CreateWindowExでWS_EX_ACCEPTFILES指定して、 D&Dの際にはカーソルも変わるんですが、上述の通りWM_DROPFILESで何も起きません。 ちなみに、どのコントロールがアクティブ状態でも共通キー処理したいために、 全てのコントロールを一つのプロシージャにサブクラス化しています。 当然、このプロシージャではWM_DROPFILES動作は出来ました。 (ただし、リストボックスで上手く行く他のソースではメインウィンドウプロシージャでWM_DROPFILES受け取ります)
526 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 11:35:08 ] 作成時に親ウィンドウorコントロールにメッセージを関連付けるような設定がなかったっけか
527 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 12:35:07 ] 親ウィンドウで受けてもいいし、コントロールで受けてもいいし、 サブクラス化してもいいし、サブクラス化しなくてもいいし、 どれでもお好きなように
528 名前:デフォルトの名無しさん [2008/01/09(水) 22:02:32 ] 試しにリストボックスを適当な場所にCreateWindowExで作って観たところ、 (WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE + WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL | WS_HSCROLL | WS_VSCROLL,) 親ウィンドウへ通知するスタイルを指定しなくても WM_DROPFILES メッセージが送られました。 逆に、リストボックスで上手く行く方のソースでエディットボックスを作って同様スタイルにしてもダメでした。 D&D可能にしたいエディットボックスは WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, + WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_VSCROLL | WS_HSCROLL, のようなスタイルで作成してます。 最初に書くべきことでしたが、環境は VC++ 6.0 です。リソースではなく一つずつCreateしてます。 エディットボックスとドラッグ ドロップでググって観たら似たような症状が幾つか観られたんですが、 サブクラス化以外でリストボックスのように親ウィンドウでの処理という仕方がどうしても見つけられませんでした。
529 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 22:22:19 ] お勧め www5.plala.or.jp/atata/com/chap7.html
530 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 23:59:08 ] VC++6.0とVC++2005は何が違うんでしょう
531 名前:デフォルトの名無しさん [2008/01/10(木) 00:00:52 ] すいません、基本的な質問かもしれませんが‥ C言語でファイルを保存するととき(fprintfでいいんですが) testというフォルダに保存したいのですがどうすればよろしいでしょうか? フォルダはあります。 (例えば、sample,txtというファイル) PCの環境はwindowsです よろしくお願いします
532 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:04:43 ] ファイル開くときにそのフォルダ指定すればいいだけ ただしアドレスの\は\\にすること
533 名前:デフォルトの名無しさん [2008/01/10(木) 00:07:58 ] \\test\\sample.txt みたいな形ですか? 一度試してみます
534 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:11:50 ] ごめんVCとC/C++スレ隣通しにしてたから勘違いしてた・・・ VCやったことないけど試してみて><
535 名前:デフォルトの名無しさん [2008/01/10(木) 00:14:19 ] すいません、ありがとうございました。 test\\sample.txtみたいな形でやれば上手いことできました。 ありがとうございます
536 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 05:39:28 ] VC++2005 Standardです。 リンク中に 「fatal error C1001: コンパイラで内部エラーが発生しました。」 というエラーが出るので困ってます。 __m128 x = _mm_set_ps1(y); と書かれたところが問題のようです。でも、Debugビルドだと問題なくコンパイルできます。Releaseの場合のみエラーが出てきます。 __m128 x = {y, y, y, y}; とするとReleaseでもコンパイルできたりします。 原因がまったくわからないのでお手上げなんですが・・・
537 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 08:34:11 ] エラーの起きる最小限のプログラムに削って調べてみる。それをup
538 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 21:15:58 ] __m128とか_mm_set_ps1とか初めて見た。情報がすくねぇw DebugとReleaseで_mm_set_ps1がコンパイルエラーになるなら_mm_set_ps1の定義見てみては? 俺は環境がないから確認できない・・・ 関係ないかもしれないけど↓みたいな話もあるみたいね。 richa850.hp.infoseek.co.jp/programming/cpp07.html
539 名前:デフォルトの名無しさん [2008/01/12(土) 12:33:54 ] VisualC++2008ExpressEditionを今日から使い始めました 1つのソリューション内に複数のプロジェクトがあり、ソリューション内の あるプロジェクト(コンソールアプリ)から同ソリューション内の他のプロジェクトをインクルードディレクトリに指定する場合 どのようにすればスマートですか? プロジェクトをコンソールアプリで作成すると構成プロパティのツリー内に 「C/C++」という項目が出てこない為、推移的に「追加のインクルードディレクトリ」という項目もありませんでした コマンドラインの-I ../hogeを使うのかなと思いましたけど、どこに追加すればいいのやらで 初歩的過ぎで申し訳ありませんがご教授の程お願いします。
540 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 12:46:45 ] タスクバーのメニューを消して、タスクトレイにアイコンを表示させるものを作っています。 タスクトレイのアイコンをダブルクリックした際に、ウィンドウを表示、ウィンドウをトレイへ格納の動作をつけたいと思うのですが、 処理が分かりません。 どーいった関数、処理の流れになるのか教えて下さい。 また、参考になるサイト等もあれば教えて頂きたいと思います。宜しくお願いします。
541 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:23:50 ] なんでググらないんだろう
542 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 13:27:57 ] ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
543 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 15:22:18 ] >>539 [ファイル]-[新規作成]-[プロジェクト] [Visual C++]-[全般] 空のプロジェクト でコンソールアプリを作成してるけど [プロジェクト]-[xxx のプロパティ] [構成プロパティ]-[C/C++]-[全般] 追加のインクルードディレクトリ が見えてる
544 名前:539 [2008/01/12(土) 16:44:51 ] >>543 資料を見ながら作っていたのですがその手順の通りだと あたかも最初から表示されているようにかかれてましたがソースファイルが1つも無いプロジェクトには どうやらC/C++の項目が表示されないようになっているようです。 1つ適当にファイルを追加した後表示される事が確認できました。 有り難うございました。
545 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:16:06 ] ググって分からないから書いてんだろ? キーワードもうまく見つけられないんだろうな
546 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:41:49 ] beginthreadで開始したスレッドが終わらないうちにプログラム本体をPostQuitMessageで終了すると、 デバッグ時の出力ウィンドウに cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。 cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。 と表れるんですが、どうすればアクセス違反が起こらないように終了できるんでしょうか。
547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:42:22 ] >>546 子供に自殺要求を出して、その死水を取ってから自殺してください。
548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:42:18 ] VC++ 2005 でisNaNを使った関数を使用するためには ソースコード中に using namespace System と書けばいいのでしょうか?
549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:49:31 ] >>548 isnan()でよければそんなことを書く必要はありませんが。
550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:59:32 ] >549 どうもありがとうございます デバッグかけるとソースコード中の track_box.angle = !isnan(theta) ? (float) -theta : 0; のところで、 error C3861: 'isnan': 識別子が見つかりませんでした と表示されてしまいます…コードがいけないのでしょうか?
551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:03:41 ] _isnan()
552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:10:46 ] >551 うまくいきました!ありがとうございました
553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:13:21 ] デバッグ?って実行しようとしてその前のコンパイルでのエラーか・・・
554 名前:デフォルトの名無しさん [2008/01/14(月) 22:31:41 ] _inran()
555 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:00:58 ] >>546 メモリ破壊を修正
556 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:33:58 ] Visual C++ 2005でdirectx9.0でプログラミングしています。 プログラムは動くのですが、終了時に スレッド 'Win32 スレッド' (0x654) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x98) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x424) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x2e0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x65c) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4c0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4d8) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4b0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x4a0) はコード 0 (0x0) で終了しました。 スレッド 'Win32 スレッド' (0x23c) はコード 0 (0x0) で終了しました。 と大量に同じようなメッセージが出力されます。 これは異常なのでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:35:54 ] 異常です
558 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:37:46 ] ウイルス
559 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:47:09 ] 大量に出るのは異常だという根拠があるのなら異常です。
560 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:56:08 ] >>556 スレッドを作った覚えはあるかどうか。 心当たりが無ければ、実行中に中断させて、デバッグ-ウインドウ−スレッドでスレッドの一覧が出るので、何のスレッドか調べてみよう。
561 名前:556 mailto:sage [2008/01/16(水) 21:57:04 ] どうやら音関係の初期化で出てるみたいなんですけど、 //パフォーマンスの作成 CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, IID_IDirectMusicPerformance8, (void**)&g_pPerformance ); とするとエラーが大量に出てしまうようです。 おかしな所あるでしょうか?指摘お願いします。
562 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:58:41 ] 感染してるとそうなる
563 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:33:52 ] 悪いことは言わない、DirectMusicには手を出さない方がいい 超えられない壁がある
564 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 12:19:17 ] (BBSを使うのは)難しい
565 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:39:11 ] XP(SP2) VC++6.0 MFC ダイアログベースです。 画像をランダムに表示させたいのですが、どうすればいいでしょうか?
566 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:56:33 ] rand()に時間でもかけて使えばいいと思います
567 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ] ランダムじゃないところまではできてるのなら、それを晒してみ。
568 名前:565 mailto:sage [2008/01/18(金) 21:42:25 ] randで自己解決しました。 表示させる枚数も少ないので…。 ご迷惑をおかけしました。
569 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:44:47 ] 自己解決
570 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:09 ] 向きを持ったキャラクタを回転させたいんですけど、 3D空間での単位ベクトルの回転ってどうしたらいいですか? 回転といったら行列を掛ければいいとおもったんですけど、ベクトルは3元なので どうしたらよいかわかりません。
571 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:36:20 ] ゲーム製作板にでも行け
572 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:50:34 ] >>568 どこが自己解決だよカス
573 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:53:03 ] >>570 ・単位マトリクスを用意 ・用意したマトリクスの平行移動成分にベクトル値を入れる ・回転マトリクスと乗算する
574 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:59:59 ] >>573 やってみたら出来ました。 ありがとうございます。 しかし、z軸の+の方からみた時は上手く動くのですが、 逆を向いた時に上下が反対になってしまいます。 D3DXMatrixRotationYawPitchRoll(&m_mat, D3DXToRadian(yaw), D3DXToRadian(pitch), D3DXToRadian(roll) ); として回転行列作っているんですが、pitchの回転が上手くいきません。
575 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:51:03 ] 調子に乗るなよカス ここはVCのスレだ
576 名前:デフォルトの名無しさん [2008/01/19(土) 11:55:55 ] strcpyとか使うと出る例のwarningが、 #define _CRT_SECURE_NO_DEPRECATE 1 ってやっても出たまんまなんですけど、 なぜだか分かりますか? (#pragma warning(disable:4996)は効きます)
577 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:05:54 ] ヘッダのインクルードより先に書いている?
578 名前:デフォルトの名無しさん [2008/01/19(土) 12:13:16 ] >>577 ありがとうございました。 解決しました。 自作のヘッダーの方では、ライブラリのinclude前に あったのですが、mainの方ではそのヘッダーをライブラリよりも あとから呼んでました。 もしかして、 このdefineはmainのあるcppの頭にだけ 書けばよいものなのでしょうか?
579 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:30:28 ] ふつうは、コンパイルオプションに仕込むけど
580 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:23:17 ] Visual C++ってフォームデザイナ付いてんの?
581 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:56:38 ] >>580 [ファイル]-[追加]-[新しいプロジェクト] [Visual C++]-[CLR] Windows フォーム アプリケーション でプロジェクトを作成すると使えるみたい
582 名前:デフォルトの名無しさん [2008/01/19(土) 15:00:17 ] C++ とうか C++/CLI だけどね.
583 名前:デフォルトの名無しさん [2008/01/19(土) 18:30:45 ] クラスの中で+演算子(などを)定義した際、一時的に、 newで何かを作ったとします。 (こんな感じ?) type* tmp = new type[num];。 で、その何かは(何らかの処理後) その演算子定義のreturnで使いたいとします。 return CLASS_X(tmp_s); このとき、tmpのdeleteはいったい どこで行ったらよいのでしょうか? (deleteなしで作成後、実行しても動いてはいる? のですが、たまたまのような気がして心配なので)
584 名前:デフォルトの名無しさん [2008/01/19(土) 18:32:07 ] 訂正 誤:return CLASS_X(tmp_s); 正:return CLASS_X(tmp);
585 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:44:40 ] >>583 tmpの型をboost::scoped_array<type>にでもすればいい。
586 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:59:11 ] >>583 CLASS_X()の戻り値を変数に保持してからtmpを解放 で、returnで保持した変数を返せばいい
587 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:19 ] ちなみに>>583 でも動くだろうが、呼び出す毎にどんどん空きメモリが減っていく
588 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:02:32 ] >>580 スタンダード以上ならついてる
589 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:12:29 ] フォームでよければexpressにもついてる
590 名前:デフォルトの名無しさん [2008/01/19(土) 19:31:40 ] >>585 できればboost以外でお願いしたいのですが。
591 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:34:09 ] >>583 operator=()の中でnewする必要がある状態ってのがよく分からない。 自動変数の値返しじゃダメなのか? ソース提示可能なら提示よろ。 deleteしなかった場合は587の言うように当然メモリリークしていくぞ
592 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:46:23 ] 標準C++の話なら他所でやれ
593 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:47:08 ] >>590 std::vector<type> &tmp[0]のようにすれば、先頭要素へのポインタも得られる。
594 名前:583 [2008/01/19(土) 19:48:07 ] >>591 ありがとうございます。 簡単に言えば文字列の足し算なんですけど、 newしないでできるのでしょうか。 (当方初心者です) friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子 int tmp_nagasa = moji1.nagasa + moji2.nagasa ; char* tmp_moji = new char[tmp_nagasa+1]; mojicpy(tmp_moji,moji1.s); mojicat(tmp_moji,moji2.s); return Mojiretsu(tmp_moji); }
595 名前:583 [2008/01/19(土) 19:51:06 ] >>586 ありがとうございます。(前後してすいません) こんな感じでしょうか。 friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子 int tmp_nagasa = moji1.nagasa + moji2.nagasa ; char* tmp_moji = new char[tmp_nagasa+1]; mojicpy(tmp_moji,moji1.s); mojicat(tmp_moji,moji2.s); char* tmp2_moji = tmp_moji; delete tmp_moji; return Mojiretsu(tmp2_moji); } 一応、動きましたが、tmp2_mojiの先が解放されちゃってて これも心配なんですが、大丈夫なのでしょうか。
596 名前:583 [2008/01/19(土) 19:54:04 ] 訂正 正:mojicpy、mojicat 誤:strcpy、strcat
597 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:17 ] 最近マジデ、どのプログラムもつまんないんですが、どうしたらいいですか? 責めて、C++で鬱病から逃れたいんですが
598 名前:583 [2008/01/19(土) 19:59:39 ] >>592 すいません、この質問が終わったらよそに行きます。 見逃してください。
599 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:59:44 ] ここC++スレじゃないってば VCスレ
600 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:00:57 ] >598 見苦しいから汚いコード貼らないでくれる?
601 名前:591 mailto:sage [2008/01/19(土) 20:05:37 ] 正直すまんかった。 >>598 C++相談室 part60 pc11.2ch.net/test/read.cgi/tech/1200044614 あたりで同じ質問してくれ。
602 名前:583 [2008/01/19(土) 20:08:15 ] >>601 すいませんです。 そちらに行きます。 お邪魔いたしました。
603 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:30:05 ] 最近は、プログラムってFPGAとかのハードプログラムが面白い罠
604 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:23:32 ] 3週間完全マスターVisual C++ 6.0 1版1刷(日経BP社)を図書館で借りたのですが、、、 どっかに、正誤表とかはないんですか?
605 名前:デフォルトの名無しさん [2008/01/20(日) 01:25:08 ] >>603 PCに標準で乗ってたら面白いけどな.
606 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:45:08 ] >>604 ここで聞いてどうするw 出版社に聞け
607 名前:デフォルトの名無しさん [2008/01/20(日) 12:10:01 ] デバイスコンテキストを使用しててどうも前に進めません。 新しくトップにウィンドウ(タイトルバー無し)をポップアップして、 そこにテキストを表示するというものなのですが、 一定以上の大きさを制限するために、一旦デバイスコンテキストに描画したものをStretchしたいのですが、 それ以前にCreateCompatibleDCでメモリデバイスコンテキストにDrawTextしてから BitBltでウィンドウにそのままSRCCOPYしても真っ白なままです。 hDC = GetDC(hWnd); hMemDC = CreateCompatibleDC(hDC); GetClientRect(hWnd); DrawText(hMemDC, szText, -1, &rec, DT_WORDBREAK); BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY); のような感じで、取り敢えずウィンドウの大きさそのままに描画してもダメでした。 これが DrawText(hDC, szText, -1, &rec, DT_WORDBREAK); に置き換えると、ちゃんと描画されます。 プロポーショナルフォントを使っているので、ウィンドウサイズに合わせてポイントを変えるとずれてしまうので、 設定したフォントのまま縮小出来れば、、と試行錯誤してますが、デバイスコンテキストの描画の時点で止まってしまってます。 助言どうかよろしくお願いします。
608 名前:607 [2008/01/20(日) 12:12:20 ] すいません、一行書き間違えしました。 >BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY); →BitBlt(hDC, 0, 0, rec.right, rec.bottom, hMemDC, 0, 0, SRCCOPY);
609 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:29:26 ] CreateCompatibleDCでググれ。 メモリDCはビットマップを割り当てないとまともに使えない。
610 名前:デフォルトの名無しさん [2008/01/20(日) 16:37:28 ] 2008/01/20 現在での最新のVisualC++ のバージョンは何でしょうか?
611 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:40:49 ] マイクロソフトの公式でも池よカス
612 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:47:11 ] >>611 いっぺあってどれがどれやらワケワカメなんだよボケェ 体系的に整理されていないと頭にインプットされねーんだよウンコ
613 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:52:28 ] 2008じゃないの?
614 名前:デフォルトの名無しさん [2008/01/20(日) 17:00:35 ] まずなにしたらいいですか
615 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:09:27 ] >>614 オナ・・・というのは置いといて Hello world を表示だな
616 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:10:33 ] >>614 コーヒーを用意し 服を脱ぎ コーヒーに塩を入れ 裸体のまま一気に飲む
617 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:16:28 ] >>614 void main() { printf( "Hello world!!\n" ); } これを動かしてみ? できるかな? できるかな?
618 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:25:46 ] >>614 なんで手に入れたんだよ ワレズか? 違法だからやめとけお勧めしないから違法なんだよ
619 名前:デフォルトの名無しさん [2008/01/20(日) 17:47:26 ] >>609 更に調べてみたら、どうにか作りたい形に近づきました。 hBmp = CreateCompatibleBitmap(hMemDC, rec.right, rec.bottom); SelectObject(hMemDC, hBmp); のようにしてから、DrawText, StretchBltをhMemDCに出力したところ、反映されたのですが、 テキストの埋まってない余白部分が黒くなってしまいます。 HBITMAPやCreateCompatibleBitmapで調べてるのですが、どうも背景を白く塗りつぶす事が出来ず・・・。 SelectObject(hMemDC, hBmp); に関してはメモリデバイスコンテキストとBITMAP領域をリンクした状態にするという感じでしょうか・・・?
620 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:40:28 ] DrawTextやStretchBltは呼べるのに、何故FillRectを呼ばないのかと
621 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:47:16 ] >>619 DrawText()とか使うなら、SetBkColor()やSetBkMode()を覚えましょう。
622 名前:デフォルトの名無しさん [2008/01/21(月) 00:46:43 ] Cプログラマ必須テキスト! mori.eco.to/
623 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:37:57 ] Visual Studio 2005 でリビルド ↓ ========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ========== リビルドがすべて正常に完了しました ↓ デバッグする ↓ ダイアログで 「プログラム×××.exeは開始できませんでした。」 と表示され、デバッグできません。 何のエラーメッセージも表示されないのですが 心当たりのある方いますか?
624 名前:619 mailto:sage [2008/01/21(月) 04:30:52 ] >>620-621 レスどうもです。SetBkColorは書き忘れただけで、書いてました。が、ダメでした。 FillRectは完全に盲点でした。。存在すら知らなかったもので、試した所、上手く行きました。 本来はマスクかけたりとか色々やるべきなのかもしれませんが、 取り敢えずテキストを白背景に黒で表示という目的は達する事が出来、ありがとうございました。
625 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:23:25 ] 質問です。 タスクトレイのアイコンから最小化、元のサイズの処理をしているんですが、 最小化は ShowWindow(hWnd,SW_MINIMIZE); ShowWindow(hWnd,SW_HIDE); で、出来るんですが、下のサイズの処理をした時に、ウィンドウがアクティブにならず、他のものに隠れて後ろに表示されてしまいます。 処理は ShowWindow(hWnd,SW_RESTORE); ShowWindow(hWnd,SW_SHOW); と書いているんですが、これのどこがいけないんでしょうか?
626 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:26:15 ] そのへん、いろいろあるんで似たような目的のAPIや引数をいろいろ試してみるといい。 まあ、SetForegroundWindowを併用するのが確実かなあ
627 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:48:47 ] >>626 レスありがとうございます。 一応、SetForegroundWindowやSetWindowPosを使って最前面に表示する事が可能なのは確認しましたが、 普通のウィンドウとは動作が違っちゃうんですね。 上記のものだと、関数が発行された時は確かにアクティブなんですが、そのあと後ろのウィンドウを消したりすると、 自分のプログラムが最背面になってしまいます。 自分の作ったウィンドウをmy、その他のウィンドウA、Bとあるとすると、 アクティブ順位が1:A、2:Bの状態から1:my、2:A、3:Bになり、AやBを最小化すると、 1:A(B)、2:myになってしまいます。何故か分かりますか?
628 名前:デフォルトの名無しさん [2008/01/21(月) 11:05:56 ] visual c++ 2008 express editionでgeocoderja.dll内の関数gcjDbLoadを使うプログラムを書いています。が、エラーが出てしまいます。 dllを扱うには動的リンクと静的リンクがあるというところまではわかり、とりあえず動的リンクで試そうとしているんですがどうにもわかりません。 かなり低脳なので申し訳ないのですが、解決法を教えてください。 [ソース] #include "stdafx.h" #include <stdio.h> #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { typedef int(__cdecl* _gcjDbLoad)(char *, int); HINSTANCE hDll = LoadLibrary("geocoderja.dll"); int func = (int)GetProcAddress(hDll, "gcjDbLoad"); char *path = "C:/Documents"; int loadLevel = 4; int retCode = func( path, loadLevel FreeLibrary(hDll); return 0; } [エラー] ------ ビルド開始: プロジェクト: geocoderja, 構成: Debug Win32 ------ コンパイルしています... geocoderja.cpp c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(16) : error C2064: 2 引数を取り込む関数には評価されません。 ビルドログは "file://c:\Documents and Settings\DE\デスクトップ\geocoderja\geocoderja\Debug\BuildLog.htm" に保存されました。 geocoderja - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
629 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:08:04 ] 引数はいろいろやったの? SW_SHOWNORMAL とか
630 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:14:37 ] SW_SHOWNORMALならRESTOREなんてやる必要ない
631 名前:628 [2008/01/21(月) 11:16:12 ] >>629 早速レスありがとうございます。 SW_SHOWNORMAL?? 動的リンクのサンプルを見ながらちょこちょこいじってきたんでよくわかりません。 すみません・・
632 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:20:43 ] typedef int(__cdecl* _gcjDbLoad)(char *, int); イミフメイ
633 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:21:57 ] >>628 何を聞いてるの? もともと間違いはあちこちあるけど、そのエラーは >int retCode = func( path, loadLevel この行が途中までしか書いてないから出るんだよ。
634 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:13 ] >>631 ShowWindow()の引数だよ それ一つあればSW_RESTOREもSW_SHOWもいらない
635 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:32 ] >>628 geocoderのことは知らないが > typedef int(__cdecl* _gcjDbLoad)(char *, int); ↑のように書いたのなら >int func = (int)GetProcAddress(hDll, "gcjDbLoad"); の行は _gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad"); と書かないと意味無くないか? >>631 629-630はその前の質問に対するものだろ。
636 名前:628 [2008/01/21(月) 11:28:52 ] すみません訂正です。書き込みの際に消してしまったようです。 [ソース] #include "stdafx.h" #include <stdio.h> #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { typedef int(__cdecl* _gcjDbLoad)(char *, int); HINSTANCE hDll = LoadLibrary("geocoderja.dll"); int func = (int)GetProcAddress(hDll, "gcjDbLoad"); char *path = "C:/Documents"; int loadLevel = 4; int retCode = func( path, loadLevel ); //エラーが出てる行 FreeLibrary(hDll); return 0; } [エラー] c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(13) : error C2064: 2 引数を取り込む関数には評価されません。 >>632 その行が意味もわからず見よう見まねで書いたのでよくわからないんです・・ >>634 ShowWindow()は使ってないのですが、関連があるんですか?無知ですみません・・
637 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:31:49 ] >>636 俺が悪かった ShowWindowは君の質問とは一切関係ないw
638 名前:635 mailto:sage [2008/01/21(月) 11:33:36 ] >>636 >int retCode = func( path, loadLevel ); //エラーが出てる行 エラーの出てるのはその行だろうけど 原因は635で書いたところにあると思うよ。 意味が分からないなら「関数ポインタ」について調べてみ。
639 名前:628 [2008/01/21(月) 11:42:21 ] >>637 完全に勘違いしてました。すみません。 >>635 635さんの言うように int func = (int)GetProcAddress(hDll, "gcjDbLoad"); を _gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad"); にするとうまくビルドできました! 関数gcjDbLoadも使えているようです。 ありがとうございます! >>638 とりあえず動作するようにはなったみたいなのでいろいろと調べてみます。 ありがとうございます!
640 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:19:15 ] SW_SHOWNORMALも試しました。 ShowWindow(hWnd,SW_SHOWNORMAL); でも、>>627 に書いた通りの動作になってしまいます^^; ShowWindow(hWnd,SW_SHOWNORMAL); SetForegroundWindow(hWnd); でも同じです。
641 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:28:49 ] うちじゃそうならないから、キミのとこの環境がおかしいのかもね
642 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 13:49:08 ] 何で出来ないんですかねぇ; もうちょっと試行錯誤してみます。ありがとうございました。
643 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:45:19 ] Windowでプロジェクト全検索してみれば? どっかでアホな事やってるんだろう
644 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 20:47:59 ] Visual Basicにはちゃんとしたスレはないの? 変な流れのネタスレしかないお。
645 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 22:42:25 ] VB(笑)
646 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 01:09:20 ] 澄んだ目で見れば、ネタスレなどない。
647 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 05:14:22 ] >>644 サイトが充実してるから2ちゃんでやらんでいいやろ
648 名前:名無しさん@ゴーゴーゴーゴー! mailto:sage [2008/01/22(火) 10:08:57 ] VisualStadio2005を使っています。 コンパイルオプションにdefineを追加するのはどうやったらいいのでしょうか。 #define _CRT_SECURE_NO_DEPRECATE 1 #pragma warning(disable:4312) #pragma warning(disable:4996) 上記のをソースに書かず、オプションに追加したいんですが、 プロジェクト→〜のプロパティ→C/C++→コマンドラインの中に書くのでは違うのでしょうか? どこに、どう書いたらいいのか分かりません。 分かる方お願いします。
649 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:21:31 ] >>648 コマンドラインに書いてもいいけど、VC++でやるなら普通は プロパティのC/C++ - プリプロセッサの「プリプロセッサの定義」
650 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:23:34 ] あー、あとpragmaのほうは同じく C/C++ - 詳細の「指定の警告を無効にする」
651 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 10:48:29 ] 出来ました。ありがとうございます。
652 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 13:18:08 ] Visual C++とかVBの如くバカにされたときの反応を教えろ。(・∀・)
653 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 14:42:41 ] スルー
654 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 14:52:15 ] そうなんだーって言う
655 名前:デフォルトの名無しさん [2008/01/23(水) 01:42:39 ] Visual Studio.NET 2003でWin32のプログラムを作りました。 Visual Studio上でデバッグ起動することはできるんですが、 使ってる画像などを含めて、他のPCで動かすためのexeファイルを作るには どうすればいいんでしょうか? 解説してるサイトなどあったら、教えてもらえませんか。
656 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 07:03:54 ] exe作らずデバッグできるほどVC++は器用じゃない
657 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 09:39:25 ] Release版の話?インストーラーの話?
658 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:12:49 ] >>656 Debugフォルダにexeができてました。 画像を同じフォルダに入れたら動きました。 >>657 インストーラの作り方もできれば知りたいです。 exeファイルにアイコン画像をつける方法とかも。
659 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 10:42:29 ] すごく基本的なことだから少し勉強すればすぐわかると思う
660 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:08:16 ] リソースエディタで検索
661 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 15:22:03 ] >>660 ?????????????????????????????????????????????
662 名前:デフォルトの名無しさん [2008/01/23(水) 16:25:10 ] DirectShowを用いて二つのカメラからの信号をそれぞれサンプルグラバフィルタを使用して入力し、 RGB情報をカメラごとの配列に入れて画像処理で用いたいのですが、なかなかうまくいきません。 どのようにすればいいか、ご教示願えませんでしょうか。
663 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 16:26:45 ] VC++関係ない気が DirectShowと戦うスレ Part 2 pc11.2ch.net/test/read.cgi/tech/1162913156/ ここの誤爆?
664 名前:http:// p1062-ipbf4007marunouchi.tokyo.ocn.ne.jp.2ch.net/ mailto:ura [2008/01/23(水) 16:31:20 ] tbs
665 名前: p1062-ipbf4007marunouchi.tokyo.ocn.ne.jp mailto:ura [2008/01/23(水) 16:34:16 ] tbs
666 名前:655 mailto:sage [2008/01/23(水) 23:25:43 ] >>659 基本的なことなら、もう少し自力で調べてみます。
667 名前:デフォルトの名無しさん [2008/01/24(木) 19:54:53 ] VC++2002 MFC で CFormViewにリストコントロールを配置しています リストコントロールの幅や高さ等を取得したいのですがうまくいきません コントロールのサイズを取得する方法を教えてください
668 名前:デフォルトの名無しさん [2008/01/24(木) 20:13:28 ] 自己解決しました
669 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:28:26 ] VARIANTとCStringの変換について教えてください。 下記のようなコーディングで問題ないでしょうか? //VARIANTからCString CString hoge = newValue.bstrVal; //CStringからVARIANT CString hoge = "hoge"; vaResult.vt = VT_BSTR; vaResult.bstrVal = hoge.AllocSysString();
670 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:42:48 ] それでいいけど、VARIANTからCStringへは、 単にCString hoge = newValueでいけるはず。 あと場合にもよるけど、CComVariant (ATL), COleVarinat(MFC)もよろしく。
671 名前:デフォルトの名無しさん [2008/01/25(金) 20:59:51 ] プロジェクト内のファイルのファイル名を変更する 簡単な方法があれば、教えてください。現在は次の 方法でファイル名を変更しています。 (Visual C++6.0です。) (1) プロジェクトからそのファイルをいったん除外する。 (FileViewでファイルを選択し[編集]→[削除]) (2) エクスプローラでファイル名を変更。 (3) そのファイルをプロジェクトへ再度追加する。 [プロジェクト]→[プロジェクトへ追加]→[ファイル]
672 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:10:10 ] >>671 (1)の後、エクスプローラで操作しなくても、 (3)の追加時にファイル名変更すればいい。
673 名前:671 mailto:sage [2008/01/25(金) 21:17:46 ] >>672 なるほど。ありがとうございました。
674 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:37:17 ] 俺メモ ShowCursor()関数は単純に表示のON/OFFを切り替えるものではない 表示カウンタという意味不明なカウンタを持ってるらしく ON/OFF切り替えるには同じ回数だけtrueとfalseをセットする必要がある 氏ねよMS('A`)
675 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:40:02 ] MSDN見ずにAPIを叩いてはいけないという例。 >Parameters bShow >[in] Specifies whether the internal display counter is to be incremented or decremented. >If bShow is TRUE, the display count is incremented by one. >If bShow is FALSE, the display count is decremented by one. >Remarks >This function sets an internal display counter that determines >whether the cursor should be displayed. The cursor is displayed >only if the display count is greater than or equal to 0.
676 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:53:55 ] 流石にそれで氏ねは可哀想だろ。 とはいえ、自分で使うとしたらラッパ書いて単純トグルにしてしまいそうだけど。
677 名前:デフォルトの名無しさん [2008/01/27(日) 02:53:52 ] FileViewのツリーの中でファイルはファイル名の順に 並ぶようですが、この順序を変更することはできるでしょうか? Visual C++6.0です。
678 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 06:55:10 ] >>675 VSとJaneDoeStyleとブラウザ開いたら重すぎてMSDNなんて見れない、というか見たくない。
679 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:54:30 ] そんなにヘボPCなのかw
680 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 09:41:50 ] 昔は描画するときにマウスカーソル消して描いてたからな。 カウンタはあって当たり前の必須機能だったな。 今だとカーソル消すなんてよほどのことじゃないか?
681 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 10:42:37 ] >>679 メモリが256MiBもあってCPUの速度も2GiHz超えしているという、 世界初のコンピュータとは比べ物にならないほどの高い性能を持ち合わせた俺のマシンが唸る!
682 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:27:12 ] >>680 エロゲで数秒たったらカーソル消すのは必須機能だよ
683 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:33:52 ] ああ、今は動画とかで消しっぱにするってことか ウィンドウのカーソルを見えないやつに差し替えじゃあかんのかな? ゲームは自前カーソルが多い気がするから、別の話か。
684 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:45:29 ] プログラムは無事に完成しリリースビルドしたのですが、 コンパイル済み実行ファイルをテキストエディタ等で開くとエラー時に表示するメッセージや 読み込むファイル名がそのまま見えてしまいます これはセキュリティ上よろしくないと思うのですが見えなくする方法はあるのでしょうか?
685 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:33:51 ] 自分でリソースに定義したやつだったら好きなように暗号化できるだろ
686 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:21:11 ] それが見えて何か困ることでも? まあ隠したいんならテキストを圧縮するなり文字コードに 無駄な数字を足すなりなんなりとすればいい
687 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:25:53 ] そういえば昔exeの中からパスワード探したりしてた 今はネットで探せばたいてい見つかる
688 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:09:44 ] パスワードを探す用途って何?
689 名前:デフォルトの名無しさん [2008/01/30(水) 14:25:22 ] >>684 どうせエラー時に表示するんなら隠す必要もないのでは? あと開くファイル名なんてFilemonでも使えばすぐ分かる.
690 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:31:39 ] 昔の雑誌に掲載されていたアドベンチャーゲームとかは暗号化してたな。 あれは打ち込む人=プレーヤーだからなあw
691 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:05:57 ] VC++6のコンソールアプリケーションで、Ctrl-Cをトラップすることはできますか?
692 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:25:17 ] ごにょぼにょする時じゃーねの?
693 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:29:26 ] >>691 SIGINTのトラップのことなら、SetConsoleCtrlHandler
694 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:17:47 ] シギント
695 名前:デフォルトの名無しさん [2008/01/30(水) 20:26:58 ] C++で 気温 : ○○℃ 湿度 : ○○% 風速 : ○○(m/s) という複数行のパラメータを上書き表示するにはどのようにすれば宜しいのでしょうか? 一行だと"\r"を使ってできたのですが。。。 教えて君で申し訳ありません(>_<) void show() { cout << "気温 : " << a << "\r" ; cout << "湿度 : " << b << "\r" ; cout << "風速 : " << c << "\r" ; } とすると全て上書きされて一行しか表示できませんでした・・・。
696 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:07:04 ] \rを\nに
697 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:15:37 ] 複数行だと、ANSI.SYS組み込み+エスケープシーケンス、 もしくはAPI直呼び出しでもしないと駄目だと思う。
698 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:34:04 ] コンソールAPI使えばいいんじゃねーの?使った事ないからしらんけど。
699 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:34:55 ] 先輩の方々に質問です。 Visual C++ 2008 Expressをインストールして、 mfcのプログラム(サンプルプログラム diblook)をビルドしたのですが、 afxwin.hが見つからないよエラーとなってしまいました。 2008 ExpressにはMFCがついていないんでしょうか?
700 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 06:35:24 ] はい
701 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:19:25 ] Expressにはついてないよ もしついてたから誰も有料のやつ買わないでしょ
702 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:20:53 ] >>701 修正 Expressにはついてないよ もしついてたら誰も有料のやつ買わないでしょ
703 名前:デフォルトの名無しさん [2008/01/31(木) 18:36:36 ] リストコントロールについて質問です。 レポート形式で、カラムヘッダにツールチップを表示したいのですが可能でしょうか? 可能であれば、やり方をお聞きしたいです。 よろしくお願いします。 VC.NET、MFC使用です。
704 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:47:30 ] >>700-702 ありがとうございます。 言われてみればそうですね。商売にも使えるわけですから どこの企業も買わなくなっちゃいますね。 仕方ないのでWin32 Apiでしこしこ書くことにします。
705 名前:sage [2008/01/31(木) 23:16:08 ] VC++2005ExEditionのWindowsフォームを使って簡単なアプリを作っているのですが ある程度行数のある文字列をForm内に出力したいのですがどうしたらよいでしょうか? イメージとしてはDOS窓みたいなものを作りたいのですが・・・どうかご教授お願いします。
706 名前:デフォルトの名無しさん [2008/01/31(木) 23:34:40 ] 適当にプロパティをいじる。
707 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:10:08 ] VC++2008 Expressを使って、コマンドラインベースのプログラムを作っています。 実行時の実行プライオリティ設定したいのですが、どの関数を使えばよいのでしょうか?
708 名前:デフォルトの名無しさん [2008/02/01(金) 16:00:45 ] >>704 もうこのさいだから C++/CLI でフォームアプリにしちゃいな!
709 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:01:55 ] //ChildView.cpp //winmm.libにリンクする #pragma comment(lib,"winmm") ・・・ void CChildView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。 PlaySound("WinXP_Startup",NULL,SND_RESOURCE | SND_ASYNC | SND_LOOP); CWnd::OnLButtonDown(nFlags, point); } PlaySound関数を使いたいのですが、上記のようにコーディングすると error C2065: 'SND_RESOURCE' : 定義されていない識別子です。 error C2065: 'SND_ASYNC' : 定義されていない識別子です。 error C2065: 'SND_LOOP' : 定義されていない識別子です。 error C3861: 'PlaySound': 識別子が見つかりませんでした とコンパイルエラーがでてしまいます。 どのようにすればエラーがでなくなるか、教えていただけないでしょうか。
710 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:16:35 ] #include <MMsystem.h> かな。 WIN32_LEAN_AND_MEANでもいいがMFCだとよくわからん
711 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:11:47 ] >707 SetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS ); みたいな?
712 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:37:14 ] >>707 プロセス単位なら、startコマンドのオプションでもいけるよ。
713 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:34:28 ] テンプレートの有用性と使い道がイマイチ理解できません
714 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:40:22 ] >>713 ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
715 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:04:36 ] いやいや、テンプレートの本質はそこじゃないだろう。 テンプレートの有用性が知りたければboostのソースを嫁。
716 名前:デフォルトの名無しさん [2008/02/03(日) 01:08:22 ] OpenCVをWindows form Applicationで使うための設定の仕方を教えてください。 環境は、Visual c++ 2005 Express Editionです。 ビルドのエラーを解決できなくて困っています。 VCの使い方が間違っていることが原因っぽいのですが・・・ エラー 1>c:\program files\opencv\cxcore\include\cxtypes.h(212) : warning C4793: '__asm' : 関数 'int cvRound(double)' 用にネイティブ コードの生成が発生します 1> c:\program files\opencv\cxcore\include\cxtypes.h(205) : 'cvRound' の宣言を確認してください。
717 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 07:59:00 ] 先日ここで2008 ExpressにMFCがあるか聞いたものです。 Win32を使ってコンソール型のコマンドが完成したのですが、 やはり画面をつけてあげたいなと思っています。 Win32で画面を作るのは敷居が高そうなので(リソースエディタがないなど) 他によい方法があれば採用したいのですが、どんな仕組みがあるんでしょうか。 CLIってのがそうなのかな?心配しているのは、ランタイムパッケージやら DLLをごっそりインストールすることにならないかなんです。 単純な機能のツールをネットで配布するんで、できれば身軽に、余分なものは なしでいきたいんです。そんなわたしにぴったりの何かはあるんでしょうか? 長文失礼しました。
718 名前:デフォルトの名無しさん [2008/02/03(日) 08:48:07 ] 無名 delegate とか Lambda 式とか見てると C# がうらやますぃ. それでも C++ から離れられない俺はどうすればいいですか? boost::lambda でしょうか? C++09 を待てばいいのでしょうか? C# の yield とかもうらやますぃ. LINQ は微妙.なれればいいんだろうな.
719 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 10:55:04 ] >>717 画面はdelphi 6 personalで作ればおk 簡単に作れてランタイムもいらない。開発環境は無料。
720 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:44:01 ] Visual Sturdio.NET 2003でWin32プログラムをデバッグ実行すると、 出力に 'aaa.exe': 'C:\WINDOWS\system32\XXX.dll' を読み込みました。シンボルが読み込まれていません。 というメッセージがたくさんでるんですが、これは何なんでしょうか? ググると問題無いと書いてたんですが、できれば出ないようにしたいです。
721 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:16:52 ] 無理
722 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:37:30 ] gcc用で配布されているコードを, VisualStudio2005でコンパイルしたところ, エラー 1 error C2143: 構文エラー : '{' が ':' の前にありません。 c:\program files\microsoft visual studio 8\vc\include\cmath 18 エラー 2 error C2059: 構文エラー : ':' c:\program files\microsoft visual studio 8\vc\include\cmath 18 といった無数のエラーが出ました. ちなみにcmathはインクルードしておらず, #include<stdio.h> #include<stdlib.h> #include<math.h> #include<complex> だけです. どなたかアドバイス頂けませんでしょうか? C/C++スレでも質問書いたのですが, こっちのスレの方が適切なようでマルチポストさせて頂きました.
723 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:56 ] >>722 cmathを直接includeしてないけれども complexの中でcmathがincludeされてるからなぁ。 で、エラーの原因はその情報だけじゃ分からない。 C2143やC2059はエラー出力に表示されている箇所よりも 前の場所での構文ミスで出ることもあるから。 他の場所で'}'の閉じ忘れなんてのも原因になりうる。 もしかしたらとは思うが、拡張子が.cになっているんじゃないかな? そうなら.cppに変えたらうまくいく可能性が高いな。
724 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:57:50 ] >>720 該当のDLLをリンクからはずせば出なくなると思うけど 必要になったらまたリンクからはずせばいい
725 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:58:44 ] ごめん 必要になったらまたリンクからはずせばいい →必要になったらまたリンクすればいい
726 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:03:31 ] シンボル入れとけばいい
727 名前:722 mailto:sage [2008/02/03(日) 17:15:59 ] >>723 拡張子変えたらこのエラーは解決しました!ありがとうございます! 別のエラー出たのでまた頑張ります.
728 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:18:29 ] >>722 コンソールプロジェクトを作って放り込んでるんなら stdafx.hをインクルードしないとダメかも じゃなきゃプリコンパイル済みヘッダーを使用しないにするか
729 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:19:11 ] うわ、恥ずかしい><もう解決してたのね
730 名前:デフォルトの名無しさん [2008/02/03(日) 19:21:19 ] インクルードガードは#pragma onceでしょうか? それとも#ifndef HOGOHOGE_H_IS_INCLUDEDでしょうか?
731 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:03:20 ] #pragma onceって標準の仕様なのか?
732 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:21:31 ] 標準規格には含まれていないが、 現在は殆どのコンパイラで通るようになっている。gccも。 今は、対応を気にせずに使える段階に入ってるんじゃないかな。
733 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:27:25 ] よくVisualStudio自体の機能かな、で、デバッグ機能が強力だーとか聞くんですが 詳しく解説しているページとかないでしょうか? ブレイクポイントっていうのがそこでストップするっていうのはわかってたりするんですが それの使いどころが判然としなかったり、他の機能に関してもそうです
734 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:18:28 ] つ ステップ実行 ウォッチウィンドウ等で変数の中身を確認しながら実行すれば、 論理的なエラーを発見するのに死ぬほど役立つ。 呼び出し履歴を併用すれば、変数の状態も追いかけ放題。
735 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:21:26 ] ちうか、733は「デバッグ」をどのようにやればいいのかが そもそも明確に判ってないような気がする。
736 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:22:16 ] プログラマ歴20年だけどデバッグ機能ってほとんど 使ったことない。
737 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:26:22 ] 733とは違うが自分もデバッグ方法やVSのデバッグ機能の使い方を知りたいな よい書籍やサイトないですか?
738 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:27:37 ] あんまり自慢にならんね、それは。
739 名前:738 mailto:sage [2008/02/03(日) 21:30:48 ] >>738 は >>736 宛てな。 >>737 まずは、ヘルプの「デバッガの使用方法」に目を通せばいいんじゃね?
740 名前:733 mailto:sage [2008/02/03(日) 21:49:54 ] >>734 ループ部分とかループ回数分確認し続ける、とかなりそうですね・・・ 使いどころが難しそうだ >>735 バグ取りくらいの認識なんで、エラーの行見て修正 論理的なところは紙に全部書きだして直してます
741 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:30:10 ] >>740 ループを抜け出たいなら、ちょうど出た所にブレイクポイントをかけておいて 通常実行をすればいい あと気をつけないといけないのは、DebugモードとReleaseモードの違いね Releaseの場合は、普通はコードが最適化されるので、その都合上 デバッガで追いかけられない場合がある その場合はDebugモードに戻して再実行すること
742 名前:733 [2008/02/03(日) 22:42:26 ] >>741 なるほど、それなら便利そうです まだそういった作業が必要なレベルのものを組んだことがないんで実感が沸かなかったのかな・・ ありがとうございました
743 名前:733 mailto:sage [2008/02/03(日) 22:43:15 ] うわあげちゃったごめんなさいorz
744 名前:デフォルトの名無しさん [2008/02/03(日) 23:41:33 ] visualc++2005express editionをインストールしているんですが、今visualc++2008express editionがでてるじゃないですか。 なので2005をアンインストールして、2008をいれたほうがいいのでしょうか? それと2005と2008の違いを教えてください。
745 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:55:22 ] VCEEについては、そんなに変更はなかったんじゃないかな。
746 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:24:04 ] 新しいものが好きなら2008 安心を得たいなら2005
747 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:34:32 ] iostream系の日本語の処理が、2005はおかしかったって話だけど。
748 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 07:49:46 ] locel
749 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 10:14:59 ] >>736 自分の書いたものしかデバッグしないの? 20年前か、、CodeViewで衝撃受けたころかなー
750 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:14:18 ] デバッグ使えない奴はバグの原因が自分のコードか他人のコードか確認できないから バグを他人のせいにしやすい。
751 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 11:28:08 ] printfならいっぱい入れるけど
752 名前:デフォルトの名無しさん [2008/02/04(月) 12:29:02 ] 誰かご存知だったら教えてください。 VS2005のVC++でWin32ベースのDLLを作成しました。 その後セットアッププロジェクトで レジストリの編集を行うところで戸惑っております。 すでに存在する、複数行文字列値(REG_MULTI_SZ)の値に ある文字列を追加したいのですがセットアッププロジェクト上には 複数行文字列の項目がみあたりません。 セットアッププロジェクトのレジストリ編集では 複数行文字列の値を操作できないのでしょうか? いい解決方法などご存知の方、どうぞよろしくお願いします。
753 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:50:48 ] ここ初心者スレですけど
754 名前:752 mailto:sage [2008/02/04(月) 14:01:06 ] すみません、、、スレを改めます。 失礼しました。
755 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:11:55 ] 学ぼうとする姿勢がある限り人はずっと初心者だってばっちゃが言ってた
756 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:55:07 ] REG_MULTI_SZで検索
757 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:50:43 ] char buff[256]; for (int i=0; i<sizeof(buff); i++) { printf("%c", buff[i]); } をもっと速くなるようにチューニングしたいのですが どのような方法がありますか?
758 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:00:12 ] >>757 それは遅いのか? 本当に? ちゃんと最適化しても問題になるほど遅いのか? OK! それなら、取り敢えずputchar(buff[i])ではどうだろうか。
759 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:01:06 ] buff内にナル文字がないことが保証されているのなら、printf("%.256s", buff)でいいね。
760 名前:757 mailto:sage [2008/02/04(月) 18:27:20 ] >>758 ありがとうございます。 とりあえずputcharにしました。 速くなった気はしないでもないです。 >>759 困ったことにナル文字があります。
761 名前:100 [2008/02/04(月) 18:31:14 ] 先日まで動いていたプログラムを実行したところ、 リソース(ダイアログ)が表示されなくなってしまいました。 原因が全く分かりません。 エラー、警告ともに0です。 実行できていたときから修正などは一切していません・・・何が原因でしょうか? どなたかお分かりの方、お教えて頂けないでしょうか><
762 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:38:36 ] >>760 斯くなる上は、fwrite(buff, sizeof(buff), 1, stdout)だ。 # 変わらんと思うけどねぇ。
763 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:40:54 ] >>760 sizeof(buff)を変数に移して使った方が速いんじゃないかな
764 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:49 ] >>763 sizeof(buff)は定数だから心配なし。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:51 ] >>761 それだけじゃエスパーじゃない限り返答不能です。 ダイアログ呼び出し前後のソースを公開してください
766 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:44:59 ] 質問です。最小化の動作って、指定した座標などに向かって動作させられますか? 可能ならどんな関数を使えばいいか教えて下さい。お願いします。
767 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:48:29 ] >>764 そうなん?てっきり値が変わらなくても毎回サイズ計算するものだと思ってたよ
768 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:52:14 ] >>766 簡単には出来ないと思うけど、自分でウィンドウサイズと位置を制御して アニメーションさせれば似たような事ができると思うよ
769 名前:100 [2008/02/04(月) 18:53:56 ] 申し訳ございません。 ソースは下記の通りです。 int PASCAL WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int Ret; hPrevInstance = hPrevInstance; lpCmdLine = lpCmdLine; nCmdShow = nCmdShow; // Create Dialog Ret = DialogBox( hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DIO_Sample ); return Ret; } 前回実行させて動作確認できたときから何も触っていない状態で、 今日実行させたらリソース画面が出てこなくなりました。 プログラムの問題なのでしょうか?
770 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:57:07 ] >>767 計算するって言ったって、何を計算すると思ったのかね。 まさか、size_t foo = 4; は計算すると思わないだろ? size_t foo = sizeof(int); は? 勿論、size_t foo = sizeof(buff); だって同じことだ。
771 名前:757 mailto:sage [2008/02/04(月) 19:00:30 ] >>762 おぉ!これは速そうですね!
772 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:10:53 ] >>768 そのアニメーションをさせる関数が分かりません; SystemParametersInfoはアニメーションを指定の座標へ行わせるものではないんですよね? なんて検索したら見つかるでしょう・・
773 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:32:34 ] 何がしたいのかいまいち分からないな。 既定の動作だと最小化するとタスクバーに入るけど それをどうしたいの? もしかしてタスクトレイに入れたいとか?
774 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:33:40 ] >>772 定期的にSetWindowPosでも呼び出して座標とサイズを指定してやればいいんじゃないかと
775 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:50:10 ] >>770 計算というか、中にある型やバッファのサイズの値を調べて取得する処理って事かな 内部的動作に詳しくないから、そういう処理は別になくて、バイナリコード的には 調べたサイズの値が直接入っているかもしれないけど。
776 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:08:44 ] wikiをみると「コンパイル時に計算される」とあるね。 てことはバイナリコード的には取得した結果が直接入ってるって事か ttp://ja.wikipedia.org/wiki/Sizeof
777 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:14:24 ] >>773 そうです。タスクトレイへアニメーションつきで最小化をさせようと考えてます。 今、タスクトレイの座標取得をし、GetWindowRectで自ウィンドウのサイズを取得し、 DrawAnimatedRectsで自ウィンドウ位置からタスクトレイへアニメーションを考えてやってるんですが、少々問題がありまして。 文で説明するのが難しいんですが、ウィンドウは最大化状態ではないのに、アニメーションがウィンドウ一杯のメニューバーの大きさから タスクトレイへ向かってアニメーションされてしまいます。それを自ウィンドウサイズに合わせる方法が全く分からず悩んでます。 >>774 DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか?
778 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:15:53 ] XPでの最小化の挙動を見ると、タイトルバーだけが縮小しながらタスクバーに向かう感じだな 同じような挙動にしいなら、タイトルバーサイズのサブウインドウを用意して それを縮小アニメーションさせつつ指定座標に移動させていき、指定座標にたどり着いたら 元のウィンドウを非表示にする必要がある。 何に使うのかは知らないけれど。
779 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:30:35 ] >>777 よくわからんけど、>>778 の一行目みたいなウィンドウズ準拠の動きは嫌だってこと? ウィンドウ全体が縮小しながら移動するようにしたい? そうなるとやっぱ定期的にSetWindowPosでセットするしかないんじゃない?
780 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:39:35 ] >>777 >DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか? GetWindowRectで取得したRECT構造体のデータを使いたいって意味なら RECT構造体っていうのは、 left→左上座標 X top→左上座標 Y right→右下座標 X bottom→右下座標 Y の4つで構成されてるデータ。 SetWindowPosにはleft、top,、right - left、bottom - top の値を設定すればいい
781 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:41:16 ] >>779 >>778 のような動きをさせたいんで回答としては有難いものなんですが、タイトルバーサイズのサブウィンドウを用意する必要があるんでしょうか? DrawAnimatedRectsのRECT構造体はタイトルバーサイズの数値が入ってればいいってものではないんですか? 開始点のRECTには、タイトルバーサイズの数値がそれぞれのメンバに入ってるんですが、 何故か最大サイズのタイトルバーからアニメーションが始まります・・ てゆーか、新しくそれ用にサブウィンドウを用意するのが良く分からない・・・w それもまた調べなければですね^^;
782 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:43:44 ] >>780 レスが食い違いました。 ちなみになんですが、SetWindowPosってのはウィンドウレベルの指定と、ただ画面を動かすものではないんですか?
783 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:46:58 ] SetWindowPosはサイズも指定できるよ というかDrawAnimatedRectsAPIで普通に>>778 の動きになるような気がするんだけど 実際にそういうの作ったことないから俺は発言控えた方がいいな。 混乱させるだけみたいだし。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:09:18 ] >>782 と、言いつつ、試しにコレだけやってみたけど普通に動いてるよ なんか範囲の設定が間違ってるんじゃない? RECT rect, rect2; GetWindowRect( hWnd, &rect); rect2.left = 750; rect2.top = 580; rect2.right = 800; rect2.bottom = 600; DrawAnimatedRects(hWnd, IDANI_CAPTION, &rect, &rect2 );
785 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:17:00 ] >>784 ありがとうございます。 私のは何が違っているのか判明しました。 上ではタスクトレイの座標を取得し、と書きましたがトレースしたら取得できてませんでした;; HWND tray; RECT stray; tray = FindWindow("ModelApp","SysPager"); GetWindowRect(tray,&stray); では取得できてませんでした。 DrawAnimatedRectsの方の使い方や考え方はあってたのに、こっちが違ったとはorz FindWindowはこの記述じゃいけないんですかね? ModelAppはエントリポイントで指定したClassNameです。
786 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:29:37 ] >>785 参考になるかな?これまたやった事ないんで確証はないけど ttp://www.geocities.jp/g_e_k_o_g_e_k_o/column/column.html
787 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:24:42 ] >>786 取り敢えずなんですが、以下のように記述してやってみましたが出来ませんでした; HWND getTrayToolbar(HWND hToolbar) { HWND hTrayWnd, hNotifyWnd, hSysPager; hTrayWnd = ::FindWindow("Shell_TrayWnd", NULL); if (hTrayWnd == NULL) return NULL; hNotifyWnd = ::FindWindowEx(hTrayWnd, NULL, "TrayNotifyWnd", NULL); if (hNotifyWnd == NULL) return NULL; // OSの違いを吸収 // SysPagerが取得できなかったときは、win2000,Meと仮定し、 // TrayNotifyWnd直下にToolbarWindow32がある可能性にかける。 hSysPager = ::FindWindowEx(hNotifyWnd, NULL, "SysPager", NULL); if (hSysPager == NULL) hSysPager = hNotifyWnd; hToolbar = ::FindWindowEx(hSysPager, NULL, "ToolbarWindow32", NULL); return hToolbar; } HWND tray; RECT stray; getTrayToolbar(tray); GetWindowRect(tray,&stray); これでstrayに座標が入ってるはずなんですが、表示してもちゃんとした数値は入ってませんでした。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:31:40 ] >>786 変に改造したのがよくなかったです。 HWND getTrayToolbar(HWND hToolbar) { を HWND getTrayToolbar(void) { に戻し、 getTrayToolbar(tray); を tray = getTrayToolbar(); にしたところ取得できました。 初心者の分かりづらい質問にも親切に答え、参考サイトを調べて頂いたりトレースして頂いたり本当に有難うございました!
789 名前:デフォルトの名無しさん [2008/02/04(月) 23:38:23 ] Visual C++6.0 (WinNT4.0)で古いシステムのメンテナンスをやることになって しまいました。VB5.0/6.0やVB.NET,C#.NETは使ってきましたがC++を実務で するのは初めてです。 ソースを修正してデバッグモードで実行しても、デバッグウィンドウで表示される 結果は元のソースでの処理結果のままなのですが、こういうものなのでしょうか。 (ビルドして生成したDLLは修正したとおりに動く) また、ビルド時に構成でReleaseとDebugが選択できますが、これの違いは なんでしょうか。構成をDebugにしてもDLLは生成されますが、本来はReleaseで 作るべきものなのでしょうか。
790 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:13:20 ] Debugビルドだと色々なエラーチェック用のマクロが定義されたり、 メモリ領域を利用する前に特定の値で初期化したりしてバグを発見しやすくしたり、 実行ファイルにデバッグ用の情報を埋め込んだり、最適化を無効にしてデバッガで追いやすくしたり。 つまり、デバッグ向けで速度が遅い、実行ファイルがでかい。 なので開発はDebugビルドで製品として出す場合はReleaseビルドかな。普通は。 VC6.0しらないし、デバッグウィンドウが何を指して言っているのか分からないけど Releaseビルドだとうまくデバッグできないかもね。
791 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:31:39 ] 済みません、教えてください。 VC++で作ったプログラムで、例外が発生したときにデバッグ情報をファイルに 書き出すようにしたいと思うのですが、変数領域についてよく分からないのです。 ファイルアクセスとか例外が起きそうなところに__try,__exceptブロックを作って GetExceptionInformation()で例外情報を取り込んで、 レジスタの値を調べて、スタック情報を記録するところまではできました。 ただ、これだけだとポインタの指すデータが残らないので不便だと思い、 データの領域も記録しようと思うのですが・・・どこら辺を記録すればいいのか 分かりません。 いろいろ調べたところ、.dataセクションと.bssセクションの領域はファイルヘッダから 計算できる(他に方法があれば教えてください)ことは分かったのですが、ヒープ領域の アドレスってどうやって調べればいいのでしょうか? あと、変数って.dataセクションと.bssセクションとスタックとヒープ領域に作られる と思ってたんですけど、他の領域にも作られるんですか? 済みませんが、よろしくお願いします。
792 名前:789 [2008/02/05(火) 00:36:53 ] >>790 ご回答ありがとうございます。 やはりReleaseビルドですべきですか。 ちなみに今、デバッグウィンドウに処理結果が反映されない、といっているのは Debugビルドのものです。
793 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:44:59 ] >>792 デバッグウィンドウってのは自動変数とかをのぞく奴? ブレークポイント仕掛けてステップ実行してけば普通は値が反映されると思うけど。 正直よくわからん。
794 名前:789 [2008/02/05(火) 01:03:15 ] >>793 そう、普通にブレークポイントで止めて、ステップ実行しながら変数の値を 追っかけていくのですが自分が追加したロジックを無視してしまうのです。 DLLを生成するとそのロジックを反映したもので動作するので不思議です。
795 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:10:35 ] 支障がないならリビルドしてみるとか・・
796 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:14:45 ] リリースビルドで無視するのなら>>741 の理由で普通にある事なんだが デバッグビルドで無視するのは本当に飛ばしてるのか、 ブレイクポイントが適切な行に設定されてないのかどっちかかな
797 名前:789 [2008/02/05(火) 01:14:58 ] >>795 とりあえず、本来は修正結果がデバッグでも反映されるべき、っていうのは わかったのでまた試してみます。ありがとうございました。
798 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:22:13 ] >>788 その引数の渡し方だと、実際に引数として渡した変数そのものではなくて 別の変数が関数内で作られてしまうから取得はできない そういう場合は、HWND getTrayToolbar(HWND &hToolbar) と記述すると、実際に渡した変数にそのまま格納される じゃなければ、HWND *lphToolbar などとしてポインタを引数で渡すとか。
799 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 06:31:15 ] Debugビルド = VisualStudioのデッバッガ用のビルド デバッガ入れてない環境では動作しないしない可能性がある。 ビルドしたプログラムの配布禁止(ライセンス違犯)
800 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:19:38 ] >>799 違犯ってなんだよ。違反なら判るが。 >>797 古いままのDLLが動いているって話か?
801 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:33:39 ] 関数名を入力すると引数とかがポップアップ表示される機能は、プロジェクトを作成しないと働かないみたいですが、 cppファイルとかを単体で開いた時にも機能するようにはできないでしょうか?
802 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 17:22:36 ] 同じ関数名だってリンクされるものが違ったら別の関数なんだから そんなの無理に決まってるだろ
803 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:46:24 ] リンクとか関係あるの?
804 名前:デフォルトの名無しさん [2008/02/05(火) 21:48:18 ] goto label
805 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:16:22 ] >>801 秀丸に単語補完機能がある。それで似たようなことはある程度可能。 と言ってもこういう質問がでる時点でIDEとかエディタとか知識が少なめに感じる・・・
806 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:48:18 ] >>803 同名の関数を保持したライブラリやオブジェクトがハードディスク上に複数あるとする。 そのいずれも呼び出し側のcppファイルとは異なったフォルダにある。 さて、呼び出し側のcppファイルを解析するだけで、複数ある同名関数の中の どれを呼び出せばいいのかがわかるだろうか?
807 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:02:48 ] ヘッダだけで情報は充分じゃねーの。 インクルードパスさえなんとかなればな。
808 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:59:56 ] まあどうにもならないけどな。
809 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:17:59 ] >>806 どれを呼び出せばいいかなんて分かる必要があるの? 引数ならヘッダ見れば分かるし、というか分からないとコンパイルできないだろ パスの設定は見落としてた
810 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:14:00 ] VCのIDEはプロジェクトを作成して使う前提なんだから 嫌ならIDE使わなきゃいい
811 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:06:06 ] >>809 ごめんごめん。 ライブラリやオブジェクト ↓ ライブラリやオブジェクト、それに付随するヘッダ という事で。
812 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:30:39 ] しかしVSはcppとかの拡張子に関連付けたりするんだよな。 インストール直後いつものエディタが起動しないのであせるw
813 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:34:27 ] >>809 どうしてもcpp単体で見られるようにしたいと言うんなら 自分で検索するインクルードヘッダの参照パスを指定できるエディタでも作ればいいよ。
814 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:35:29 ] >>812 インストール時に関連付けの設定できなかったっけか
815 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:41:22 ] >>814 できる、、けどOSから順番に入れなおしてるとインストール順によって 状況が変わるみたい。
816 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:15:59 ] >809 だからプロジェクト作らないとコンパイルもできない。 プロジェクト作らずにコンパイルする方法もあるが
817 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:47:41 ] Unixでpthreadを使ってマルチスレッドプログラムを作ってきました。 VisualC++では何を使ってマルチスレッドにするのが一般的ですか?
818 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:50:07 ] createすれっど
819 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:44:23 ] >>817 状況によって何を使うべきかが変わるので 一般的とかそんなの無い。
820 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:09:27 ] 強いて言うなら、どれも結局Win32 APIのCreateThreadに行き着く。
821 名前:デフォルトの名無しさん [2008/02/06(水) 19:11:48 ] メニューに関して質問です。 CreateMenu(), AppendMenu() を使用して "ファイル(&F)" [POPUP] (hMenuFile) "ファイルを読み込み" セパレータ "履歴" [POPUP] (hMenuRecent)→ "&0 " + path セパレータ 終了(&X) な感じに作成し、履歴からポップアップされるpathを選んだ時に GetMenuItemRectで位置を取得しようとするのですが、 インデックスを試しに0にして値を調べて見ると、 hMenuFileの時でもhMenuRecentの時でも同じ、つまり"ファイルを読み込み"の位置情報しか取得しません。 インデックスを1にすると、0の時のtopに履歴からポップアップされたメニューの縦幅がプラスされた値になります。 ちなみに、上の二つのメニューハンドル値は、ちゃんと違う値でした。 色々条件を変えながらやってるのですが、どうしても path にあたる位置情報取得出来ず、、どの辺が間違ってるのでしょうか?
822 名前:デフォルトの名無しさん [2008/02/06(水) 20:55:36 ] 今DXライブラリをインストールとMicrosoft Platform SDKもダウンロードしてライブラリを使うためにhomepage2.nifty.com/natupaji/DxLib/dxuse_vc2005express.html#R3 を参照にして設定してたんですが、 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ WaitKey() ; // キー入力待ち DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } で、------ ビルド開始: プロジェクト: test2, 構成: Debug Win32 ------ コンパイルしています... DrawPixel.cpp リンクしています... LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。 ビルドログは "file://c:\Documents and Settings\user\My Documents\Visual Studio 2005\Projects\test2\Debug\BuildLog.htm" に保存されました。 test2 - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== となって進みません。どうすればいいのでしょうか? よろしくお願いします。
823 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:13:07 ] >LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。 そのライブラリをリンクしてください
824 名前:デフォルトの名無しさん [2008/02/07(木) 08:57:44 ] ソリューションをビルドするとき,複数のプロジェクトを 依存関係に注意しながら並列にビルドすることができますよね? 一つのプロジェクトに含まれる複数のコンパイル単位を 並列にコンパイルさせるということは VC++ の IDE では 無理なんでしょうか? GNU make だとできるんですが,できれば IDE で できればいいなと思っています.
825 名前:824 [2008/02/07(木) 09:07:37 ] Visual C++ 2008 からは /MP があることを発見したのですが, これって /Yc や /Gm と競合するんですね. /Yc は別途プリコンパイルヘッダを作ってやればいいだけなのですが, /Gm ってはずしちゃうと逆効果なのかなぁ. /Gm の効果をいまいち実感できていないのではずして /MP 使った方がいいですかね?
826 名前:デフォルトの名無しさん [2008/02/07(木) 09:40:24 ] //あいうえお class Aiueo{ 定義 }; のように書いておけば IntelliSense で Aiueo のインスタンスを ポイントしたときに「あいうえお」も含めて表示してくれたり しませんかね? C++ ではコード内のコメントでドキュメンテーションするのは 無理なんでしょうか? C# だとその辺の機能があるんですが・・・
827 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:05:59 ] >>825 使った方がいいですかねじゃなくてさ 使ってみればいいじゃない
828 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:27:42 ] 本人に違いがわからないならどっちでも同じこと
829 名前:デフォルトの名無しさん [2008/02/07(木) 13:17:27 ] カット&ペーストなどによりインデントの違う コード(タブが 2 と 4)が混在しているとき、 一気に整形し直すことってできないでしょうか? C#では貼り付けた時に自動的に整形してくれるのですが C++では無理ですか?
830 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:26:29 ] C++は知らないけど VC++のエディタでできたと思う
831 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:41:29 ] C++の質問はC++スレですればいいよ
832 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 13:47:20 ] >829 CでよければK&Rにタブをスペースに変換する演習問題があったよ
833 名前:デフォルトの名無しさん [2008/02/07(木) 13:51:19 ] >>831 Visual C++ の IDE のエディタでの話です
834 名前:デフォルトの名無しさん [2008/02/07(木) 15:09:09 ] IntelliSenseでメンバーの補完をしようと一覧を 出しているとき private や protected のメンバを 一時的に隠したいとかできますか? どうせアクセスできない基底クラスのメンバがずらずらと・・・
835 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:45:42 ] そんなことができるって話は聞いたことないです
836 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 19:40:58 ] >>829 Alt + F8 かな。
837 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:18:48 ] >>834 >一時的に隠したいとかできますか? 「一時的に隠したい」と願うことはできます。
838 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:32:02 ] Visual Studio 2005を使ってるんですが、 F5でデバッグ開始をすると一瞬だけ 「オブジェクト テスト ベンチ」 とタイトルバーに書かれたウィンドウが表示されます。 これを非表示にする設定などありますか?
839 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:42:50 ] 出ましたお得意揚げ足取り
840 名前:ああ [2008/02/08(金) 01:14:26 ] [質問]マウスクリックすると、そのクリックされた座標にビットマップでつくったキャラクターが移動するといったものを作りたいです。 OnTimer(UINT nIDEvent)やOnLButtonUp(UINT nFlags, CPoint point) にいろいろ記述してみましたが、うまくいきません。どなたか教えてください!
841 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:19:56 ] >>838 Ctrl+F5 or DOS窓からEXEを直接実行
842 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:27:52 ] 揚げ足取りされるのが嫌なら正確な日本語を書けるように頑張りましょう
843 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:31:45 ] >>840 そのマウスクリックとやらが、どこをクリックするのかによっても変わってきます。 いろいろ記述してみましたとは、何を記述したのでしょうか。 上手く行かないというのは、何が上手くいかないのでしょうか。 その質問で答えが返ってくると本気で思っているのですか?
844 名前:デフォルトの名無しさん mailto:はげ [2008/02/08(金) 01:39:20 ] >>842 揚げ足取ってもいいけど答えになってないならレスしなきゃいい 自分はわかってるような言い方して結局説明しないとかね そんならとっととこのスレから消えればいいじゃん
845 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:41:10 ] いいからあげんなよはげ。 揚げ足取られて悔しいのはわかるが見苦しいだけだぞ。
846 名前:ああ [2008/02/08(金) 01:55:33 ] >>843 指摘ありがとうございます。 記述した内容を載せようと思ったら 行が多すぎるとのエラーがでたので分けてかきます! ////////////////////////////////////// x1,y1はBITMAPキャラクターの座標です。 x2,y2はクリックした位置の座標です。 ////////////////////////////////////// void CMiyazaki_anime1View::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください SetTimer(ID1, TIMER_TEXT1, NULL);//テキスト1を処理するタイマーセット CView::OnLButtonUp(nFlags, point); }
847 名前:ああ [2008/02/08(金) 01:56:37 ] つづき! void CMiyazaki_anime1View::OnTimer(UINT nIDEvent) { // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください if(nIDEvent == ID1){ //IDによって処理を変える if(x2>x1 && y2>y1){ for(i=10,j=10;i<=x2-x1,j<=y2-y1;i++,j++){ x1+=i; y1+=j; } CRect rc; GetClientRect(&rc); bmpID = (bmpID+1) % 3; //表示するBMPを変更する } と今は記述しています。 OnTimerのif文に関しては、このときの条件で成功したらさらにif文を追加 しようとおもったのですが、失敗したためこれしか書いていません。 また、これで実行すると、キャラクターがいっきにマウスクリックした場所に 移動してきてしまいます。 キャラクターが歩くようにスムーズに動いてほしいです。 ちなみにクリックする場所はウインドウ内です。
848 名前:デフォルトの名無しさん [2008/02/08(金) 09:38:34 ] msdn2.microsoft.com/en-us/library/aa448631.aspx コード中のコメントを IntelliSense で表示させる機能は Visual Studio 2005/2008 にはついていないの?
849 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:44:07 ] TODOのコメントはそこに何か書いたら消せよw 少なくともここにあげるときくらいは。 for文の判定式のカンマは意味があるのか?
850 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:28:42 ] >>847 MouseButtonDownで、マウスの位置をメンバ変数に保存する。 Timerイベントが発生するたびに保存した位置に少しづつ移動させる。
851 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:33:56 ] VC++6.0とSDK。新規ダイアログ挿入からダイアログリソースを操作 出来ますが、クラスウィザードを使おうとするとオブジェクトIDが 出ないので何もできないです。解決方法はありますか?
852 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:17:44 ] 何をやりたくてクラスウィザードを使おうとしてるわけ? クラスウィザードが何かわかってる?
853 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:09:11 ] やりたいことはデータの受け取り。オブジェクトID(IDD_EDIT1みたいなの。) が出ないからメンバ変数が設定できずに値のやり取りが出来ない。 エディトボックスから数値の受け取りが出来れば方法は何でも良いけど。
854 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:13:30 ] >>851 MFCクラスの作成>CDialogで作れる。
855 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:47:02 ] 挿入 、クラスの新規作成、からGenericクラス以外選択できない のですがMFCクラスの作成はどうすればよいのでしょうか?
856 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:08:10 ] >>855 MFCプロジェクトで無いなら諦めろ。 Express版は論外。
857 名前:821 [2008/02/08(金) 20:41:10 ] 他のレスに埋もれてしまったみたいですが、 >>821 のような状況が未だに解決出来ず、助言頂けませんでしょうか。。
858 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:28:37 ] 読む気がしないからスルーだろ
859 名前:838 mailto:sage [2008/02/08(金) 21:36:20 ] >>841 さん ありがとうございます Ctrl+F5 or DOS窓ではなくF5の時出さないようにしたいんです。 一瞬しかでないんで、バーをクリックして消そうとしたんですが無理だったんで。 デバッグ中に表示→その他のウィンドウで消そうかと思ったんですが、 デバッグ中だけ「オブジェクト テスト ベンチ」の項目もなくなっていて… F5の時でないようにするのは無理なんでしょうか? 質問の仕方が悪くてすいません。
860 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:47:22 ] スルーだな
861 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:52:21 ] その問題にメリットが感じられないので興味がわかない。
862 名前:デフォルトの名無しさん [2008/02/09(土) 00:25:56 ] >>853 回答ありがとうございます! 「Timerイベントが発生するたびに保存した位置に少しづつ移動させる。」 ときの記述法が分かりません。ただ単に動かすのはx+=10;(xはキャラクターのx座標) ですよね? 今の場合はどのように記述したらよいのでしょうか?
863 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:44:53 ] ゲームかなんかか? キャラクターを移動させるのは基本中の基本だから それが分からんとなるとどうにもならん。
864 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:29:44 ] 数学の教科書でも引っ張り出してきて 一次関数でも復習したらいいんじゃないかな
865 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:34:22 ] >>862 それだと一回OnTimerが呼ばれただけで for内でクリック座標まで足してしまってるでしょ? int vx; vx = x2 - x1; if(vx > 10) vx =10; //10以上進まないようにする else if(vx < -10) vx = -10; x1 += vx; これで良いと思う。 ※x1、x2がintであると仮定してる
866 名前:デフォルトの名無しさん [2008/02/09(土) 05:50:34 ] >>865 どうもありがとうございます!865さんの書き込みがある前に自己解決しました。 でも、丁寧に指摘していただきありがとうございました☆
867 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:47:54 ] visual c++ 2008で猫でもわかるプログラミングのwindows SDK編 イントロダクションにあるプログラムをコンパイルするにはどうしたらいいですか maicrosoft SDKsにパスを通す設定はしてあります エラーがでてビルドできません
868 名前:デフォルトの名無しさん [2008/02/09(土) 09:37:53 ] >>867 なんでエラーメッセージを書かないんだ?
869 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:45:38 ] >867 そのプログラム書いたやつに直接質問しろ なんで糞サイトの尻拭いしなきゃならんのだ
870 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:57:40 ] >>867 >エラーがでてビルドできません エラーが出ると言いながら内容を書かずにいる 回答が欲しけりゃ隠蔽すんなよボケ
871 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:19:35 ] 猫でもの最初の方はVC5で相当古いからそのままじゃエラーでるよ あえて使う理由がなかったらあきらめて他のにした方がいい。
872 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:34:56 ] 一応、VC++ 2005でコンパイルできるサンプルが別ページにある。 www.kumei.ne.jp/c_lang/net2005/sample.htm
873 名前:867 mailto:sage [2008/02/09(土) 10:59:24 ] >>872 解決しました
874 名前:デフォルトの名無しさん [2008/02/10(日) 04:11:03 ] >>870 いちいち人を見下す発言するな ネットでしかエラそうにできない奴が
875 名前:デフォルトの名無しさん [2008/02/10(日) 07:45:12 ] >>874 お前もな・・・
876 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:48:13 ] >>874 >>870 の書いている事は正論だが。 見下されるのが嫌なら自力でなんとかしろ
877 名前:デフォルトの名無しさん [2008/02/10(日) 11:46:03 ] >>876 確かに正論だが、最後のボケはいらんだろ
878 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:07:57 ] hWndってなんて読むの?ふわんど?
879 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:19:40 ] h: ハンドル Wnd: ウィンドウ 読み方なんて無いと思うぞ
880 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:30:29 ] あえて読むならウィンドウハンドル
881 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:47:31 ] 頭の中ではエッチウンドと読んでる
882 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:50:58 ] hってハンドルかー だからハンドルインスタンスなのか ヒンスタンスかと思った
883 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 12:54:15 ] >>881 フワンドのほうがよくね? なんかつっかかるぞそれ
884 名前:デフォルトの名無しさん [2008/02/10(日) 12:55:27 ] h=はげ wnd=風 つまり、海原はるか師匠のことだったんだよ! blogimg.goo.ne.jp/user_image/41/86/2b9eb588661509edfbbb4b14947138aa.jpg
885 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:31:40 ] ちいおぼえた
886 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:20:42 ] えいちうぃんどと読んでる.意味的にこれが一番正しい
887 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:13:27 ] ウインドウハンドラじゃねえの??
888 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:47:56 ] 2005EEから2008Proに乗り換えたんですが、 いずれもReleaseビルドで実行速度を優先にしても 2008の方がexeのサイズが40kB程大きくなってしまいます 原因として考えられることは何でしょうか
889 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:28:10 ] ありすぎて困る
890 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:29:12 ] EE→Proか 出世したな
891 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:46:44 ] >実行速度を優先にしても >2008の方がexeのサイズが40kB程大きくなって なんでサイズ優先にしないの?
892 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:56:34 ] DLLからスタティックリンクに変わっていたってオチな気がしないでもない。
893 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:07:35 ] というか、なんでコンパイラバージョン変えてバイナリサイズが同一とか 思えるんだろうか?
894 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:17:58 ] コンパイルする時間でバイナリが変化しうるのにバージョンが変わったらファイルサイズくらい変わるだろ。 処理時間も当然変わるし、へたすりゃ潜在的なバグが顕在化するかもしれない。 むしろ一切変わらなかったら何を間違ったんだ!?ってなるようなことだと思うが・・・
895 名前:デフォルトの名無しさん [2008/02/10(日) 23:47:43 ] VC++ 2003.NETでビットマップをインポートして追加したんだけど、 なぜか実行してもそのビットマップが表示されません。 インポートじゃなく、新規作成でビットマップを追加すると表示されるのに・・。 なぜでしょう?
896 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:19:40 ] >>895 インポートしたビットマップと 新規作成したビットマップの色数は同じ? 違うなら同じにしてみたらどうなる? 後、表示ってのは自分で表示してるの? それともツールバーとかピクチャとかのコントロールで表示させているの?
897 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:37:01 ] Visual C++のMFCプロジェクトにおいて、 Unicode ReleaseとUnicode Debugのプロジェクト設定を追加するにはどうしたらいいの? できれば非UniocdeのReleaseとDebugは残したままで「追加」がうれしいのだが。 過去だれかがうまいことやってたの見たことあるけど、 自分でやってみたらどうやっていいかわからなかった。
898 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:03:15 ] >>897 事故レス。 ビルド構成で追加してUnicodeと_Unicode入れればおk 簡単ですた
899 名前:デフォルトの名無しさん [2008/02/11(月) 02:37:41 ] >>896 お返事ありがとうございます! 色数は同じです。 sampleBMP.LoadBitmap(IDB_SAMPLE);でリソースを読み込み、 OnDraw関数内で BITMAP bmp; sampleBMP.GetBitmap(&bmp); CDC bmbkDC; bmbkDC.CreateCompatibleDC(pDC); CBitmap *old = bmbkDC.SelectObject(&sampleBMP); TransparentBlt(bkDC, x1-bmp.bmWidth/2, y1-bmp.bmWidth/2,bmp.bmWidth, bmp.bmHeight,bmbkDC, 0, 0, bmp.bmWidth, bmp.bmHeight, RGB(255, 0, 255)); とし、画像を表示させようとしています!
900 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 04:53:41 ] 戻り値はどこがおかしい? デバッガ使ってる?
901 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:52:27 ] ふと立ち寄ったが、役に立つ情報がひとつもないな。 素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう いかにも2chらしい愉快なスレだな。。。 ざっと見るだけでも > 違犯ってなんだよ。違反なら判るが。 > 見苦しいから汚いコード貼らないでくれる? とか、いびり専門の粘着キモオタ。ゆとり世代はマジ糞だな。 質問者も聞くところがなくて困ってるんだろうが > すいません、この質問が終わったらよそに行きます。 > 見逃してください。 とかこびてるところ見ると痛々しい。なんでそこまで。。。 ネット上の我慢だと思って一時的にこびて聞いても、ほとんどたいした情報得られないのは スレ斜め読みするだけでも明らかだから、職場とか友達とかに聞いたほうが絶対いいよ。 2chもスレによっては技術系でも和気あいあいとやってるとこあるんだが、 ここは落ちるところまで落ちてる。 役に立たないくせにスレが排他的に立っていること自体が害悪。 せめてIDでも表示されるようになれば、少しは浄化されるんだろうな。 そう思わないか?
902 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:55:03 ] まぁ >素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう まさにこういうクズしかいないから仕方ない
903 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 15:58:57 ] そういえば、コーディング関連のMLとかいろいろあったよ。 俺も若い頃はそういうとこ入って、聞いたり教えたりしてた。 そっちのほうがいいんじゃないか。 www2.ocn.ne.jp/~links4pg/sub89.htm こんなのとか。
904 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:34:01 ] ID表示くらいで浄化されるわけないと思うがな。 せいぜいNGIDができて便利だなというくらい。
905 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:41:25 ] >901 お前が親切に対応してやれよ あれは自分が興味ある質問には答えてるよ
906 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:14:00 ] >>901 まあ落ち着けよ ふと立ち寄ったにしてはやけに饒舌だなw
907 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:51:48 ] こんな場面になんだけど、 VC++2008では、VC++2005にあった woutのlocaleのバグって直ってる? 持っている人教えて。 内容は↓ ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=250724&SiteID=7
908 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:04:27 ] 入門書読んでたらオーバーフローって単語が出てきたんだけど これってもしかしてすごいやばいんじゃ・・・ 技術があればいくらでもメモリを書き換えてすき放題できちゃうような気がするんだけど 本には気をつけろとしか書いてないんだけど、もしかしてVC++側でチェックしてくれてないの? っていうか一回ミスしたらパソコン動かなくなるんじゃ・・・VC++6.0だけど大丈夫だよね?
909 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:06:32 ] それはVC++の問題じゃなく言語の問題だからねぇ。
910 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:22:28 ] >>907 STLは正直詳しくないけど、最後から二つ目のレスのコードが動けばOKって事で良い? なら、imbueの前の行にclear挟む必要があったけど、きちんと日本語が出力されてたよ。 ちなみにVC++2008EEで試した。 個人的には、ページ単位のホイールスクロールで即落ちをさっさと直せと問い詰めたい。 逆方向に一行とか生易しいレベルじゃねえよ、これは。
911 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:26:34 ] >>908 悪意なく起こってしまった分に関しては、 OSにプログラムが強制終了させられるだけ。 メモリの中ならいくらいじったってプロセス終了、 最悪でもOSの再起動で問題なし。
912 名前:207 mailto:sage [2008/02/11(月) 21:08:45 ] >>910 ありがと。
913 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:23:42 ] woutなんて誰も使わないからバグっててもどうでもいい
914 名前:デフォルトの名無しさん [2008/02/11(月) 23:30:38 ] vistaでVC++2008をインストールして下のプログラムを書きましたが、 '#include "stdafx.h"' をソースに追加しましたか? というエラー がでます。 どうすればいいでしょうか? #include <stdio.h> int main(void) { printf("hello"); return 0; }
915 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:54:09 ] #include "stdafx.h"をソースに追加してください
916 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:00:25 ] プリコンパイルヘッダを使わない設定にしてください
917 名前:デフォルトの名無しさん [2008/02/12(火) 23:25:20 ] >>916 さん、解決しました、ありがとうございます
918 名前:デフォルトの名無しさん [2008/02/12(火) 23:25:36 ] VC++2005でプログラムを作ってネットで無料公開したいのですが、新規プロジェクトの作成で困ってます。 CLRのwindowsフォームアプリケーションとWin32のWindowsアプリケーションは、 どう違うのでしょうか?どのへんに注意して選べばいいか教えてください。 たとえば、GUIの作りやすさとか人のマシンで動かす時に必要なランタイムとか機能の制約とか。。。
919 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:30:37 ] VC++ 2005のCLRアプリケーションは実行に.NET Framework 2.0が必要。 Win32アプリケーションは、大多数のWindowsアプリケーションと同じ 普通のEXEファイルが出来上がる。 といってもVC++ 2005ランタイムが必要だけど、これは.NET Frameworkに比べれば小さい。 GUIの作りやすさはCLRに軍配が上がるけど、それだったらC#使えよと思う。
920 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:43:24 ] VC++ 2005ランタイムってなんぞ?
921 名前:918 mailto:sage [2008/02/12(火) 23:49:04 ] >>919 さん 数日調べててわからなかったので、ものすごく助かりました。 どうもありがとうございました! コンピュータ音痴でもセッティングしやすいほうを選ぼうと思います。 Win32アプリケーションのほうは、GUIを作るにはリソースエディタが必要なんですよね!? 次はその辺を勉強してみます。
922 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:02:11 ] 別に自分で手書きで.rcファイルとIDつくってもいいぞ どうせテキストファイルだ
923 名前:918 mailto:sage [2008/02/13(水) 00:10:21 ] >>922 手書きする技量が。。。 テキストなんて、、、ないですかね。
924 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:38:43 ] >>923 >>1 の猫でものWindows SDKの部分をまずは読んでみたら?
925 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:44:04 ] >>923 リソースエディタがないってことはExpressEditionってことかな? フリーのリソースエディタならXN Resource Editorというのがあるよ。 www.wilsonc.demon.co.uk/d10resourceeditor.htm 他にもあったけど失念。
926 名前:918 mailto:sage [2008/02/13(水) 02:00:45 ] >>924 さん そこがリソースに関係した記事なんですね。勉強になります。ありがとうございます。 >>925 さん Expressです;;XNResourceEditor試してみます。ありがとうございました。
927 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:55:35 ] プログラムで図形描きたいのですが手順が詳しく乗っているサイトありませんか? どのプロジェクト作ったらいいかも分からない状況です
928 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 03:24:13 ] 諦めましょう
929 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 03:29:07 ] >>927 Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え 何も知らないような奴がいきなりネットだけで知識を得ようとするな
930 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:20:55 ] >923 リソースエディタは楽できるだけで 手書きする技量がないと結局何もできません。 最初からあきらめた方がいい。
931 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:40:36 ] >>930 >手書きする技量がないと結局何もできません。 そうでもないよ 連番IDに揃え直したりする事が必要にならなければエディタで事足りる
932 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:57:28 ] 手書きが無理なぐらい馬鹿ならあきらめた方がいいということ 手書きしろとは言ってない
933 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:06:04 ] 今時普通にあるスプリッタつかって3つのViewを配置したりする プログラムを作ろうとすると もうリソースエディタではどうしようもないだろ 設定とかのダイアログにしか使えない気がするんだが
934 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:13:22 ] 複雑なことをやろうとする前提で、「何もできない」っていわれてもな
935 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:16:56 ] つか、「手書き」の意味が食い違ってないか? リソースファイルの手書きとAPI操作による手書きだと意味が違うぞ。 元々言っているのはリソースファイルの手書きの方だ。
936 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:21:52 ] リソースエディタの類は開発効率を高めるものあって 馬鹿にでも使えるためにあるんじゃないよ 馬鹿にでも使えるものがほしいならVC以外にした方がいい
937 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:29:27 ] 馬鹿馬鹿言ってる方が馬鹿だ
938 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:30:02 ] VC++に挫折するやつが多いほど俺の価値が上がるってもんだ
939 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:34:10 ] Unix系のライブラリなんかはバリバリ作れるセンパイがいたが VCはてんでわからない人だったな。 後輩の俺が世話を焼いてやったもんだ。
940 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:39:05 ] Cの関数を使うと古い形式として宣言されましたという警告が出ますが、_s付きの関数はLinux上でもコンパイルできますか?
941 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:52:48 ] コンパイラの対応状況によるんでないの?知らんけど。
942 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:55:33 ] 少なくともansi Cにはprintf_sなどない
943 名前:デフォルトの名無しさん [2008/02/13(水) 15:55:55 ] >>940 M$独自の実装だからLinuxでは無理と思われ 使い方さえ間違っていなければCの関数の VCが吐く古い形式警告は気にしなくても良いじゃん
944 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:25:01 ] Linuxでいうところのusleep(microsecond) を使いたいのですが、どうすればいいですか。
945 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:35:26 ] MessageBoxでダイアログを作ると ドラッグで移動できるけど CreateDialogで作ると移動できない。 コードはほとんど同じなのに何故 なんでしょう?
946 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:40:56 ] 移動できない、とは? 移動以外は動作してるのか? MessageBoxはモーダル(== DialogBox())でメッセージループ自前だが、 CreateDialog()はモードレスで、メインのメッセージループを使う。 その辺なんじゃないの?
947 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:30:52 ] >>946 両方自前だよ。違うところはCreateDialogのメッセージループ がbool形でdialogboxがLRESUL型ってところ。
948 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:41:48 ] CreateDialog 移動できないの検索結果 4 件中 1 - 4 件目 (0.09 秒) 普通では起きない現象みたいだから945さん以外の人は気にする必要ないかも
949 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:46:15 ] >>947 えーと、WinMainでMessageBox呼ぶと メッセージループ書かなくても動作するけど CreateDialogはそうはいかないよね? これをどう説明する?
950 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:03:40 ] >>948 サンクス。 >>946 = >949?MessageBoxがモーダル だけど?知ってる人でこういうこと聞く 人居たけど大学中退?
951 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:14:16 ] >>947 それウィンドウプロシージャ・ダイアログプロシージャのことでは? メッセージループといったら、GetMessageなんかのほうだろ。
952 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:24:37 ] 単純にウィンドウスタイルの問題じゃないのか?
953 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:35:51 ] たぶん常識では考えられないことやってるだけ
954 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:49:26 ] コードも示さず意味不明な質問するような馬鹿の分際で 答えてやってる相手に暴言はいてるようではな。
955 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:25:49 ] 違うAPI使ってんだから、そりゃ違う結果になってもおかしくないだろと思うんだが・・・ 何か俺間違ってる?
956 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:01:54 ] 950だけど、特殊な状態なようなのでこちらに問題があったようです。 >> 951 これから調べます。 >>952 詳しく。 >>955 頭良いね。
957 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:10:06 ] Visual C++ってlameのビルドとか出来るんですか?
958 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:23:31 ] 知らんけど試しにlameのソース持ってきたらVC++6のプロジェクファイルついてるね 2005でビルドしたら物はできたけど
959 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:09:05 ] rarewaresからDLL落とせば?
960 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:40:11 ] >>954 どうでもいいことでキャンキャンほえるな おまえのちんけなプライドなどに興味ない
961 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:43:39 ] >>930 おれは10年以上VC使ってるが、 rcファイルいじる必要があった場面なぞほとんどないがな。 例外はsyslog関係処理のときくらい。 おまえ、ツールを効率よく活用するということを覚えたほうがいいぞ。
962 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:43:55 ] と、ちんげ以下の微生物が申しております
963 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:44:54 ] ワロタ >>961-962 タイミング悪すぎw
964 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:51:02 ] >>929 図形かくくらい、ネットで十分だろ。というかネットのほうが便利。 いまどき本で勉強しようって感覚、おいおいって思うが。。
965 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:51:52 ] >>929 画像じゃないぞ、図形だぞ。
966 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:59:53 ] >>956 ウィンドウスタイルは関係ないだろうな、常考。 つか956はだいたいわかってんだろ、946・951あたりが正解じゃねーの。 んで、それが知りたかったことなのかい? たとえばこの辺の内容とも同じ。 oshiete1.goo.ne.jp/qa3672380.html IDないと誰が誰なのかわからなくて、めんどくせーな。
967 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:00:34 ] >>962 >>963 こういうの、いらねーから。
968 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:00:46 ] 画像というのは図形で出来ているんだぜ?
969 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:01:50 ] >>933 これがいわゆる、素人に毛が生えた素人というやつだな。
970 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:02:18 ] >>964 君が紹介してやれよ
971 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:03:52 ] >>966 お前以外はみんな俺
972 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:19:21 ] >>927 GDI+を使うのがやはり便利なのだが、 初心者向けの文献はちょっと見当たらないな。 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbcon/html/vboriGDIFundamentals.asp 最近VC++のページがググッてもあまり出てこないんだよね。 MFC上でGDI+使うんであれば、 www.codeproject.com/KB/GDI-plus/gdi__and_mfc.aspx 使ってるのがVC6であれば、MSDNに MFCのチュートリアル(10ステップくらいだったかな)とサンプルがあった記憶がある。 そこに図形描画の解説もあった。
973 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:21:36 ] >>968 もういいから黙ってろ
974 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:32:42 ] >>918 あくまでおれの基準だけど、 本格的でごりごりしたGUI構成とか、COMとかOLEとかやりたいときは、 アンマネージドで。つまり非CLRで。んで言語はVC++かな。しかもVC6を使う。 そのあたりは個人的にノウハウがたまっているからというのもある。 お手軽なアプリ作るならマネージドで行く。つまりCLR。んで言語はVB.Netかな。 たとえばDB関連など最新テクノロジー使うときはマネージドで行く。つまりCLR。 言語はVB.Netでいくけど、C#のときもある。 VC+2005でお手軽アプリを作りたいという条件自体が、おれの基準と違うんだな。 >>919 と同意見ということだね。
975 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:36:51 ] >>974 ちょっと言い忘れた。 VC6のころは、C++関連の情報が主流だったけど、 2003とか2005とか2008とかの時代になると、C++関連の情報って激減している気がするんだよね。 ググッて情報が得られやすい環境を選択するというのが、けっこう生命線的に大事だと思う。 仕事だと開発環境選べないからもちろんそれでやるしかないわけだが、単なる遊びなんでしょ?
976 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 04:16:03 ] 逆切れする質問者が多いなw 同一人物かね
977 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 04:28:05 ] >>973 で、結局君は具体的に何の図形を描きたいの? ○?△?□? 2D空間図形?それとも3D空間図形? GDIで描画したいの?DirectXを使いたいの? 結局のところ何を教えて欲しいわけ?
978 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 08:43:11 ] >>958 同じく2005でやろうと思ったんですが 'sprintf' の宣言を確認してください 「現在のコード ページ (932) で表示できない文字を含んでいます」 「fatal error C1083: include ファイルを開けません」 等色々要求されます 一応仕上がって出来上がるんですが…
979 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:31:01 ] >>978 sprintf 関係はほかでも見ないか?例の sprinf_s のやつだよ。 VC自体あんまり使ったこと無いのか。
980 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:44:16 ] 事故解決しましたb 有難うございました
981 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:58:38 ] >>976 質問者じゃないっつーの。 KY
982 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:59:42 ] >>977 同じく質問者じゃないっつうの
983 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:12:26 ] >>976 下みたいな回答が多いのに逆切れも糞もない。 >927 : デフォルトの名無しさん:2008/02/13(水) 02:55:35 >プログラムで図形描きたいのですが手順が詳しく乗っているサイトありませんか? >どのプロジェクト作ったらいいかも分からない状況です >929 :デフォルトの名無しさん:2008/02/13(水) 03:29:07 >>>927 >Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え >何も知らないような奴がいきなりネットだけで知識を得ようとするな
984 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:30:43 ] >>981-982 まあおちつけよ
985 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:32:00 ] >>983 お前もな
986 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:43:47 ] プログラムでマスを描きたいのですが手順が詳しく乗っているサイトありませんか? どのプロジェクト作ったらいいかも分からない状況です
987 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:47:04 ] ます? forでライン引いたら
988 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:52:13 ] プロジェクトの作成から図形の描き方までの手順が一通り詳しく乗ってるような ピンポイントなサイトがあると本気で思ってるんだろうか ネットを使うなら情報をかき集めて統合する事を覚えような
989 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:30:42 ] リバーシとかゲームの作り方解説してるサイトならいっぱいある
990 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:53:29 ] ゲームの作り方(笑)
991 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:24:10 ] ゲームの作り方(泣)
992 名前:デフォルトの名無しさん [2008/02/14(木) 21:36:46 ] 少し分かりにくいかも知れませんが固定1次元配列を 動的に2次元配列にしたいのですが。 例えば data[0]〜data[4] data[0]〜data[4] data[0]〜data[4] data[0]〜data[4] ↓ 動的 という感じにしたいのです。 悪あがきで CArray<int[4],int[4]> arraydata; とかやってもダメでした。 くぐってみると両方動的なものはありました。 typedef CArray<int, int> CIntArray; CArray<CIntArray, CIntArray&> ar;
993 名前:デフォルトの名無しさん [2008/02/14(木) 21:38:13 ] CArray<int,int> arraydata[4]; とすれば役割は果たせますが、 これだと data[0] data[0] data[0] data[0] ↓ 動的 data[1] data[1] data[1] data[1] ↓ 動的 data[2] data[2] data[2] data[2] ↓ 動的 みたいな感じになって最初のパターンより フラグメンテーションが大きくなりそうな気がして 恐いのです。 よい方法があったら教えてください。
994 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:51:13 ] クラスか構造体にすればできるだろうけどスレ違い。
995 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:54:25 ] >>993 ポインタのポインタではだめなの?
996 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:09:05 ] >>989 詳しく
997 名前:デフォルトの名無しさん [2008/02/15(金) 00:22:06 ] VisualStudio 2005 の VC++ についてお尋ねします。 共有ライブラリなどを全て静的にリンクさせて DLL などの外部ファイルに依存しない実行ファイルを作るにはどのような設定にすれば良いのでしょうか?
998 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:47:45 ] >>988 くだらないことぐだぐだ言ってる暇あんなら、本でも紹介すればいいじゃねーか。 おれはGDI+は紹介した。VC6のTutorialも紹介した。 くだらねーんだよ。お前は何を出したんだ。