トップページ⇒tech
986コメント346KB

★初心者にVisual C++を教えるスレ★ Part38

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/11/03(木) 00:54:48.61
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特に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/
0229デフォルトの名無しさん2012/03/16(金) 16:02:23.83
デバッグ->ブレークポイントの作成->データブレークポイント で値が変更されたときに止まるから調べてみ
0230デフォルトの名無しさん2012/03/16(金) 16:21:43.31
>>229
ある配列の値が変更された際に、変更した分だけグローバル変数の値が変わるようです。
もちろん配列にセットしているわけじゃありません。

変数名で全文検索しましたが、明示的に指示してはいませんでした。
スコープを考えてもそれは考えにいです。
0231デフォルトの名無しさん2012/03/16(金) 17:47:27.22
アドレスかぶってんだろ、自分でいれたバグかと
0232デフォルトの名無しさん2012/03/16(金) 19:14:37.54
ポインタを理解していない人のコードって怖いよね
0233デフォルトの名無しさん2012/03/16(金) 19:21:57.82
理解してても実際管理しようと思ったら死ぬる
0234デフォルトの名無しさん2012/03/22(木) 23:32:35.36
GUI付きのプログラム作るときって
GUIから作るのかデータ構造から作るのかどっちなの?
0235デフォルトの名無しさん2012/03/22(木) 23:43:12.85
どっちから先に作ってもいいがな(´・ω・`)
経験的には顧客に見せるためにGUIが先に出来上がるケースが多いが
しかし作ること自体は同時進行(´・ω・`)
0236デフォルトの名無しさん2012/03/22(木) 23:43:23.27
M作って
V作りながらVM作る
0237営利利用に関するLR審議中@詳細は自治スレへ2012/04/04(水) 22:49:55.84
BOOL CStudioView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;

cs.lpszClass = AfxRegisterWndClass(
CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW),
(HBRUSH)::GetStockObject(LTGRAY_BRUSH),
NULL);
return TRUE;
}
0238営利利用に関するLR審議中@詳細は自治スレへ2012/04/04(水) 22:50:45.57
BOOL CStudioView::PreCreateWindow(CREATESTRUCT& cs)
{
BOOL bool1 = CWnd::PreCreateWindow(cs);
if (!bool1)
return FALSE;

UINT nClassStyle = (UINT)(CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS);
/* WINUSERAPI */ HCURSOR /* WINAPI */ hCursor = ::LoadCursor(NULL, IDC_ARROW);
/* WINGDIAPI */ HGDIOBJ /* WINAPI */ hGDIObj = ::GetStockObject(LTGRAY_BRUSH);
HBRUSH hbrBackground = (HBRUSH)hGDIObj;
cs.lpszClass = AfxRegisterWndClass(nClassStyle, hCursor, hbrBackground, NULL);
return TRUE;
}
0239営利利用に関するLR審議中@詳細は自治スレへ2012/04/04(水) 22:52:25.34
普通の人は>>237のようにコード書く人が多数のようだが、
>>238のようにコードを書くのは異常かいな。
0240営利利用に関するLR審議中@詳細は自治スレへ2012/04/04(水) 23:05:39.21
そんなことないと思うけど。
自分も程度の差はあるけど 237 ダイレクトな書き方はあんまりしない。
0241営利利用に関するLR審議中@詳細は自治スレへ2012/04/05(木) 02:25:10.04
だって、bool1にしてもnClassStyleにしてもhbrBackgroundにしてもたった一回しか使ってないじゃない
変数の準備と書き込みと破棄の3つの動作がまるまる無駄になってる
この関数が1秒間に何回も呼び出されるようなシロモノだとパフォーマンスにクリティカルなダメージが出る

といっても、コンパイラが潰してくれるかな^^
0242営利利用に関するLR審議中@詳細は自治スレへ2012/04/05(木) 07:23:23.72
PODの生成破壊なんてダメージほぼないだろ。
0243デフォルトの名無しさん2012/04/30(月) 16:46:18.04
VCで自作DLLを勉強しています。

Test.dllでCTestClsクラスを __declspecエクスポートし、これを同じくVC側のEXEで使用すると、
実行時に「プロシージャエントリポイント ??1CTestCls@@UAE@XZがダイナミックリンクライブラリTest.dllから見つかりませんでした」
というエラーが出て終了します。DLL、EXEともにビルドは通っています。

ttp://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/05.html

を完全に再現する手順を踏んでいます。
EXEのコードはMFC Appウィザードから作ったスケルトンにCTestClsを宣言を追加し

BOOL CWindowtestApp::InitInstance()
{
  :
  CTestCls test;
}

のみ。CTestClsはメソッド、メンバ変数のない空クラスにしています。
ちなみに、Test.dllで同様にエクスポートした関数は正常に動作します。

原因と対処法を教えてください。

環境
OS:Windows Vista Home
IDE:Visual Studio 6.0 SP2
0244デフォルトの名無しさん2012/04/30(月) 17:54:33.94
test.dllが他にもあるんじゃないか
02452432012/04/30(月) 21:05:36.55
>>244
ありがとうございます。

書き忘れましたので追加します。
ビルド構成はdebugでプロジェクトからF5実行してテストしています。

レスを頂く前に、プロジェクトフォルダに置いたtest.dllをdebugフォルダにコピーして
deubgフォルダのexeを起動したら正常動作し、
何の気なしに再度プロジェクトを走らせたらエラーは消えました。

なので、原因は同名DLLが複数あることではなかったと想像します。

次に、動作の異なるtest.dllを作ってそれぞれに配置するとdeubgフォルダの方が動くようですが、
debugフォルダのDLLを削除したり名前を変更するとプロジェクトフォルダのDLLが適用されます。
逆にプロジェクトフォルダのDLLを削除したらdebugフォルダのtest.dllが動きます。

現状がこのように変わりましたので、エラーの原因が未だ不明ですし、
VSがdebug→プロジェクトフォルダと上位に向かってDLL検索してるのも気持ち悪いです。
0246デフォルトの名無しさん2012/04/30(月) 21:12:53.83
デフォでプロジェクトフォルダが作業フォルダになるから当たり前だろ
02472432012/04/30(月) 21:27:03.02
>>246
それなら同名DLLが両方にあった場合にdebugフォルダの方が動くのはおかしいですよね。

とりあえず優先順位についてはこっちでどうこう言ってもしょうがないのでそれと憶えれば解決しますが、
エラーメッセージの原因が知りたいです。
0248デフォルトの名無しさん2012/04/30(月) 21:57:41.77
要するにtest.dllが複数バージョンあったことが原因だろ
02492432012/04/30(月) 22:16:02.72
>>248

>>245で書いたように、現在は複数あってもエラーが出ないから原因はそれではないだろうと考えているのです。
昔は複数あったことでエラーになったと仮定して、今は複数あって正常ならその差はなんですか、ということです。
プロジェクトやIDEの設定は変更していません。

バージョンを分けたのは、どっちのフォルダに置いても動くので優先順位を確認するためにしたという
手順によるもので、エラーが出ていた時に複数バージョンあったわけではありません。
0250デフォルトの名無しさん2012/04/30(月) 22:25:15.25
>>247
エラーメッセージの原因って
>??1CTestCls@@UAE@XZがダイナミックリンクライブラリTest.dllから見つかりませんでした
って、いってるんだから、原因はそれでしょ

あとはどう調査するかで、Test.dllで公開してる名前の一覧を
> dumpbin /exports test.dll
で確認してみるとか
仮にdllが正しかったとしても、ビルド時の.libファイルが古かった可能性もあるかもしれん
その場合はexe側のimport情報も出力して付き合わせてみるとか

あと、dllの検索順は
1. 実行ファイル(exe)が存在するディレクトリ
2. windowsシステムディレクトリとか
3. カレントディレクトリ
4. 環境変数 PATH に設定されてたディレクトリ
みたいになるので、debugフォルダ=>プロジェクトフォルダは別に上位に向かってdll検索するわけではなく、フォルダ検索の優先順位があるだけの話
よくわからなくて質問してるはずなのに246のアドバイスをおかしいとか断言するのはどうかと思う
0251デフォルトの名無しさん2012/04/30(月) 23:08:48.05
>昔は複数あったことでエラーになったと仮定して、今は複数あって正常ならその差はなんですか、ということです。

うわがきしてるじゃねーか
02522432012/04/30(月) 23:13:21.01
>>250
「エントリポイントが見つからない」というメッセージから、
直接の原因がそれだという程度の想像はつきます。見つからない原因が分らないという意味でした。

>よくわからなくて質問してるはずなのに246のアドバイスをおかしいとか断言するのはどうかと思う

>>246さんの言うとおりプロジェクトフォルダがデフォルトなら、
他のものが優先されるのが「当たり前」というのは筋が通らないと思いませんか?
デフォルトに優先するものがあるなら、優先順位を決定する設定値があるか、
そもそもデフォルトがプロジェクトフォルダではないと考えるのが正当ではないかと思った次第です。

検索順については副次的な疑問だったのですが、丁寧にありがとうございます。

もう一度最初から作り直してエラーを再現させてから、教えて頂いた方法で探ってみます。
ありがとうございました。
0253デフォルトの名無しさん2012/04/30(月) 23:21:16.52
元々古いバージョンがロードされたままだったんじゃね?
02542432012/04/30(月) 23:38:02.45
>>251
二つのフォルダに完全に同一のDLLファイルがあり、その片方にさらに同一のものをコピーして
ファイルに差分は無くとも「上書きした」という情報を得てエラーを解消するということがあるということですか?

単にオペレーションの差という点でのご指摘であれば、そもそもdebugフォルダに
test.dllがあったかどうかは憶えていないので、上書きかどうかは不明です。
02552432012/04/30(月) 23:54:14.06
>>253
エラーが出なくなった時点ではバージョンはひとつでした。
時系列では以下のようになります。

0.DLLビルド(debug構成の出力のみ。以下同様)、EXEプロジェクト作成(libファイルのフォルダ指定はDLLプロジェクトのdebugフォルダ)
1.EXEプロジェクト実行→エラー(エントリポイントが見つかりません)
2.EXEプロジェクトフォルダのdllをdebugフォルダにコピーしてdeubgフォルダのexe起動→正常
3.EXEプロジェクト実行→正常
4.なぜEXEプロジェクトが正常動作するようになったのか不明なため、片方のフォルダからdllを削除したり
  バージョンを分けて両方のフォルダにバージョン違いのdllを配置して優先順位の検証

そんなこと有り得ないというのであれば、私の記憶違いがあると思います。

アドバイスを下さった皆様ありがとうございます。
これらを元に0からチェック項目を作ってやり直してみます。
0256デフォルトの名無しさん2012/05/01(火) 11:07:16.24
>>252
優先順位はちゃんとドキュメントに書かれてるだろ
あたりまえなの
0257デフォルトの名無しさん2012/05/01(火) 11:49:55.54
プロジェクトフォルダ(カレント)がデフォだと言ってる奴が間違ってるんだろ。
0258デフォルトの名無しさん2012/05/01(火) 14:07:46.60
Windows95/98に対応しているVC環境教えてください。2003.NETあたりまでなら使用できそうですか?
0259デフォルトの名無しさん2012/05/01(火) 14:12:52.82
>>246がおかしいな。
実行モジュールがある場所がデフォだからdebugフォルダが優先されるのは当たり前、
と書くべきなのに、
「プロジェクトフォルダがデフォだからdebugフォルダが優先されるのは当たり前」
というのが滅茶苦茶。
0260デフォルトの名無しさん2012/05/01(火) 14:12:15.04
2010 でも可能
0261デフォルトの名無しさん2012/05/01(火) 14:15:01.04
>>260

マジか? Win95/98でも2010使えるのか(めっちゃ重そうだけど)。
ということはexpressが使えるわけか。正直インストールできるか不安だけど。
0262デフォルトの名無しさん2012/05/01(火) 14:42:12.15
>>259
作業フォルダのデフォルトがプロジェクトフォルダだって書いてるだけだろ
別に言ってることはおかしくない
それに優先に関しては言及してない
0263デフォルトの名無しさん2012/05/01(火) 15:52:56.16
>>262
優先順位について言及してなければ>>246の主語・主節はなんだ?
何が当たり前なんだ? それは文章としておかしいぞ。
つーか、デフォルトの作業フォルダはexeの出力先だろ。
0264デフォルトの名無しさん2012/05/01(火) 16:29:37.45
>>263
>debugフォルダのDLLを削除したり名前を変更するとプロジェクトフォルダのDLLが適用されます。
ここだろ
>つーか、デフォルトの作業フォルダはexeの出力先だろ。
違うよ
〜.vcxprojがあるフォルダが作業フォルダになる
0265デフォルトの名無しさん2012/05/01(火) 17:26:52.52
>>264
お前頭おかしいんじゃないの?

>debugフォルダのDLLを削除したり名前を変更するとプロジェクトフォルダのDLLが適用されます。

「当たり前」の主語が↑ということは間接的に優先順位に言及してるんだけど。
しかもなんで書いた本人にしか分らない主語を省略してるんだよwww
0266デフォルトの名無しさん2012/05/01(火) 18:09:12.11
配列の添え字に負の数や、制限を超えた時に
動作時、VBのようにエラーでとめるような手法はありますか?

int a[10];
int b ;

// OK
b = 5;
a[b] = 3;

// NG
b = -1;
a[b] = 3;

// NG
b =  15;
a[b] = 3;

Cの場合普通に動いてしまい、
メモリリークした値をそのまま使い続け
とまるときととまらないときがあって困っています。
0267デフォルトの名無しさん2012/05/01(火) 18:18:37.34
std::vectorを使う
0268デフォルトの名無しさん2012/05/01(火) 19:02:08.69
ASSERT( sizeof( a ) / sizeof( aの型 ) > b );
とか出来なかったっけ。
0269デフォルトの名無しさん2012/05/03(木) 19:11:21.90
std::vectorもいいが、std::arrayも使える。

// #include <array>
std::array<int, 10> a; // VC++ 2008だとstd::tr1::arrayだったはず。
int b;

b = 15;
a.at(b) = 3;

a[b] = 3;とも書ける。ただし、この場合、チェックされるのはデバッグビルドのときだけ。
0270片山博文MZボット ◆0lBZNi.Q7evd 2012/05/05(土) 17:07:17.98
古い環境には<array>はないようだな。
0271デフォルトの名無しさん2012/05/08(火) 18:28:47.55
VS2010C++インストール後、SDK7を入れてx64用のを作れるようにするというのは
x86のPCで64bit用のを作れるのか、それともx64のPCで64bit用のを作れるようになるのか
どっちなんでしょ


参考URL
ttp://d.hatena.ne.jp/torutk/20100927/p1
0272デフォルトの名無しさん2012/05/08(火) 18:52:16.04
後者
0273デフォルトの名無しさん2012/05/08(火) 18:53:07.72
なるほど、ありがとうございます
0274デフォルトの名無しさん2012/05/17(木) 22:25:37.08
VC++でGUIの作り方がさっぱりわかりません。
コントロールがVC#やVB.NETと比べると段ちだし・・・

やりたいことは、listとtreeを結合したようなVS2010のウォッチウィンドウを
作りたい
0275デフォルトの名無しさん2012/05/17(木) 22:27:45.08
codepadあたりにそんなのあった気がする
0276デフォルトの名無しさん2012/05/17(木) 22:47:29.61
>>275
作りたい
0277デフォルトの名無しさん2012/05/17(木) 22:52:47.07
馬鹿には無理
0278デフォルトの名無しさん2012/05/17(木) 22:56:07.95
>>277
説得力のあるお言葉ですねw
0279デフォルトの名無しさん2012/05/17(木) 23:09:06.89
WindowsでWindowsっぽいGUIやりたいならC#使えば?
どうせアマチュアでしょ?
0280デフォルトの名無しさん2012/05/17(木) 23:24:36.65
アマチュアって?

仕事以外でそんなことするほど、暇じゃないし。
ヲタでもありません。
0281デフォルトの名無しさん2012/05/17(木) 23:33:10.24
作りたいんじゃないのか
0282デフォルトの名無しさん2012/05/17(木) 23:43:50.63
http://radiko.jp/#TBS
0283デフォルトの名無しさん2012/05/18(金) 00:08:56.59
>>281
好き好んで作りたいわけでない

作らざるを得ない
0284デフォルトの名無しさん2012/05/18(金) 00:20:47.41
仕事なら自分でやれ

アマチュアなら教えてやったんだがな
0285デフォルトの名無しさん2012/05/18(金) 00:21:06.71
なんでそんなにエラそうなんだよ。w
揚げ足取りをすると、自分で「作りたい」って書いてるし。

で、そんなこたどうでもいいんだが、結局どうして欲しいんだよ。
技術者の端くれなら、その程度の説明くらいはちゃんとしろ。
0286デフォルトの名無しさん2012/05/18(金) 00:28:19.21
>>284
なんとでもいえるわなwww
0287デフォルトの名無しさん2012/05/19(土) 15:59:31.16
>>274
リソーススクリプトを覚えれば自由自在にGUIを作れるよ
MSDNの英語版に詳しく載ってるから勉強してみたら
0288デフォルトの名無しさん2012/05/20(日) 05:26:03.56
------ ビルド開始: プロジェクト: testtttt, 構成: Release Win32 ------
printf.c
printf.c(1): fatal error C1083: include ファイルを開けません。'stdio.h': No such file or directory
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

このエラーにはどうすればいいのでしょうか
サンプルを使っている為ソースコードには問題ないのでしょうが・・・

WinXP
02892882012/05/20(日) 05:26:59.12
すいません
途中送信してしまいした

WinXP SP3
VC2010です
よろしくお願いします
0290デフォルトの名無しさん2012/05/20(日) 07:09:28.51
プロジェクトを作り直してプリコンパイル済みヘッダを使用しないにチェック入れろ
0291デフォルトの名無しさん2012/05/25(金) 19:10:45.19
2010のEEですけどインテリセンスと自動構文チェック無いんですか?
C#から手を広げてみたらIDEまで扱い辛い・・・
0292デフォルトの名無しさん2012/05/25(金) 20:43:10.20
c#は馬鹿でも使える、っていうか、馬鹿に使ってもらおうとしてるものだから仕方ないよ
ネイティブが生成できないから、c#で作ってもなんの役にも立たんがw
0293デフォルトの名無しさん2012/05/26(土) 00:11:38.84
C#アプリの起動があまりにも遅いんで、VC+++MFCに乗り換えようと思ってるのですが
ものすごく壁が高い・・・

まったくGUIが作成できないんですが、VC+++MFCってGUIを作成するものじゃなくて、
ビジネスロジックだけを記述するものとしての扱いなのでしょうか?
0294デフォルトの名無しさん2012/05/26(土) 00:17:38.37
リソースエディタ使えよ
0295デフォルトの名無しさん2012/05/26(土) 00:52:08.27
VC++はぜんぜんVisualじゃないからなー。
っていうかリソースエディタなんてまどろ☆コシイもの使わないで
自前でCreateWindowしようず
0296デフォルトの名無しさん2012/05/26(土) 01:36:54.13
馬鹿には無理
0297デフォルトの名無しさん2012/05/26(土) 05:12:39.12
>>293
.NETFrameworkの中にFormアプリのパーツが入ってんでしょ
0298デフォルトの名無しさん2012/05/26(土) 10:37:46.68
VC が Visual じゃないとか、幸せな世代だよな。。。
おっさん言われることを承知で書いてみる。

自分の場合は、敢えてテキストエディタで GUI 部分書いたり、Windows API だけで書いたりして遊んでたんだがな。
0299デフォルトの名無しさん2012/05/26(土) 10:58:27.25
簡単なものなら、そうだろうな
3DSMAXのようなGUIを作ろうとすると、かなり苦労するよ
0300デフォルトの名無しさん2012/05/26(土) 12:27:52.15
むしろおっさんこそ、VCは全然Visualじゃなかったって想い出すねぇ。
単にリソースを手書きしないですむだけだったVC++4に対して、
ポトペタのDelphiやVisual Cafe(ただし不安定w)やVB4が全盛だったから。
なつかしす。
0301デフォルトの名無しさん2012/05/28(月) 18:39:48.24
2.0までは全然Visualじゃなかったなw
0302片山博文MZボット ◆0lBZNi.Q7evd 2012/05/30(水) 11:17:09.67
>>293
アプリを常時起動しておいて、PCを使わないときはアプリを起動したまま、
休止状態にする。休止状態にするには、終了オプションでHを押す。
0303デフォルトの名無しさん2012/05/30(水) 13:38:57.35
GUIの話題が出てたので一言

「男は黙ってリソーススクリプト」
0304デフォルトの名無しさん2012/05/30(水) 16:46:27.92
アニメといえば米国製が主流だったインドで、日本アニメのファンが急増している。さまざまな作品が衛星テレビで放送され、
日本政府による積極的なPRも奏功。若者の心をとらえ、西部ムンバイでは愛好会の活動も本格化している。

「ストーリーが奥深く、登場人物に感情移入しやすい。シリアスな展開の中に笑いがあるなど、飽きが来ない構成も魅力」
アニメファンが集う「ムンバイ・アニメ・クラブ」会長のラチタ・サハさん(23)が日本アニメの魅力を説く。

同クラブは2010年に約10人で発足し、今では会員数が1000人を超える。月1回の会合では、
アニメソングのカラオケや、アニメの登場人物に似せた衣装を着用する「コスプレ」も楽しむ。

インドでは今秋から、国民的球技クリケット版「巨人の星」の放送が決まっているが、関心はまだ低く、
視聴可能な「クレヨンしんちゃん」などのほか、日本でも話題の「ONE PIECE(ワンピース)」が人気だ。

「作品からあふれ出る日本文化に興味がある」(サハさん)。他国のアニメに比べて緻密に表現された日本の街並みなどの描写や、高度な映像技法などへの評価も高い。

日本の経済産業省が3月にムンバイで開いた日本アニメなどを紹介する見本市は好評だった。
アニメソングを熱唱したメンバーのミニスカートのコスプレ姿は、全身を包む女性の伝統衣装サリーが一般的な同国の観衆の目をくぎ付けにした。

ファン層は確実に広がりつつあるが、インドでは新作DVDなどの入手が難しいのも現実だ。
「もっと手軽にアニメ関連商品が手に入るようになれば」とサハさんは期待している。

http://www.sankeibiz.jp/macro/news/120530/mcb1205300502005-n1.htm
0305デフォルトの名無しさん2012/05/31(木) 15:24:53.13
なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね
0306デフォルトの名無しさん2012/06/01(金) 21:17:53.03
305 :デフォルトの名無しさん:2012/05/31(木) 15:24:53.13
305 :デフォルトの名無しさん:2012/05/31(木) 15:24:53.13
305 :デフォルトの名無しさん:2012/05/31(木) 15:24:53.13
305 :デフォルトの名無しさん:2012/05/31(木) 15:24:53.13
305 :デフォルトの名無しさん:2012/05/31(木) 15:24:53.13
0307デフォルトの名無しさん2012/06/01(金) 21:36:04.50
どいつもこいつも遠い目をしやがって。

お前たちの時代は終わった
0308デフォルトの名無しさん2012/06/02(土) 17:49:00.64
>>303
真の男は黙ってCreateWindow
0309デフォルトの名無しさん2012/06/03(日) 00:21:45.14
VC++ってダイアログじゃなきゃ、コントロールを貼り付けたりできないの?

0310デフォルトの名無しさん2012/06/03(日) 00:22:40.05
はい
0311デフォルトの名無しさん2012/06/03(日) 00:56:01.71
どんなコントロールを貼り付けるつもりなんだ。
ウィンドウの一種としてのコントロールなら、やりようはあったんじゃなかったっけ。
0312デフォルトの名無しさん2012/06/03(日) 01:27:10.29
貼るだけなら出きる
イベントとかデータ受け渡しとか面倒なだけ
0313デフォルトの名無しさん2012/06/03(日) 03:53:22.77
プログラミングWindowsを読むんだ。
コントロールもWindowであり
もちろんダイアログもWindowsなので
結果として、コントロールはありとあらゆる場所に描画できる。
0314デフォルトの名無しさん2012/06/03(日) 03:53:58.09
誤:もちろんダイアログもWindowsなので
正:もちろんダイアログもWindowなので
0315デフォルトの名無しさん2012/06/03(日) 04:22:08.43
>>313
しょぼいコントロールしかCreateWindowできないようですが?
C#にあるような、グリッドコントール(チェック、コンボ等あるやつ)を貼り付けたいです。
0316デフォルトの名無しさん2012/06/03(日) 04:25:57.82
コモンコントロールにそんな高度な機能を期待するもんじゃない
codepadあたりから探してくるか自分で作るしかない
0317デフォルトの名無しさん2012/06/03(日) 11:17:03.25
リッチなコントロールをポトペタしたいなら、VC++という選択肢自体がありえんよ…
C#にあるようなリッチなコントロールの一部はMFCにもないからな。
0318デフォルトの名無しさん2012/06/03(日) 12:30:41.38
VC++MFCは、本格的なアプリの作成には向かないのでしょうか?
0319デフォルトの名無しさん2012/06/03(日) 12:31:58.54
「本格的」がせいぜいパンツレスリング程度のいみならMFCは向いているよ。
0320デフォルトの名無しさん2012/06/03(日) 14:09:59.74
なんでも出来るよ。ある意味最強。
ただし作る人の腕による。
0321デフォルトの名無しさん2012/06/03(日) 19:11:51.31
日本のサイトは大抵おんなじことばっかですよね
listctrlやtreectrlの使い方とかばっか、そんなのMSDN見れば誰でもわかるっての

listctrlを改造して、セルにコンボボックスやプログレスバーやスライダやツリーを合体させた
コントロールの作り方なんて全くない・・・

英語が苦手じゃなかったらな〜
0322デフォルトの名無しさん2012/06/03(日) 20:15:46.06
リストコントロールのセルにプログレスバーとかスライダとかツリーとか合体させんの?
イメージ出来んが。w

真面目に。
リストコントロールや Microsoft FlexGrid Control とかにコンボボックス貼り付けて入力可能にしたり、の
複数コントロールをまとめてひとつのコントロールに見せるな程度のことなら昔作ってたぜ。
その「大抵おんなじことばっか」の日本語サイトを参考にしつつ。
おまえって 309 ? だったら足りないのはサイトじゃなくておまえの情報収集能力だよ。
つまんない言い訳してないでとっととやれよ。
0323デフォルトの名無しさん2012/06/03(日) 20:29:02.74
>>321
そんなコントロールの使い道があるのか?w
0324デフォルトの名無しさん2012/06/03(日) 20:38:56.28
まぁ、大抵おんなじことばっかですよね
ってのは当たらずとも遠からず

どのHPも、本にのってるサンプルプログラムを書いているだけのが多い

VC++で最初に躓くところだろうな。
通り一辺倒のアプリはすぐ作れるようになるけど、ちょっと変わった要求がきたら
とたんに、どこをどういじればいいかわからなくなる。

0325デフォルトの名無しさん2012/06/04(月) 21:21:06.07
それは素振りもせずにいきなり試合をするような入門書ばっかり読んでるからじゃないか?
プログラミングWindowsみたいに、基礎からしっかり教えてくれる本なら、
どんな要求にも答えられる実力がつく。
0326デフォルトの名無しさん2012/06/04(月) 21:25:51.54
プログラミングWindows
を読んだことがあるのか?

当たり前のことしか書いてないぞ
何が名著なのかさっぱり???
0327デフォルトの名無しさん2012/06/04(月) 21:26:14.97
WindowsnのしくみとC++の仕様とVCの環境の知識は別だからなー

最近だと.NET FrameworkとC#とかもごっちゃになってるね
0328デフォルトの名無しさん2012/06/04(月) 21:58:33.68
VC プログラミングでもっとも参考になったのは MFC の中身だったな。結局。
初心者には敷居が高すぎる気もするが。
■ このスレッドは過去ログ倉庫に格納されています