★初心者にVisual C++を教えるスレ★ Part38
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/11/03(木) 00:54:48.61お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【過去スレ】
Part37 http://hibari.2ch.net/test/read.cgi/tech/1299982561/
Part36 ttp://hibari.2ch.net/test/read.cgi/tech/1273939582/
Part35 ttp://pc12.2ch.net/test/read.cgi/tech/1256645713/
Part34 ttp://pc12.2ch.net/test/read.cgi/tech/1245382769/
Part33 ttp://pc12.2ch.net/test/read.cgi/tech/1235292263/
0717デフォルトの名無しさん
2012/12/27(木) 17:54:51.80そう思い、VC++でソースファイル名をxxx.cで書いてコンパイルエラーがorz
0718デフォルトの名無しさん
2012/12/31(月) 10:24:56.51コンパイルオプション付けるくらいなら拡張子替えるけどな。
0719デフォルトの名無しさん
2013/01/07(月) 20:07:13.66多重にサブクラス化して
(そのサブクラス化をやめようとする以外の状況で)
どういうエラーになるのか分からないけど、
GetClassInfoExで元々のウィンドウプロシージャが取得できるかもしれない。
別プロセスのウィンドウに対してGetClassInfoExでそれが取得できるのか知らないけど。
0720デフォルトの名無しさん
2013/01/07(月) 20:09:54.18にて chart control でグラフ表示をしています
そこでchart controlの使い方で質問なんですが
たとえばタイマーなどで以下のようなプログラムをループさせていて
for(int i= 0; i>100; i++){
chart1->Series[0]->Points->Add(i);
}
コンパイルしてグラフをみていくとX軸が1づつ増えて自動でX軸のMAXを延長してくれますが
このときにX軸を0からMAXまでではなく最新の20だけ(iが80ならminが60、max80)みたいに
X軸の範囲を決めて使うことって可能でしょうか?
よろしくお願いします
0721デフォルトの名無しさん
2013/01/12(土) 15:19:31.20GetLastError関数によるとエラーは1407(Cannot find window class)とのこと
一方で、一つのメソッドの中で順に呼び出すとエラーなく実行された
MSDNによるとCreateWindowEx関数が失敗する原因は、
?パラメータに無効な値が指定された。
?システムクラスを登録したモジュールが別のモジュールである。
?WH_CBT フックがインストールされており、失敗コードを返した。
?WM_CREATE または WM_NCCREATE のウィンドウプロシージャが失敗した。
の四つであるそうで、二つ目の「?システムクラスを登録したモジュールが別のモジュールである。」の項にあることが原因であるように思われます
つきましては、質問なのですが、この「?システムクラスを登録したモジュールが別のモジュールである。」というのはどういう意味なのか(モジュールとは一体何のことを指して言っているのか)、
二つの関数を別のメソッドで呼び出すことはできないのかについて、どなたかご教示頂けないでしょうか
0722デフォルトの名無しさん
2013/01/12(土) 17:33:46.730723デフォルトの名無しさん
2013/01/12(土) 23:59:18.83ありがとうございます!
このレスで自らの過ちが明確にわかりました。自分がまぬけでした
RegisterClassEx関数を呼び出すメソッドの方に、「this->hInstance = hInstance;」と書き加えたところ正常に動作しました
0724デフォルトの名無しさん
2013/01/16(水) 15:23:13.91のですが、強制的にweb browserの中で開く方法を教えてください
VisualBasic2010
0725デフォルトの名無しさん
2013/01/20(日) 18:58:09.52googleで検索してみたもののはっきりと説明のされたサイトが見つかりません
0726デフォルトの名無しさん
2013/01/21(月) 00:05:24.85たとえばstd::vector<int>とかしたときに定義が作成できないから
0727デフォルトの名無しさん
2013/01/21(月) 00:19:29.40まとめておけばいいんだっけ?
それが嫌なら全部ヘッダに書け、と
0728デフォルトの名無しさん
2013/01/21(月) 00:20:49.280729デフォルトの名無しさん
2013/01/21(月) 15:49:20.790730デフォルトの名無しさん
2013/01/21(月) 15:51:14.270731デフォルトの名無しさん
2013/01/21(月) 16:02:15.64ソースファイルを一つですることに慣れてしまってコンパイルに掛かる時間だったり公開するときに恥ずかしかったりで分けてできるようになりたいたいと思ったのですが今までと勝手が違ったりで
0732デフォルトの名無しさん
2013/01/21(月) 16:41:12.37C言語入門書の次に読む本
みたいなタイトルの本には、それっぽいのが載ってた
まあ、分割コンパイルでググれば良いと思う
0733デフォルトの名無しさん
2013/01/21(月) 16:55:07.48ありがとうございます!
0734デフォルトの名無しさん
2013/01/22(火) 07:29:01.77今でもテンプレートとか使うとわかんなくなる
0735デフォルトの名無しさん
2013/01/24(木) 01:54:05.47while文を終了した時にcmd.exeが終了しません。
コマンドプロンプトのアプリケーションの終了でも
プロセスの終了でも終了できず、パソコンの電源ボタンを
押すしか対処できません。
ビルドも正常にできて、正常に実行されますが、
終了がうまくいきません、どうしたらいいのでしょうか?
0736デフォルトの名無しさん
2013/01/24(木) 02:37:22.000737デフォルトの名無しさん
2013/01/24(木) 14:49:38.580738デフォルトの名無しさん
2013/01/27(日) 00:17:51.13また使う意味は?
0739デフォルトの名無しさん
2013/01/27(日) 00:48:10.490740デフォルトの名無しさん
2013/01/27(日) 01:59:20.84つまり
propertyキーワードの中にgetとsetの定義がされてあって
入力のときはset,出力のときはgetが自動で使われるということ?
0741デフォルトの名無しさん
2013/01/27(日) 12:28:37.67C#の機能の一つだったものを、VC++独自の拡張として導入したもの
「C# property」で検索すれば出てくる
0742デフォルトの名無しさん
2013/01/30(水) 11:55:40.70デバッガ上ではどうなるの?
0743デフォルトの名無しさん
2013/02/02(土) 21:29:21.69ファイルはlibcurl-7.19.3-win32-ssl-msvc.zipとcurl-7.28.1.zipをDLしました。
環境はwindows7 64bit、Visual C++ 2010 Expressで、WIN32コンソールアプリです。
0744デフォルトの名無しさん
2013/02/03(日) 11:24:20.61普通にincludeとlibの設定すれば行けると思うけど。
プロパティで言えば
VC++ディレクトリのライブラリティレクトリ、
C/C++の追加のインクルードディレクトリ、
リンカー 入力 の追加の依存ファイル、
の3つかな。
DLL使うならそれなりの設定やコピーもね。
0746デフォルトの名無しさん
2013/02/04(月) 21:50:40.98特定のアプリケーションごとに動作を切り替えるような処理を作るのに
参考になるようなページはありますか?
もしくはこういうワードで調べると出てくる、といったものでも結構です。
ご存知のかたお願いします。
0747デフォルトの名無しさん
2013/02/04(月) 21:55:35.510748デフォルトの名無しさん
2013/02/05(火) 14:59:36.63C.cppでメンバに値を代入すると波線が引かれ定義されていないと言われる
でもそこで右クリックから宣言へ移動や定義へ移動をするとB.cppの実体宣言したところに飛ばされる
いろいろ試行錯誤したけどついに意味がわからなくなりました
どういうことなんでしょうか VC++です
0749デフォルトの名無しさん
2013/02/05(火) 15:04:27.750750デフォルトの名無しさん
2013/02/05(火) 15:32:23.370751デフォルトの名無しさん
2013/02/05(火) 16:04:18.040752デフォルトの名無しさん
2013/02/05(火) 22:05:19.20インテリセンスでそういうのなら、正常な状態でもたまになったような。
0753デフォルトの名無しさん
2013/02/05(火) 22:15:31.78インクルードは大丈夫なはず
ファイル分割前は
typedef struct tagABC
{
typedef struct tagXYZ
{
inti;
doublej;
}XYZ;
XYZ xyz[10];
}ABC;
ABC abc[5];
abc[0].xyz[0].i=1;
みたいに書いてたんだけど (すいませんレス分けます)
0754デフォルトの名無しさん
2013/02/05(火) 22:17:43.40A.hに
typedef struct tagABC
{
typedef struct tagXYZ
{
inti;
doublej;
}XYZ;
XYZ xyz[10];
}ABC;
B.cppに
ABC abc[5];
で、C.cppで
abc[0].xyz[0].i=1;//識別子abcが定義されていません (abcに波線)
で、ビルドしたら
C.cpp(○○): error C2065: 'abc' : 定義されていない識別子です。
っていう状況
多分B.cppの実体宣言がちゃんと出来てないんだと思う
あとXYZはこのままでいいのか疑問
でもB.cppでABCと同じようにしようとしたらエラー吐かれる
0755デフォルトの名無しさん
2013/02/05(火) 22:29:01.410756デフォルトの名無しさん
2013/02/05(火) 22:32:19.06A.h内でextern ABC abc[5];
A.hをB.cpp C.cppでインクルード
使用したい.cppではextern無しでABC abc[5];
0757デフォルトの名無しさん
2013/02/05(火) 22:45:03.04なんか焦ってて飛んでました
わざわざtodoまで書いて下さってありがとうございます
0758デフォルトの名無しさん
2013/02/06(水) 00:09:52.820759デフォルトの名無しさん
2013/02/06(水) 17:07:25.80bool Hoge(bool);
int Hoge(int);
を定義したのですが
コンパイルしようとすると
区別出来ないと言われてるみたいです
どうすれば回避できますか?
0760デフォルトの名無しさん
2013/02/06(水) 17:08:24.49int Hoge(bool);
int Hoge(int);
です
0761デフォルトの名無しさん
2013/02/06(水) 17:24:16.72問題ない
0762デフォルトの名無しさん
2013/02/06(水) 17:25:53.780763デフォルトの名無しさん
2013/02/06(水) 17:26:49.760764デフォルトの名無しさん
2013/02/06(水) 19:24:08.770765デフォルトの名無しさん
2013/02/06(水) 19:49:50.78ありがとうございました。
Express使おうと思ってますのでWTLでも入れてみようかと思ってるんですが
MFCじゃなくてもこの関数って使えますか
0766デフォルトの名無しさん
2013/02/07(木) 08:14:46.38まさにそれです
ありがとうございますた
0767デフォルトの名無しさん
2013/02/07(木) 10:23:35.030768デフォルトの名無しさん
2013/02/07(木) 10:46:05.55マスゴミのやらせや印象操作と同じで
捏造やりたい放題
0769デフォルトの名無しさん
2013/02/07(木) 11:03:41.06ふつうは、自演なんていう発想をしない
0770デフォルトの名無しさん
2013/02/07(木) 11:04:20.700771デフォルトの名無しさん
2013/02/07(木) 19:30:51.75そのせいでデバッグが始まるのに10秒くらいかかる
ntdllのpdbなんていらないよー
どうしたらいいの
0772デフォルトの名無しさん
2013/02/08(金) 12:29:12.610773デフォルトの名無しさん
2013/02/09(土) 11:05:32.280774デフォルトの名無しさん
2013/02/09(土) 16:23:20.51gcc -E -dM -x c++ -std=c++11 /dev/null | sort
みたいなのと同じことができればOKです
cl /E までは同じようなオプションがあるんだけど、 -dM 相当のオプションってどれなんでしょうか?
cl /? 見てる限りだとわからないです・・
0775デフォルトの名無しさん
2013/02/10(日) 02:57:35.94途方もないコードのデバック途中で寝たくなったときってどうしてる?
今、言ったん寝て昼から同じ所スタートでデバックし直したいんだけど…
0776デフォルトの名無しさん
2013/02/10(日) 10:31:57.09状況が許されるなら寝ればいい。頭が硬くなってるならそれ以上のものはない。
許されないなら、エナジードリンク系でものみながらしなない程度に頑張れ。
0777デフォルトの名無しさん
2013/02/10(日) 11:33:41.860778デフォルトの名無しさん
2013/02/10(日) 12:20:45.97疲れてるときに単純にひとりで寝た日には起きたときにはすべてが終わってたりするから怖いよな。。
0779デフォルトの名無しさん
2013/02/10(日) 12:37:56.25そんなもんかなあ。
0780デフォルトの名無しさん
2013/02/11(月) 19:53:41.10ありがとう!設定をいじってみる
0781デフォルトの名無しさん
2013/03/03(日) 11:01:21.58自分の型みたいなのが出来たから空のプロジェクトで作るようになった
今までに作ったソースを全て自分の型Verに書き換えないと
なんか仕事やり残した感があって気持ち悪い
他の人はこういう経験ある?
あるけど書き換えずに新しいのだけ自分の型Verにしてる?
0782デフォルトの名無しさん
2013/03/03(日) 11:15:36.090783デフォルトの名無しさん
2013/03/03(日) 11:25:21.95趣味としてなら、次に必要になったときに最初から作り直す。
0784デフォルトの名無しさん
2013/03/03(日) 13:04:30.30分かる分かるw
自分の場合は、新しく作るときに適用するようにして、
過去のは基本的にいじらないなぁ。
でも、新しく作る度に洗練されていく感があって楽しいよ。
0785デフォルトの名無しさん
2013/03/03(日) 13:05:00.800786デフォルトの名無しさん
2013/03/03(日) 21:10:13.68ユーザー定義のメッセージを使用してアドレスを渡すくらいしかないですか?
サブクラス化する時に一緒に渡せると楽なのですが
0787デフォルトの名無しさん
2013/03/03(日) 21:22:09.760788デフォルトの名無しさん
2013/03/03(日) 21:35:51.87メッセージの方法知ってるならそれ使えばいい。どんな方法でも渡せればいいんだから多少効率悪くても気にするなって
データ量や用途によって使い分けるものだから、それでも気になるならマルチしてないでぐぐって解決しとけ
0789デフォルトの名無しさん
2013/03/03(日) 21:36:32.22RemoveWindowSubclass(hWnd, Proc, id);
DefSubclassProc(hWnd, Msg, wParam, lParam);
でいいんじゃね
0790デフォルトの名無しさん
2013/03/03(日) 21:40:20.39レス付きにくくさせるために言ってるのか?
0791デフォルトの名無しさん
2013/03/03(日) 21:47:51.700792デフォルトの名無しさん
2013/03/03(日) 21:53:14.620793デフォルトの名無しさん
2013/03/03(日) 23:25:29.88ありがとうございます
dataとして一緒に渡せました
0794デフォルトの名無しさん
2013/03/10(日) 16:49:11.642010のCLRのWindowsフォームアプリで
一問一答形式の問題を作ってるんですが
回答を入力した後、正解かどうか判別して結果表示するプログラムはどうすれば作れますか?
問題文のLabelに文を入れ、回答欄と結果表示用のTextBoxとLabelを置くところまではできたんですが
0795デフォルトの名無しさん
2013/03/10(日) 16:50:50.230796デフォルトの名無しさん
2013/03/10(日) 17:03:12.390797デフォルトの名無しさん
2013/03/10(日) 17:05:18.710798>>794
2013/03/10(日) 17:11:23.86VisualC#最適ってことはよく聞くけど、実感としてにどれくらい便利か分からない(理解できる知識もない)から
C#を独自に学ぶべきか判断できない感じです
0799デフォルトの名無しさん
2013/03/10(日) 17:41:36.81これをそのレベルから始めるなら、C#で同じことやるやり方覚えてから
C++に戻った方が進みが早い気はする・・・
回答したらボタンかなんか押して、そのタイミングで判定するんじゃないの?
ボタン並べてダブルクリックすれば、メソッドできるからそこでやればいいと思うよ。
0800デフォルトの名無しさん
2013/03/10(日) 21:47:51.941,質問1,選択肢a,選択肢b,選択肢c,答えb<CR+LF>
2,質問2,選択肢d,選択肢e,選択肢f,答えd<CR+LF>
3,質問3,選択肢g,選択肢h,選択肢i,答えi<CR+LF>
テーブルに突っ込んで、順次それ表示して「答え合わせ」ボタン押したら答えと比較して合否表示
する感じでいいんじゃねーの?まずは
0801デフォルトの名無しさん
2013/03/10(日) 22:09:29.01TextBoxに文字列を表示する方法
フォームに答えを選ぶボタンをおいて、そのボタンが押されたかどうかを判別する方法
まずはこの3つができるようにならないと。
0802デフォルトの名無しさん
2013/03/10(日) 22:34:38.16言語問わないならどれで書いてもいい、むしろ求める方向(言語学習したいのか、ものが出来上がればいいのか)
にしたがえばいいのだよ
0803デフォルトの名無しさん
2013/03/11(月) 18:12:52.07これやってるんだけど最後のデパックでエラーになってしまう
1>------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
1> DrawPixel.cpp
1>c:\users\www\documents\visual studio 2010\projects\test\test\drawpixel.cpp(1): fatal error C1083: include ファイルを開けません。'DxLib.h': No such file or directory
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
てでるんだけどどこが悪いんですか?
VisualC++ 2010 Express Edition のWin32です
0804デフォルトの名無しさん
2013/03/11(月) 18:15:54.47を全部行ってないから
0805デフォルトの名無しさん
2013/03/11(月) 18:34:30.68サイト見てみたけど、そのエラーは
↓がうまくできてない
�E 『追加のインクルードディレクトリ』の項目にDXライブラリのパッケージ内に入っている
『プロジェクトに追加すべきファイル_VC用』フォルダのパスを入力してから、
再度ダイアログ右下にある『適用』ボタンを押します。
( パスの例→ c:\DxLib_VC\プロジェクトに追加すべきファイル_VC用
なお、DXライブラリをマイドキュメントフォルダに入れるとこれらのパス指定が面倒になりますので
DXライブラリはなるべく浅いフォルダに入れておくことをお勧めします )
0806デフォルトの名無しさん
2013/03/11(月) 22:33:25.370807デフォルトの名無しさん
2013/03/11(月) 23:16:04.130808デフォルトの名無しさん
2013/03/11(月) 23:45:42.180809デフォルトの名無しさん
2013/03/12(火) 00:28:48.97strcpy_s(buf1, n, buf2)
strncpy_s(buf1, n, buf2, m)
memcpy_s(buf1, n, buf2, m)
memmove_s(buf1, n, buf2, m)
のn > mが明らかな時は
strcpy_s(buf1, m + 1, buf2)
strncpy_s(buf1, m + 1, buf2, m)
memcpy_s(buf1, m, buf2, m)
memmove_s(buf1, m, buf2, m)
としても問題ない・・・ですよね?
またn > 100, m < 10の時
memcpy_s(buf1, 50, buf2, m)
みたいに適当な値を入れるのはあまりよくないのでしょうか?
これならいっそのこと警告を無視して「_s」の無い関数を使ったほうがいいのでしょうか?
0810デフォルトの名無しさん
2013/03/12(火) 00:40:22.08それ以下でも動くけど使い方としては間違っている。
0811デフォルトの名無しさん
2013/03/12(火) 00:49:44.72中途半端に_sを使うぐらいなら、警告無視して従来のでやってた方がいいと思うよ
0812809
2013/03/12(火) 02:03:10.05char buf[100] = "aaabbbcccdddeee";
char *buf1 = strchr(buf, 'd');
char buf2[] = "CCCDDD";
memcpy_s(buf1 - 3, sizeof(buf) - (buf1 - 3 - buf), buf2, 3);
みたいな時
memcpy_s(buf1 - 3, 3, buf2, 3);
としても期待した結果(buf:aaabbbCCCdddeee)が得られたので計算するのが何だか無駄に思えて・・・
上の第2引数の計算式もあってるか不安になりますし。
でもやっぱり下では何か問題があるのでしょうか?
0813デフォルトの名無しさん
2013/03/12(火) 02:05:58.430814デフォルトの名無しさん
2013/03/12(火) 03:35:05.300815デフォルトの名無しさん
2013/03/12(火) 08:17:17.77>すいません、例えば
>char buf[100] = "aaabbbcccdddeee";
>char *buf1 = strchr(buf, 'd');
>char buf2[] = "CCCDDD";
>memcpy_s(buf1 - 3, sizeof(buf) - (buf1 - 3 - buf), buf2, 3);
strchr(buf,'d')で得られるポインタの3文字前が有効なんて仮定の話はしたくない。
>memcpy_s(buf1, sizeof(buf) - (buf1 - buf), buf2, 3);
これなら正しい
0816デフォルトの名無しさん
2013/03/12(火) 09:36:09.64■ このスレッドは過去ログ倉庫に格納されています