[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:59 / Filesize : 221 KB / Number-of Response : 903
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

797 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:41:39 ]
[編集] メニューの [ブレークポイント] をクリックします。


[ブレークポイント] ダイアログ ボックスで、[データ] タブをクリックします。


[評価される式を入力してください] ボックスに変数名を入力ます。


[OK] をクリックしてブレークポイントを設定します。

798 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:53:07 ]
>>797
できました
ありがとうございます

799 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:50:52 ]
VC2008EEでデバッグしています。
forのループ内にブレークポイントを置いてステップアウトしているんですが、
ループの回数が1000単位なので、1回ずつ変数の状態を見るのは手間がかかりすぎてしまいます。
例えば100回に1回だけ変数の状態を見たい場合、いい方法はないですか?

800 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:55:42 ]
>>799
>>796-797の応用

801 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:22:52 ]
>>800
6と2008EEの違いのせいか、>>797の項目が見つからず、
いろいろいじってたらヒットカウントというぴったりの物がありました。
どうもでした。

802 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:21:37 ]
いまここに、Ansi C で書いたスタティックライブラリ c.lib があります。
そのライブラリをつかって、C++で書いたアプリケーション(GUIに依存しない部分を記述したもの)myapp があります。
GUI はお手軽に C# で書きたいので、アプリケーション部分 myapp を dll 化して、それを C# から呼び出したいです。

そこで、myapp.dll をつくりたいのですが、いざビルドしてみると、myapp から c.lib の関数を参照している部分でリンカエラーになります。
c.lib をスタティックリンクさせた状態で myapp.dllをつくるにはどうすればよいでしょうか?
c.dll を作るのがめんどくさいので、myapp.dll が c.lib を内包してくれるとありがたいのですが。




803 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:22:08 ]
できるはずだから、リンカオプションがまずいだけ。

804 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:17:43 ]
extern "C"
{
#include "[c.libの関数のヘッダ]"
}
でもリンクエラーが出る?

805 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:19:15 ]
リンカオプションですか....
c.lib をスタティックリンクするのって、もしかして
myapp.dll のソースで #pragma comment(lib, "c.lib")
だけではダメだったりしますか?
(もちろん c.lib のあるディレクトリにパスが通ってるのが前提として)




806 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:34:56 ]
それであっている。EXEでLIB使うときと同じ。
そういえば、そのLIBとDLLでCRTの設定は同じ?
異なっているといるとよくリンカに怒られる。

807 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 23:58:52 ]
現在デバッグビルドで試していますが、ランタイムライブラリの設定は c.lib と myapp.dll の両方で
「マルチスレッドデバッグ (/MTd)」で統一してあります。

呼び出し規約が c.lib だとデフォルトの設定のままで __cdecll に、
mydllではDLLのお約束(?)に従って __stdcall になっているのが気になりますが、
これは問題があったとしても実行時にでるものであって、リンカエラーとは関係ないですよね...
書き忘れましたが、リンカエラーというのは

未解決のシンボル "int __stdcall AAA()" (?AAA@@BBB@@CCC@D" が関数 "public: int __thiscall EEE::FFF() (?FFF@EEE@@GGG) で参照されました

というのがつらつらでてくるものです。
myapp(C++)もともと exe として作っていて、そこから c.lib を参照するために、
cライブラリには既に extern "C" が記述してあります。

そしてその exe はきちんとビルドできて、実行できていました。

それでも念のため、ライブラリの #include をさらに extern "C" で囲んでみると、
なぜか Direct3D のヘッダ d3dx9math.h で大量の

"operator *" Cのリンゲージ関数はC++のクラス D3DXVECTOR2を戻せません

メッセージがでました。

もうすこし試してみます。

808 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:34:48 ]
呼び出し規約の違いはdefファイル使わねえとそのまま名前装飾に影響する

809 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:54:26 ]
そういうことで惑うなら、呼出規約はソースコードに
いちいち書いたほうがいいよ。コンパイラオプションにて一括で指定するのではなく。

810 名前:デフォルトの名無しさん [2009/06/06(土) 02:08:13 ]
MFCのMDIで秀丸みたいなマルチドキュメントにしたいんだけど(タブ形式)
普通にEditビューじゃタブ形式にならないんだけど、どうすればいいの?

811 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:03:48 ]
なるだろ?
2008のSP1限定だけど

812 名前:807 mailto:sage [2009/06/06(土) 11:32:31 ]
なるほど、呼び出し規約を変えたら嘘のようにエラーがなくなりました。
いままで呼び出し規約を気にした事はなかったので、良い勉強になりました。どうもありがとう。

813 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:15:31 ]
なるほどなるほど

814 名前:デフォルトの名無しさん [2009/06/06(土) 12:30:33 ]
VC++でWin32プログラムを作成しています。
VS2008の雛形を元に、DialogBoxを追加しようとしているのですが上手く出来ません。
現在はファイルとヘルプの2個だけです。
やったこと
(1)WndProc()のmessage引数で、WM_CREATEが渡された場合に
DialogBox(hInst, MAKEINTRESOURCE(IDD_XXXBOX), hWnd, Xxx);
と書いた
(2)Xxxは以下のような関数です
INT_PTR CALLBACK Xxx(HWND, UINT, WPARAM, LPARAM);

コンパイルは出来たのですが、DialogBoxは増えませんでした。
どうかやり方を教えてください。



815 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:46:35 ]
その手順で普通にやればできるから、コードがどこかおかしい。



816 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:02:13 ]
ShowWindowしてないだけだったりして。

817 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:07:01 ]
通常はそれも不要だが。

818 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:21:55 ]
モーダルで停止

819 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:26:23 ]
ダイアログボックスなら「表示」と書くと思うが「追加」だとか「増えません」だとか表現している点が気になる。

・・・見当違いのことをやろうとしているのではあるまいか?

820 名前:デフォルトの名無しさん [2009/06/06(土) 14:06:02 ]
libjpegのライブラリにjpegtran機能も組み込みたいと思ってるのですが、
ソース・ヘッダファイルにjpegtranプロジェクトに入ってるもの(transupp等)を足しても、
そっちで宣言されている関数だけ、
ライブラリを呼ぶ側のアプリでリンクエラー(外部参照未解決)が出てしまいます。
その他の標準でlibjpegプロジェクト内で既に宣言されていた関数は(使えるかはともかく)エラー出ません。

ソースはIJGのではなく、VC++のプロジェクトファイルも入ってる高速化版(ソフトウェア工房α)です。
nasmも入れてあり、コンパイル自体はエラー吐くことなく成功します。

ビルドの仕組みを理解できてなくてSource/Header Files に入れるだけでは駄目っぽい以外解らず助言頂けませんでしょうか。
ただし、lib自体の容量は大きくなります。

VC++のバージョンは6.0です。Win32アプリ開発。

821 名前:デフォルトの名無しさん [2009/06/06(土) 14:36:50 ]
しかし、
Vc6の開発者おおいね。。libjpegとかつかったなあ。VC6ってGDI+つかえるんだっけ。。

822 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:47:15 ]
ライブラリの開発者に直接聞かないで全然関係ない掲示板で質問されてもな

823 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 18:52:55 ]
>>821
使える。

824 名前:820 mailto:sage [2009/06/06(土) 19:40:49 ]
ライブラリそのものは自分でビルドしてます。
また、ソースコードはほぼIJGそのままで、IJG提供のソースを、調べたnmakeでのコンパイルしても
transupp等の組み込みが出来てないので、同様のエラーを吐きます。

日経ソフトウェアダウンロード からプロジェクトファイルを落として見たものの同様の状況で
jpegtranに使用される関数をライブラリに組み込む事が出来ませんでした。
ただSource/Header Filesに入れるだけではライブラリ作成時にエラーが出なくとも呼び出し側でリンクエラー同じです。

bccでlibjpegライブラリを使ってjpegtranの無劣化回転処理を組み込んでいる方が居たので、
可能な事は確かなのですが・・・。(そのライブラリはVC++からでは使用できず)

825 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 20:05:58 ]
すみませんひとりごとでした



826 名前:デフォルトの名無しさん [2009/06/06(土) 20:08:50 ]
そこで#pragmaですよ。。

827 名前:デフォルトの名無しさん [2009/06/07(日) 07:29:11 ]
Win32アプリケーションを選択してC++でプログラムを書いてるのですが、
std::cout<<message<<std::endl;
とかやってもどこにもメッセージが出力されません。どうすればよいですか?


828 名前:デフォルトの名無しさん [2009/06/07(日) 08:01:24 ]
AllocConsole()とかを使おうかと思ったのですが、よく分からなかったので
HWNDをMessageBox()に渡して、メッセージを出すことにしました。
ありがとうございました。


829 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:41:00 ]
下のように、クラスAAのインスタンスを、メモリーに割り当てたときに。
コンストラクタとデストラクタをどうやって起動したらいいのでしょ?

class AA { int i1,i2; AA(); ~AA(); }
void func()
{
 char dat[100];
AA *dat;
 dat = (AA *)dat;
}


830 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:44:43 ]
割り当てたら勝手に実行されるんじゃないの
解放したらまた同じく

831 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:46:14 ]
上の場合、ポインターがセットされるだけなので、実行されないです。
この場合の実行の仕方を知りたいです。

832 名前:デフォルトの名無しさん [2009/06/07(日) 10:46:35 ]
Win32アプリケーションとWindowsフォームアプリケーションでは、何が違いますか?


833 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:48:55 ]
>>832
フォームの使用・非使用

834 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 11:46:45 ]
WinMain/main

835 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:38:05 ]
VisualStudio 2008 EEのVC++で公開ソースをビルドしようとしたのですが、
afxwin.hがないとエラーが出たので”Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う”
を見て設定しました。そして、ビルドをしたら
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
というエラーがでます。ソースは

_AFXWIN_INLINE CMenu::operator==(const CMenu& menu) const
  { return ((HMENU) menu) == m_hMenu; }
_AFXWIN_INLINE CMenu::operator!=(const CMenu& menu) const
  { return ((HMENU) menu) != m_hMenu; }
_AFXWIN_INLINE HMENU CMenu::GetSafeHmenu() const
  { ASSERT(this == NULL || m_hMenu == NULL || ::IsMenu(m_hMenu));
    return this == NULL ? NULL : m_hMenu; }

となっており、2行目と4行目でエラーがでます。
どう書き換えればエラーが直るでしょうか。



836 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:45:37 ]
MFCはEEじゃ使えないからダメ。

837 名前:835 mailto:sage [2009/06/07(日) 13:03:46 ]
>>836
ということはソースを修正しても無駄ということですね。ありがとうございました。

838 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:57:38 ]
>>829 の質問別スレで聞いて見ます。

839 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:10:05 ]
実体がないのにコンストラクタは働かない。

840 名前:デフォルトの名無しさん [2009/06/07(日) 14:53:27 ]
小生、昨日、サッカーを久しぶりにテレビ観戦して
試合後、ニュー速で試合を見て思ったことを、色々書いたら
ぼっこぼこ馬鹿にされたなりよ。やっぱ小生がそこそこ偉い発言できるのはMFCしか無いと思ったなりよ。

841 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:00:06 ]
DLLなど複数プロジェクトが含まれるソリューションを開発する時、
ソース内のincludeパスの指定どうしてますか?
VC++の場合はProjectDirとSolutionDirの2つがデフォルトで
使えると思いますがこれの使い分けとか気にしてます?

842 名前:デフォルトの名無しさん [2009/06/08(月) 11:21:47 ]
VS2008で、Cのプログラムをコンパイルするとき、CとしてコンパイルするかC++として
コンパイルするかというのは、自分で決められますか?

843 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:27:48 ]
できる。
IDE内ならオプションにあるべ。
コマンドラインでも指定できるし、何も指定しないと拡張子から区別される。

844 名前:デフォルトの名無しさん [2009/06/08(月) 12:40:49 ]
>>843
ありがとうございます。
別ファイルにある
double func();
というのをmain()から呼んでる時、main()のすぐ上でint func();という宣言があるので
C++では呼び出せてたのですが、ふとこれがCだったら呼び出せてなかったっけ、と気になった
ので…。


845 名前:デフォルトの名無しさん [2009/06/08(月) 14:15:29 ]
ソースを書いてる時のコメントの色が見づらいので変更したいのですが色とかはどうやって変更したらいいですか?



846 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:19:03 ]
ツール - オプション - 環境 - フォントおよび色

847 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:36:58 ]
>>846
ありがとうございます!!

848 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:17:07 ]
VC6 いまだに使ってますけど
ゲーム作成にしか使わないんですがバージョンアップする必要ってあります?

値段とファイルサイズだけがバージョンアップされあまり期待できないのですが

849 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:00:50 ]
>>848
VC6はもうC++対応じゃないと思った方がいい。VC6言語だと思った方がいいくらい、標準と違う。

それを踏まえると、標準C++を学びたいわけでもなく、
現状のゲーム作成で困ってないなら変えない方がいいんじゃないかな?


850 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:02:05 ]
Microsoft Visual C++ 2008 Express Edition
無償で公開されているから体験してみるもよかれ!

851 名前:デフォルトの名無しさん [2009/06/08(月) 20:08:53 ]
便乗質問・・・

VC6のStandardでしこしこ
アプリ作ってんだけど、
ぷろになりたいと思ってきた。その場合、Proffessional
editionの方がいいのかえ?


852 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:17:07 ]
VC6のサンプルプログラム見せるよりは、新しいVCのサンプルの方が可能性は高い

853 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:18:38 ]
サンプル −> 自作ソフトのサンプル

854 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:21:19 ]
>>850
EE版だとMFC動かないんだよね
.netFrameworkは開発者のオナニーがたくさんつまった作品
オナニーたくさんやった挙句なにも便利になっていない
相変わらず細かいことをするにはいつもどおりの苦労を迫られるし
今度はやけにネットの情報が少ない

855 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:01:31 ]
.NETで楽するならC#やVB.NETのような新言語でやらないとだめだ。
C++でやったら両方の悪いとこ同士が増幅されるだけ。

>>851
VC6の頃だと、Standardでは作ったものの商用利用が認められていなかった気がする。
そういう意味でProfesionalが必要だった。
あと、Stdでは最適化が使えない。

VC2005 (VC8)の辺りから、エディション問わず商用利用可能になっている。
最適化も基本的なものは全エディションで使えるし。



856 名前:デフォルトの名無しさん [2009/06/08(月) 21:05:55 ]
Visual C++ Express Editionにboostを入れようとしています。

(1) boost のダウンロードwww.boost.org/ のWelcome - Download から
 boost_1_38_0.zip とboost-jam-3.1.17-1-ntx86.zip をダウンロード

(2) boost_1_38_0.zip を展開し、内容をC:¥develop へ展開する。(他のディレクトリでも可)

(3) boost-jam-3.1.12-1-ntx86.zip を展開し、bjam.exe をC:¥develop¥boost_1_38_0 へコピー

(4) コマンドプロンプトを開き、ディレクトリを移動。
CD C:¥develop¥boost_1_38_0

(5) "C:¥Program Files¥Microsoft Visual Studio 9.0¥Vc¥bin¥vcvars32.bat" を実行

(6) bjam --build-type=complete msvc stage を実行

(7) Visual Studio を起動し、[ツール] > [オプション] を開き[プロジェクトおよびソリューション]>[VC++ディレ
クトリ] を開く。
右上の「ディレクトリを表示するプロジェクト」で「インクルードファイル」を選び、新しい行を作って
"C:¥develop¥boost_1_38_0" を追加する。おなじく「ライブラリファイル」に"C:¥develop¥boost_1_38_0¥
stage¥lib" を追加する。

と手順どおりにしているのですが、

fatal error C1083: include ファイルを開けません。'boost/array.hpp': No such file or directory

というエラーがでてコンパイルができません。
どうしたらいいですか??


857 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:17:20 ]
そのエラーメッセージに書いてある通り

858 名前:デフォルトの名無しさん [2009/06/08(月) 23:39:12 ]
クリティカルセクションの質問なのですが、
main()でInitializeCriticalSection()やって、その後_beginthreadex()します。
その後以下の処理を行うスレッドを100個起動させます。
EnterCriticalSection()
カウンターをインクリメント
LeaveCriticalSection()
そして、main()関数内でWaitForMultipleObjects()で全スレッドの終了を待ちます。
WaitForMultipleObject()の直後にカウンターの数を表示させているのですが、
これが100になりません。(95とか55とか)
クリティカルセクションの使い方が間違ってるのでしょうか?


859 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:43:40 ]
カウントの処理に問題があるのでは?

860 名前:デフォルトの名無しさん [2009/06/08(月) 23:58:22 ]
WaitForMultipleObject()が全スレッドの終了まで待っていないようです。


861 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:12:24 ]
>>858
それ以前に、そのスレッドちゃんと全部生成されていることを確認したか?

862 名前:デフォルトの名無しさん [2009/06/09(火) 00:21:34 ]
>>861
確認しました。やっぱりWaitForMultipleObject()がスレッドの完了待ちをしてませんでした。
WaitForMultipleObjects(100, hThreads, TRUE, INFINITE);
この形で呼び出していて、戻り値は-1でした。


863 名前:デフォルトの名無しさん [2009/06/09(火) 00:31:03 ]
とりあえず自己解決しました。
main()の最後に
while(count!=100)
;
みたいなループを入れると動きました。なんとか動きそうです。


864 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:39:48 ]
WaitForMultipleObject の第一パラメタ(最大ハンドル数)は 64 まで


865 名前:デフォルトの名無しさん [2009/06/09(火) 00:50:56 ]
>>864
ええーっ、64ですか?
そうか、MAXIMUM_WAIT_OBJECTSですか…

じゃあ65以上のスレッドを待ちたい時はどうすんのかと思ってMSDN見たら、
64個のスレッドを待つまとめスレッドを作って、そのスレッドを待つようにしろ、
と書いてました。そんなの今からかけないよ〜

でもありがとうございました。






866 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:26:07 ]
スレッドが100個とかどういうとき必要になるんだろう。


867 名前:デフォルトの名無しさん [2009/06/09(火) 10:37:05 ]
HTTPサーバみたいなサーバプロセスを書いているのですが、コネクションが来るたびに
スレッドを生成してWorker Threadパターンでやってます。今朝は100個のコネクション
が一挙にキタ場合のテストをやろうとして、ああなってしまいました。


868 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:53:55 ]
アルゴリズムってなんですか?
分かりやすい例えを教えてください

869 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:17:33 ]
>>868
アルゴリズムすなわち解法
問題と答えをつなぐものがアルゴリズム。

たとえば「1〜10の総和はいくら」という問題に

Aさんは 1+2+3+4+5+6+7+8+9+10
Bさんは 11×5

と考えるだろう。
Aさんの解法もBさんの解法も「1〜10の総和はいくら」の答えを求めるアルゴリズム。

870 名前:868 mailto:sage [2009/06/09(火) 16:19:35 ]
当然正しい答えが出なきゃならんし,有限の時間で答えが出なきゃならん。

ってかスレ違いだと思われ。

871 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 17:44:48 ]
ググれ

872 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 19:37:15 ]
MFCについて質問があります。
ダイアログ上のボタンを押下したときに、エディットボックスを追加する関数を加えたいのですが、
エディットボックスを追加する関数というのはあるのでしょうか?
また、エディットボックスを追加すると同時にメンバ変数も追加することができるのでしょうか?

873 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:50:02 ]
>エディットボックスを追加する関数
動的に追加するならCEdit::Create();

動的に追加せずとも、非表示でエディットボックスを作成しておき、ボタンをクリックしたときに表示させる
という手法もある。

>メンバ変数も追加することができるのでしょうか
メンバ変数はあらかじめ用意しておく必要がある。

874 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:59:32 ]
CObject は動的生成機能もサポートしています。これは実行時に特定のクラスのオブジェクトを作成する機能です。

875 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:03:27 ]
>>873さん
ありがとうございます。



876 名前:デフォルトの名無しさん [2009/06/09(火) 22:09:10 ]
仮想関数やWindowsハンドラをオーバーライドして
基低クラスの関数を最後に呼び出すかどうかってオーバーライドする関数によって違うみたいなんだけど
初心者じゃそこらへんわからないよね(´・ω・`)

877 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:12:00 ]
「非標準の拡張機能が使用されています : 右辺値のクラスが左辺値に使用されます。」って警告ってどうやったら取れるんでしょうか
めっちゃいっぱい出ていて困っています

878 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:12:48 ]
>>876
何を...>>876君、君が何を言っているのか分かんないよ

879 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:14:44 ]
>>877
とりあえず再現するソースを公開しろ

880 名前:876 [2009/06/09(火) 22:17:22 ]
たとえばPrecreateWindow関数をオーバーライドすると
BOOL CMyNaviView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
// 修正してください。

return CView::PreCreateWindow(cs);
}
って、最後にreturn CView::PreCreateWindow(cs);の一文が入るんだけど、
本を読んでるとこれをreturn TRUE;に変更するとか、初心者じゃわからないよね(´・ω・`)

881 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:30:54 ]
PreCreateWindow()の戻り値の意味を知っていればわかるだろ。

で、君がわからないのか、それとも他人がわからないことを嘆いているのか、どっちだ?

882 名前:876 [2009/06/09(火) 22:34:36 ]
わしがわからんのじゃけど。

883 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:38:24 ]
PreCreateWindow()が FALSE を返すとウィンドウは作成されない。
じゃ、CView::PreCreateWindow() はどういう時に FALSE を返すのか、オーバーライドした関数ではどうすべきか、
なんてなことを勉強していくしかないな。AAAA

884 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:39:33 ]
うう、すまぬ。最後のAAAAは無視してくれ。
Shiftキーと同時に押しちまった。

885 名前:876 mailto:sage [2009/06/09(火) 22:42:07 ]
わかりました。ありがとう。

道は長そうだけど、そういうふうに意識して勉強していきます。

ありがとう。



886 名前:デフォルトの名無しさん [2009/06/10(水) 01:08:54 ]
_beginthreadex()で作ったWindowsのスレッドに、各スレッドごとに独自のデータを
保持させることはできますか?


887 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:18:39 ]
>>886
つTlsAlloc, TlsFree 等

888 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:34:25 ]
>>886
生成するスレッドにはパラメタを1つ渡せるので、スレッドの単位で作成したクラスや構造体の
インスタンスアドレスを渡せば良い

889 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:29:45 ]
フォルダごとコピーしてデスクトップに持ってきてデバッグしようとしたらデバッグ情報が読み込めません、シンボルが一致しません
って警告が出るんですけどどういう意味ですか?

890 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:39:29 ]
>>889
デバッグ情報にはソースファイル位置などがフルパスで格納されているから
フォルダを移動すると正常にデバッグできない

891 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:40:12 ]
>>890
じゃあ、どうすればいいんです?

892 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:42:49 ]
元の位置でデバックする

893 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:47:20 ]
それじゃ意味ねええええっうぇwっうぇえww

894 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:52:43 ]
シンボルサーバ作ればいいだけだろ

895 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:02:50 ]
    /::::::::::::::::::(  /::::::::::ヾ ヽ ヽゞ::::::::::::::::ヽ
   /::::::::::::::::::::::::::::::::::ヾ  i i ソ::::::::::::::::: ヽ
  /:::::::::::::::::::::::::::::::::::::ゞ ! i ゞ::::::::::::::::::ヽ
 /:::::::::::::::::::::──< ̄● ̄>─ | i |─< ̄● ̄>─:::::::ヽ
 |:::::::::::::::::::::/    ̄   ̄    ─ 、   ̄  ̄   ヽ::::::::|
. |:::::::::::::::::::/            /   ヽ         ヽ:::::::|
..|::::::::::::::::::/              i       |          \:::::|ぶぁぁか
.|:::::::::::::::::/              ヾ     丿        _ \::::|
..|::::::::::::::::/       ̄ ─ _    ` ─ ̄ '      ─ ̄    ヽ:::|
 |::::::::::::::::             ─ ー  | |  ー─ ̄        ヽ:|
 ヽ:::::::::::::: |     ━ ─ ─ ー ─ - | |  ─  ー ⌒ ─     |
  ヽ:::::::::::::|          _ _─ ─││ ──/ヽ_ヽ      |
   ヽ::::::::::::|      ─ ̄           _─ ̄  ノ  /─    |
    ヽ:::::::::::|          _ _ ─  ̄      / 丿     |
     ヽ::::::::::|        ヽ ̄    / ̄ - -_    / /      /
      \:::::::::|        \   ノ    -_ _ ) / /     /
       \:::::::|          \      ノ ─' ノ       /
         \:::::|            ─ _ __ ー '       /





896 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:06:23 ]
リモートログインしちゃえよ

897 名前:デフォルトの名無しさん [2009/06/12(金) 02:02:02 ]
MFCのために¥15000だしたいんだけど、金無いなりよ。

898 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 02:03:59 ]
>>897
学生ならドリスパでタダでVS2008プロを落とせる

899 名前:デフォルトの名無しさん [2009/06/12(金) 09:55:20 ]
VC++eeなんですけど
プロジェクトフォルダで、自分の書いたソースファイルとかプロジェクトの設定が書いてあるファイルなどと、
ビルドした時の中間ファイル?とかビルドファイルとフォルダを変える事ってできますか?

どこでも参照できるように自鯖のサブバージョンに入れてみたんですけど、容量がどんどん肥大化していく・・・

900 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 10:01:52 ]
ドリスパって何?

901 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 11:19:53 ]
サッカーのチーム

902 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:22:13 ]
>>899
プロジェクトのプロパティの全般カテゴリに中間ディレクトリ指定できんだろ。
んまーそこで困ってるならsvnの無視プロパティ活用しろよとは思うが。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef