1 名前:Part28の1000 mailto:sage [2008/02/15(金) 01:45:56 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
620 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:26:03 ] >618 そのへんは普通に勉強すれば誰でもわかることだし 掲示板でいちいち説明できる分量じゃない。
621 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:30:53 ] 初心者に教えるスレでっせ。
622 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:37:09 ] 教えるのはいいけど理解できるか?
623 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:42:36 ] この掲示板で説明するべき話題でないというのは同意。 ググった方が早くて確実で分かりやすいと思う。 突き放すことはないかなって思っただけです。
624 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 18:50:00 ] まあ環境もうちょっと書いてくれないとね。 詳しく書いた後で、MFCだとどう書きますかとか聞かれたらやだしね。 適当にはしょって答えて、そのキーワードでググってもらうのがいいかと。
625 名前:デフォルトの名無しさん [2008/04/01(火) 19:19:54 ] >619 ありがとうございます。 MFCです。スタティックは個別にそれだけを変更したいです。 その辺のキーワードを頼りに勉強してみます! >620 初心者なんですいません。 >そのへんは普通に勉強すれば誰でもわかることだし ということですが、その普通にを教えていただけませんか? もちろん参考書で勉強をしていますが、各コントロールの使い方が主に載っていてそれはわかるが、応用するときにはどうしていいかわかりません。 未熟者ですいませんがキーワードとかこういうの参考になるよってのを教えていただけたらと思います。 よろしくお願いします。
626 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 19:22:22 ] >各コントロールの使い方が主に載っていてそれはわかるが、応用するときにはどうしていいかわかりません。 >625 林本だろそれ
627 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 20:11:22 ] 本は欲しい情報が載ってないことが多いし探すのが大変。 自分はMSDNを調べたりキーワードでググったり掲示板を利用したりしている。 掲示板 rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi m--takahashi.com/
628 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 20:15:42 ] コントロールのデバイスコンテキスト取得 ↓ pDC->SetTextColor(0xffffff);
629 名前:デフォルトの名無しさん [2008/04/02(水) 01:29:08 ] DLLファイルを作成するプロジェクト(A)と、そのDLLファイルを使う プロジェクト(B)があります。AとBは別個のフォルダに収められている ので、BからAのDLLを使うには次のことをしなければなりません。 (1) .libファイルの場所をBで設定。(コンパイル時) (2) Bの.exeとリンクされる.dllの場所を設定。(実行時) (1)については[プロジェクト]→[設定]→[リンク]タブで設定しました。 (2)についてはどうすればいいのでしょうか? Aが作るDLLにはデバッグバージョンとリリースバージョンがあります。そこで、 Bの.exeがデバッグバージョンであれば、AのデバッグバージョンのDLLが、 Bの.exeがリリースバージョンであれば、AのリリースバージョンのDLLが リンクされるようにしたいのですが。
630 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:02:28 ] >>629 AとBの出力フォルダをデバッグ同士・リリース同士で揃えたらいいんじゃない?
631 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:13:14 ] >>630 .exeと.dllが作成される場所はデフォルトのままにしておきたいのですが。。。
632 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:31:13 ] >>631 ならBのプロジェクトのプロパティのデバッグの環境変数の設定で Aの出力フォルダをパスに追加しておくというのはどう?
633 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 02:46:44 ] >>632 すみません。具体的にどうやって設定したらよいか教えてもらえませんか? [プロジェクト]→[設定]とか[ツール]→[オプション]とかは散々いじくった のですが。。。 Visual C++6.0です。
634 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 06:53:44 ] カスタムビルドプロセスで、Aのdllをこっちのexeの出来るフォルダにコピーするとか。
635 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:19:54 ] >>633 出力はデフォルトのまま出来たDLLとかlibをコピーするのは駄目なの? コンパイル後のコマンドでコピーすればよいと思うんだけど あと、デバッグとリリースを分けるなら別名にしたほうがいろいろ便利だよ
636 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 10:26:22 ] 同じソリューションに入れて依存関係作っとけばよかった気がする
637 名前:625 [2008/04/02(水) 11:54:51 ] >>626 林本です! 一応初期化のところでCreateFontでフォントを作成し、GetDlgItemでIDを取得し、SetFontでフォントを指定して文字の大きさは変更できました。 あとは色ですね。。。 もうちょっと勉強してみます!
638 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 12:05:55 ] >>637 色は OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) で if (pWnd->GetDlgCtrlID() == IDC_HOGE) { pDC->SetTextColor(RGB(0xff,0,0)); } とか }
639 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:23:21 ] デバッグウインドウに文字を表示するにはどうすればよいでしょうか?
640 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:29:20 ] 以前学校の授業でC言語を簡単に勉強した事があるのですが C++とCはまったくの別物と考えたほうがいいのでしょうか? また、勉強用に独習C++あたりを購入しようかと思っているのですが、他におすすめの入門用の書籍などありますか?
641 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:31:58 ] あまり別物でないように使う事も出来るけど、 フルに機能を利用すれば全くの別物になる。 入門書は ・ 独習 C++ ・ C++ プライマー 第4版 ・ ロベールの C++ 入門教室 の3つを実際に店頭で読んでみて決めてみたら。
642 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:36:17 ] >>639 デバッグ中の出力ウィンドウのこと? OutputDebugStringとかOutputDebugStringFormatとか使う MFCだとTRACEマクロもある
643 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 18:41:14 ] >>641 なるほど、基本的な部分が似てるのなら少し安心です 前に独習Perlがすごい役にたったから今回も独習シリーズでいいや、とか思ってた たしかに読んでみて自分に合ったの探したほうがよさそうですね。 どうもありがとうございます
644 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:53:10 ] >>636 依存関係ではダメと思う。 自分は634のようにしている。
645 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:00:54 ] >>643 自分は「やさしいC++」がオススメ
646 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:31:13 ] >>642 アリガトン
647 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:55:42 ] >>634 >>635 ありがとうございます。うまくいきました。 [プロジェクト]→[設定]→[ビルド後の処理]タブで、 出来たての.dllをコピーするコマンドを指定しました。 copy $(TargetPath) コピー先フォルダ これでビルド後に.dllが(対応する).exeのフォルダにコピーされ、 .exeの実行時に適切な.dllが使われるようになりました。 >あと、デバッグとリリースを分けるなら別名にしたほうがいろいろ便利だよ 考えてみます。今のところ不都合はないように思います。 >>636 >同じソリューションに入れて依存関係作っとけばよかった気がする >>644 さんのおっしゃる通り、この方法はダメでした。 1つのワークスペース(VisualC++6.0なので)に2つのプロジェクトを挿入して、 それらのプロジェクトの間に依存関係を指定してみたのですが、 うまくいきませんでした。この方法でできれば簡単で良いのですが。。。
648 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 07:19:02 ] WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(NULL,IDC_CURSOR1), NULL, NULL, L"Cursor Test", NULL }; カーソルを自作カーソルIDC_CURSOR1にするにはどうすればいいんですか? こうやるとエラーになってしまいます。
649 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 08:12:29 ] ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。
650 名前:デフォルトの名無しさん [2008/04/03(木) 08:20:17 ] >>648 -LoadCursor(NULL,IDC_CURSOR1), +MAKEINTERSORSE(IDC_CURSOR1) 綴りまちがってるから自分で確認して
651 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:06:33 ] 開発環境は2008です。 WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; - + の意味がわからないのですが これで実行した時のエラーは error C2065: 'IDC_CURSOR1' : 定義されていない識別子です。 warning C4003: マクロ 'CreateWindowW' に指定された実引数の数が少なすぎます。 error C2059: 構文エラー : ')' です。
652 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:38:12 ] IDC_CURSOR1っていう名前のカーソルのリソースがないんじゃないのかい?
653 名前:デフォルトの名無しさん [2008/04/03(木) 10:09:47 ] Windowsフォームアプリケーションだとコントロールを個別にフォントとかをプロパティで簡単に設定できるんですね。 なんでMFCだとできないんですかね。。。実はできたりするんですか?
654 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 10:14:51 ] ポトペタRAD環境をC++で使いたいならC++Builderへどうぞ VC++ではできません
655 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 11:50:43 ] >>651 LoadCursor(NULL,IDC_CURSOR1) だと IDC_CURSOR1 でエラーにならないのに LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)) だとエラーになるのはおかしいだろ。 そして、LoadCursorの第一引数がNULLなのはシステム定義アイコンを使うときだ。 hInst を入れてみ。
656 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 12:30:44 ] だめでした。 IDC_CURSOR1 を定義する方法は、 リソースビュー>追加>リソース>cursor>新規作成 出来た resource.h をcppにインクルード だけでいいですか? LoadCursorのヘルプに afxwin.h が必須インクルードと書いてあるのですが、インクルードすると #ifdef _DLL #ifndef _AFXDLL #error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] の#errorに飛んでしまいます。
657 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:09:25 ] MFCのLoadCursor使うならafxwin.hが必要でMFCとしてビルドしないといけない
658 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:21:45 ] もしかして>>648 のエラーも >error C2065: 'IDC_CURSOR1' : 定義されていない識別子です。 なのか? そうでないなら出たエラー書いてみて
659 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:29:47 ] あと、>>648 のその行以外は問題ないとすると WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; こうだな。GetModuleHandle(NULL)がかぶってるから、 事前に呼んでとっておくといい、けどこれWinMainの第一引数なんだけどな。
660 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:12:45 ] エラーが出なくなりましたが、今度はウインドウが出てこなくなりました。 正常だった記述に戻してもウインドウが出てこなくなりました。 中間ファイルもソリューションのクリーンで消しましたがだめです。WINごと再起動してもだめです。 DirectX9SDKのサンプルCreateDeviceのVS2005プロジェクトをVS2008で自動変換して取り込み自作カーソルリソースを新規作成で追加して #include "resource.h"追加と WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, L"D3D Tutorial", NULL }; の部分を WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; に書き換えただけです。たすけてください。もう12時間これやってます^^;
661 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:18:42 ] エラーが出ないって事はコンパイルできたんだろ? そしたら次はデバッガの使い方をだな・・・ とりあえず、F10連打だ
662 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:53:10 ] ああそうか!カーソルはこれでクリア出来てるってことですよね LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)) の意味と、CreateDeviceが失敗してるのはまた明日調べます。 まじありがとうございました。
663 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:00:16 ] ちょっとサンプルみたけど、hInst でいいんじゃん。 LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)) で。前のGet・・・につられたわ
664 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:24:36 ] 拾ったサンプルをあてずっぽうで改造? ほとんど何も知らないでやってる?
665 名前:644 mailto:sage [2008/04/03(木) 20:28:26 ] >>647 dllのコピーは必要だけど、依存関係を設定するのはオススメ。 libのリンクを自動的にやってくれるし、 exeをビルドする前にdllをビルドしてくれるので、 古いdllを使ってハマルようなことがなくなる。 つまり 依存関係+ビルド後の処理でコピー と。
666 名前:647 mailto:sage [2008/04/04(金) 00:44:33 ] >>665 なるほどです。そうしてみました。
667 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:56:37 ] >>663 hInstで動きました。ありがとうございました。
668 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:09:59 ] PCSX2というソフトをコンパイルしたいんですがやり方がわかりません。 プログラムについての知識0です。 勉強したいとかではなくこのソフトがほしいだけです。 Microsoft Visual C++ 2008をとりあえずインストールしましたがやり方がまったくわかりません。 サルにも判るように教えてくれる方がいれば幸いです。 ttp://www.pcsx2.net/files/10490 ttp://pcsx2.svn.sourceforge.net/viewvc/pcsx2/pcsx2/GS.cpp?view=markup&pathrev=346
669 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:25:00 ] readme嫁
670 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 02:26:07 ] 勉強する気ないやつに教えるほど俺は性格良くないです
671 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 04:37:38 ] >>668 エミュレータでタダゲーしたいんだけど、コンパイルしないといけない。 だれか手取り足取り教えろ、ということか。 …たしかに何も教える気がまったく起こらんなw 初心者には寛容なほうなのだが。
672 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:00:14 ] 実は頭悪いだろ、ここの人たち
673 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:29:33 ] 残念ながらそんな煽りに乗るほどには悪くないんだな。(w
674 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:45:39 ] >>668 ここは勉強する意欲のある初心者に教えるスレであって 勉強するつもりもない素人に教えるスレではありません お帰り下さい
675 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:47:50 ] 今までXPで開発していましたがPCをVistaで新調して開発したところ、 Vista機では問題なく実行できるexeがXPマシンに持っていくとアプリケーション構成エラーが出て実行できません おそらく>>527 さんとほぼ同じ症状で、/MTでコンパイルを通すと実行できるようにはなりますが ファイルサイズが大きくなるのでできるだけ/MDにしたいです 何か良い手段はないでしょうか VC2008を使用しています
676 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:08:55 ] それが嫌なら>528の方法 それも嫌ならライブラリ使わない
677 名前:675 mailto:sage [2008/04/06(日) 21:26:15 ] なるほど… やはり基本的には/MTにするかランタイム導入を促す方向になるのですね ありがとうございました
678 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:32:39 ] ランタイムをインストールするのが嫌なら、 EXEと同じフォルダに置くという方法もできる。 マニフェスト関係が面倒だけど。
679 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:18:33 ] intやfloatの値をLPSTRに変換するにはどうすればいいですか?
680 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:26:55 ] キャスト int i = ...; LPSTR s = (LPSTR)i;
681 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:39:25 ] すごいな。 いろいろと。 dobuleでなくて良かったとかそういう話なんだな。。
682 名前:デフォルトの名無しさん [2008/04/07(月) 03:11:47 ] どぶれ?
683 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:17:22 ] >679 CやC++でintやfloatを文字列に変換するのと同じでもいいし apiやMFC使う方法もある
684 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:19:08 ] でもfloatは対応してないのもあったかも
685 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:34:49 ] >>680 オマイ天才
686 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:42:03 ] 2008のMFCで、チェックボックスのメンバ変数を追加して、初期化時に 変数名 = TRUE; とすればチェックされた常態で起動されるとVC++6.0の本に書いてあるのですが error C2679: 二項演算子 '=' : 型 'int' の右オペランドを扱う演算子が見つかりません (または変換できません)。 のエラーが出てしまいます。 VBのようにプロパティにもそれらしき項目がないです。教えてください。
687 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:36:44 ] 何の問題もなくできたよ
688 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:06:14 ] 変数を作ったら DDX_Control(pDX, IDC_CHECK1, as); この行が追加された。 で OnInitDialog()の中に as = TRUE; を追加してもだめです。
689 名前:デフォルトの名無しさん [2008/04/07(月) 10:27:05 ] このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている ・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる 糞だけど、政治的な理由で無理やり使わされているんですよね。 もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。 ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
690 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:48:51 ] >>688 単にデフォルトでチェック状態にしたいなら as.SetCheck(BST_CHECKED) をすればいいんじゃないの?
691 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:21:28 ] できました。ありががとうございます。 できましたが、わからないことを逆引きできず、きりがありません、本も相当買いましたが、VBと違いまったく応用できません このまま一個ずつ積み重ねるしかないのでしょうか?
692 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:25:51 ] MSDNで調べる癖をつけましょう それでもわからなければWebやメーリングリストの過去ログなども使いましょう CheckBoxの場合はCButtonというクラスの変数なのでそのメンバを調べましょう
693 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:01:00 ] DDX_Controlにするから型があわない たぶん本に書いてあるのと違うことやってる
694 名前:デフォルトの名無しさん [2008/04/08(火) 17:56:11 ] Visual C++6.0を起動すると、 「ワークスペースにあるウィンドウのすべてを開くことはできません。」 という意味不明なメッセージボックスが表示されることがあります。 [OK]ボタンがひとつあるだけの単純なメッセージボックスです。 このメッセージは次のように言っているように聞こえます。 「ワークスペースにはウィンドウがいくつかある。あなたはそれをすべて 開こうとした。でもそれはできない。」 ??? 別に困っているわけではないのですが起動時に数回に一回の割合で出現するので 気になります。一体、このメッセージボックスは何が言いたいのでしょうか?
695 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:13:41 ] support.microsoft.com/kb/315617/ja このぺージの ダイアログ ボックスでWebBrowserコントロールを使用 の部分なのですが、webbrowser2.hが存在していないエラーが出ます。2008では使えないんですか? 代りに何を使えば同じように使えるんでしょうか
696 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:45:02 ] msdn2.microsoft.com/en-us/library/aa752044.aspx ここらへんをみるとwebbrowser2.hは、該当 ActiveXからMFCクラスを生成するとできる、 って書いてあるような気がする
697 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:47:36 ] >694 メニュー > ウインドウ
698 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:09:33 ] そこの英語ページぜんぜんわかりません CWebBrowser2とIWebBrowser2の違いもわかりません。 ドキュメント自体しないですよね void CtestDlg::OnBnClickedOk() { //CWebBrowser2* hExp1 = (CWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; //hExp1->Navigate2((CString*)("www.google.com/intl/ja/ "), &noArg, &noArg, &noArg, &noArg); IWebBrowser2* hExp1 = (IWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; hExp1->Navigate2((VARIANT*)("www.google.com/intl/ja/ "), NULL, NULL, NULL, NULL); } これで起動するとコンパイルはできるのですが、ボタンをクリックすると test.exe の 0x78a49c05 (mfc90ud.dll) でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x8b55ffdb を読み込み中にアクセス違反が発生しました。 と出てしまいます。VC++2ヶ月でこれはまだ早いですかね
699 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:03:06 ] IWebBrowser2はインターフェイスでCWebBrowser2はその実装されたクラスだけど多分難しいと思う 単に表示させたいならGetDlgItem使わずにダイアログに直接貼り付けてクラス変数作ってNavigateした方が楽だよ なんにしてもCOMとかActiveXとかめんどくさい物を勉強した方がいいと思う
700 名前:デフォルトの名無しさん [2008/04/09(水) 15:18:28 ] VC++6.0の初心者です。 マウスのイベントについて教えて下さい。 (漢字はよく読めないので、なるべく平仮名でお願う) MFC AppWizard(exe)を使って、しゅるい はダイアログベース(D)を使います。 1つめ. ダブルホイールマウスを使ってた。 マウスにかんけい知るイベントで、自分で調べて解ったのは WM_MOUSAWHEEL という奴ですが・・・ホイールが2つある、もっと、マウスで アプリケーションに必要な処理をおこうなうには何すれば? どう考えればいいでしょうか?
701 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:47:15 ] 日本語でOK
702 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:59:22 ] ホイールが二つあるマウスのイベントを拾いたい
703 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:39:18 ] 横ホイールか
704 名前:デフォルトの名無しさん [2008/04/09(水) 17:39:57 ] >>702 さん。 Yes.ホイールが2つ以上あるマウスのイベントを拾いたいです。 (日本語あってる?)
705 名前:デフォルトの名無しさん [2008/04/09(水) 18:05:07 ] VisualC++2005のMFCのダイアログベースでプログラムを作成しています。 まだ初めて1ヶ月もたってないので初歩的なことを聞いてすいません。 OnInitDIalog内の//TODO: 初期化をここに追加します。 というところで font.CreateFont( 36, 0, 0, 0, FW_NORMAL, TRUE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Italic"); GetDlgItem(IDC_STATIC)->SetFont(&font); として、文字のフォントを変更しようとしました。 最初は問題なく変更できていたのですが、気づいたらいつの間にか変換できていませんでした。 ボタンを使って、ボタン動作で GetDlgItem(IDC_STATIC)->SetFont(&font); を行うと変更されますので、一度変更した後になんらかの理由で元に戻ってると推測していますが、その理由と場所がわかりません。 これだけの情報でわかれば教えていただけますか?
706 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:25:46 ] そのfontは保持し続けてるのか? どこで宣言してる?
707 名前:デフォルトの名無しさん [2008/04/09(水) 21:21:31 ] long ldata[] = {0x00000000,0x00000001,0x00000002,・・・・・}; このような配列を、文字列、"0x000000000x000000010x00000002・・・・・" と変換するにはどのようにしたらいいでしょうか。 また、この文字列を逆に配列に戻すことは可能でしょうか。
708 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:40:00 ] VCというよりCかC++を勉強すれば可能
709 名前:デフォルトの名無しさん [2008/04/09(水) 21:54:15 ] >>708 ありがとうございました。可能ということで、勉強したいと思います。
710 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:33:41 ] >>709 sprintfとかで速効
711 名前:705 [2008/04/10(木) 09:50:43 ] >706 一応グローバルで宣言してるつもりで関数の外で宣言してます。 ちなみにC言語は初心者レベルで理解してるつもりです。 まだ、簡単なソフトを1つ作っただけですが。。。初心者レベルで。
712 名前:デフォルトの名無しさん [2008/04/10(木) 10:50:01 ] 最近VisualC#2008 Expressをダウンロードして使っているものです。 質問なのですが、 イミディエイトウィンドウを使ってコマンドを入力してデバッグできる ことを知ったのですが、普通にGUI上からデバッグするだけでは できないことや効果的な利用方法などがあったら教えて頂きたいです。
713 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:53:47 ] ここC#じゃないよ
714 名前:デフォルトの名無しさん [2008/04/10(木) 12:20:50 ] static DWORD beforeTime = 0; DWORD nowTime;static int fps = 0;char buff[80]; nowTime = timeGetTime();fps++; if ( nowTime - beforeTime >= 1000 ) {wsprintf(buff, "%05d FPS\n", fps); TextOut(hDC,1,1,buff,lstrlen(buff));fps = 0; beforeTime = nowTime; } counter++; これは某所にあった FPSを表示するソースの一部なんだけど これを使うと(WM_TIMERで呼ぶと) 最初の一回は00001FPSと出て、その後は25000とか二万を越える値が出ます。 どうして?
715 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:31:49 ] 1秒に25000回呼ばれてるんだろ
716 名前:デフォルトの名無しさん [2008/04/10(木) 12:56:24 ] >713 あ、思いっきり間違えました! すいません。
717 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 05:19:00 ] リソースファイルは、Express Edition じゃビルドできないんですか? ちなみにバージョンは2008です。
718 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:07:09 ] リソースコンパイラはRC.EXE
719 名前:705 [2008/04/11(金) 10:28:39 ] どなたかヒントだけでも教えていただけませんか?
720 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 11:27:20 ] >>705 文字を替えたいコントロールのIDをIDC_STATICから別の名前に替えてみて