- 1 名前:デフォルトの名無しさん [2007/01/10(水) 00:00:39 ]
- 1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5。
- 152 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 19:28:22 ]
- そのまんまの意味じゃん
- 153 名前:質問1(続き) [2007/01/17(水) 19:29:04 ]
- ソースを次に書きます。
/* 派生クラスで純粋仮想関数をオーバーライドするプログラム */ #include <iostream> #include <string> using namespace std; // basepair抽象クラスの定義 class basepair { // デフォルトコンストラクタの使用を禁止する basepair() {} protected://@ A //public://@ B // データメンバ string key, value; // 引数をとるコンストラクタ basepair(const char *pstrkey, const char *pstrval) : key(pstrkey), value(pstrval) {} // getvalue()メンバ関数を定義する const char *getvalue() { return value.c_str(); } // getkey()メンバ関数を定義する const char *getkey() { return key.c_str(); } // keycomp()純粋仮想関数を宣言する virtual int keycomp(basepair &rp) = 0; // valcomp()純粋仮想関数を宣言する virtual int valcomp(basepair &rp) = 0; // getpairvalue()純粋仮想関数を宣言する virtual const char *getpairvalue(const char *pstrkey) const = 0; // getpairkey()純粋仮想関数を宣言する virtual const char *getpairkey(const char *pstrval) const = 0; }; //(以下に続く)
- 154 名前:質問1(続き) [2007/01/17(水) 19:29:40 ]
- // mypair派生クラスの定義
class mypair : public basepair { public: // 引数をとるコンストラクタ mypair(const char *pstrkey, const char *pstrval) : basepair(pstrkey, pstrval) {} // keycomp()純粋仮想関数に独自の実装を行う virtual int keycomp(basepair &rp) { return strcmp(key.c_str(), (rp).getkey());// A A エラー箇所40行目 // return strcmp(key.c_str(), static_cast<mypair &>(rp).getkey());// A B } // valcomp()純粋仮想関数に独自の実装を行う virtual int valcomp(basepair &rp) { return strcmp(value.c_str(), (rp).getvalue());// B A エラー箇所45行目 // return strcmp(value.c_str(), static_cast<mypair &>(rp).getvalue());// B B } // getpairvalue()純粋仮想関数に独自の実装を行う virtual const char *getpairvalue(const char *pstrkey) const { if (key == pstrkey) return value.c_str(); else return NULL; } // getpairkey()純粋仮想関数に独自の実装を行う virtual const char *getpairkey(const char *pstrval) const { if (value == pstrval) return key.c_str(); else return NULL; } }; //(以下に続く)
- 155 名前:質問1(続き) [2007/01/17(水) 19:30:31 ]
- int main() {
// mypairクラス型の配列を作成する mypair mp[] = { mypair("358-0015", "さいたまけんいるましにほんぎ"), mypair("500-8165", "ぎふけんぎふしおいまつちょう"), mypair("272-0034", "ちばけんいちかわしいちかわ"), mypair("060-0000", "ほっかいどうさっぽろしちゅうおうく"), mypair("670-0974", "ひょうごけんひめじしいいだ"), mypair("770-0874", "とくしまけんとくしましみなみおきのす") }; if ( mp[5].keycomp(mp[1]) ) { cout << "mp[5]とmp[1]のKeyは異なる\n"; } else { cout << "mp[5]とmp[1]のKeyは同じ\n"; } if ( mp[5].keycomp(mp[5]) ) { cout << "mp[5]とmp[5]のKeyは異なる\n"; } else { cout << "mp[5]とmp[5]のKeyは同じ\n"; } getchar(); return 0; }
- 156 名前:質問1(続き) [2007/01/17(水) 19:35:54 ]
- コンパイルを通すにはA、Bで、rpはキャストすればいい(それぞれ、A→B)ようですが、
これって、static_castがベストでしょうか?
- 157 名前:質問1(続き) [2007/01/17(水) 19:38:46 ]
- dynamicだと問題があるでしょうか?
以上です。
- 158 名前:デフォルトの名無しさん mailto:sage [2007/01/17(水) 20:33:15 ]
- basepair の、公開メンバっぽいものを全て protected にしてる所に問題があると思うよ。
あと、スレ違い臭
- 159 名前:デフォルトの名無しさん [2007/01/17(水) 21:16:54 ]
- >>158
>basepair の、公開メンバっぽいものを全て protected にしてる所に問題があると思うよ。 ご回答ありがとうございます。 >あと、スレ違い臭 今まで気づきませんでした。すみません。 これにて私の質問は終えたいと思います。
- 160 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 16:01:37 ]
- 垂直スクロールバーを矢印キーで動かして値を変化させることはできますか?
たとえばバーが2つあって「↑↓」で1つ目を増減させ、「←→」で2つ目を増減させるとか。 今はSB_LINELEFT等を使ってマウスで動かしてます。
- 161 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 16:16:03 ]
- 楽勝できる
- 162 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 16:54:01 ]
- >>161
片方しか動かせないんですよ。お兄ちゃんおせーてください。
- 163 名前:デフォルトの名無しさん [2007/01/18(木) 21:28:45 ]
- ヘッダファイルってどこに保存すればいいのですか?
- 164 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 22:28:07 ]
- どこでも好きなところにどうぞ
- 165 名前:デフォルトの名無しさん [2007/01/18(木) 23:00:27 ]
- >>164
学校の宿題で、ヘッダファイルをDLして、プログラムを書くらしいのですが、 どのフォルダに追加していいのか分かりません。 左のヘッダーファイルのフォルダに追加したのですが、 「include ファイルを開けません」 「'gucc.h': No such file or directory」と出てしまいます。 gucc.hはヘッダーファイルの名前です。 visual C++ 2005を使っています。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 23:10:43 ]
- ではもう一度
どこでも好きなところにどうぞ その代わり、インクルードパスの指定はしっかりしてください それすらわからんなら全部まとめて同じ場所に保存しとけ それでもダメなら先生に教わっておいで
- 167 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 00:27:32 ]
- それでもダメなら俺とディープキスしろ
- 168 名前:デフォルトの名無しさん [2007/01/19(金) 00:38:58 ]
-
_,,..,,,,_ _,,..,,,,_ ./ ヽ / ヽ l ・ωl lω・ l `'ー--┳━┳---‐´ _,,..,,,,_ _,,..,,,,_ ./ ヽ / ヽ l ,,・3,,-ω-,, l 〜♪ `'ー--┳━┳---‐´
- 169 名前:デフォルトの名無しさん [2007/01/19(金) 16:52:13 ]
- 開発環境:WinXp、VC++6.0
リストコントロールの水平スクロールバーが表示されているかどうか判定する方法ってありますか?
- 170 名前:169 mailto:sage [2007/01/19(金) 17:43:34 ]
- 自己解決しました。
if(GetScrollLimit(SB_HORZ) > 0)
- 171 名前:169 [2007/01/19(金) 17:53:34 ]
- 開発環境:WinXp、VC++6.0
また行き詰ってしまったので、再度質問です。 リストコントロールの選択アイテムが、可視部の何番目が選択されているかというのは分かりますでしょうか? 下図の例で言うと、垂直スクロールバーが表示されているリストコントロールで、 矢印の行が選択されていた場合、インデックス値は2ですが可視部だけなら1ということで、 その1という値を求めたいということです。 <例図>(『あ』はインデックス0番目のアイテムだが、スクロールによって見えてない。) (あ) ――――― |い ‖ →|う■■■■‖ |え ‖ |お ‖ |―――――
- 172 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 18:04:05 ]
- リストコントロールはそんな使い方を想定してはいない。
- 173 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 18:08:50 ]
- >>171
m_list.GetCurSel() - m_list.GetTopIndex()
- 174 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 18:29:01 ]
- >>173
GetCurSelはリストコントロールにはなかったですけど、出来ました! ありがとうございます。 m_list.GetSelectionMark() - m_list.GetTopIndex()
- 175 名前:デフォルトの名無しさん [2007/01/19(金) 21:05:11 ]
- VC++.net「Windowsフォームアプリケーション」において、MFCにおけるBitBlt関数のように
画像をpictureboxから別のpictureboxに部分コピーする方法がわからないのですが 何か良い方法はないでしょうか。
- 176 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:16:24 ]
- DrawImageじゃだめかな
- 177 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:22:28 ]
- System.Drawing.Graphics.DrawImageで頑張ってください
BitBlt使う方法もあるけどな
- 178 名前:デフォルトの名無しさん [2007/01/19(金) 21:24:32 ]
- >>176
レスありがとうございました。どうもそれでできそうです。 VC++はMFCとかWINDOWSフォームとか、それぞれ勝手が違うのでちょっと困ってました。 もうちょっと参考書買い足してみることにします。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:25:15 ]
- >>177
ありがとうございます。 あとsage忘れました。ごめんなさい。
- 180 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:40:41 ]
- すみません、プログラムの実行時(=作成するプログラム)に
外部実行ファイル(=既存のプログラム)を起動するにはどうしたらよろしいでしょうか?
- 181 名前:デフォルトの名無しさん [2007/01/19(金) 21:51:50 ]
- 猫でもわかるプログラムを見たんですが
わからない俺は猫以下なんでしょうか…
- 182 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:56:34 ]
- >>180
ShellExecute >>181 あそこの猫は特別優秀らしい
- 183 名前:デフォルトの名無しさん [2007/01/19(金) 21:59:58 ]
- >>182 なるほど
とりあえず何を勉強したらいいんですかね? 目標はゲームを作ることなんですが
- 184 名前:180 mailto:sage [2007/01/19(金) 22:13:36 ]
- >>182
できました〜 調べ物が多くて参ってたので助かりました ありがとうございました。
- 185 名前:175 mailto:sage [2007/01/19(金) 23:40:14 ]
- >>177
すいません。windowsフォームでBitBltを使う方法ってどんなのでしょうか。 Drawimageだと画像の「部分」を取り出すことができませんでした。 (画像全体が、取り出したい部分サイズに縮小されてしまいました。 DrawImageUnscaledAndClippedメソッドというのもあるようですが、自分のバージョンは古いらしく対応していないようでした。) 度々すいません。
- 186 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 00:22:48 ]
- あなたには功夫、じゃなくて努力が足りないわ
DrawImageメソッドには描画元の領域指定できるのも用意されている。よく探せ。
- 187 名前:175 mailto:sage [2007/01/20(土) 00:42:09 ]
- >>186
ありがとうございます。 もっと粘ってみますね。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 00:44:34 ]
- オーバーロードが30個もあると気が滅入る。
- 189 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 08:54:49 ]
- MSDNくらい見れんのかと
- 190 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 12:22:27 ]
- パイだっけ
- 191 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 13:17:20 ]
- ピクチャボックスに縮小された線の色をピクセル単位ではなく、ドット単位で検出するAPIってありますか?
- 192 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 13:21:27 ]
- ピクセル単位とドット単位の違いは何?
- 193 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 13:50:30 ]
- 志村〜
- 194 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 22:07:35 ]
- C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
MSDN見てヘッダ関係かと思ったんですが#includeはきっちりしてあるのにエラーが・・・ #include <stdlib.h> #include <stdio.h> int Main(int argc, _TCHAR* argv[]) { printf("test\n"); return 0; } なんかしょうもないボカやってる悪寒が
- 195 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 22:08:49 ]
- フォルダの中にあるファイルを指定して、そのファイルをifstreamで開く、という風にしたのですが、どうしたらいいのでしょうか?
- 196 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 22:19:11 ]
- プリコンパイル済みヘッダーがないじゃん
- 197 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 22:30:35 ]
- >>196すみません
stdafx書き込むの忘れてました 弟がstdafx.hを弟がソリューションから消したのが正解でした・・・・ 返してくれ俺の3時間orz
- 198 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 23:02:12 ]
- >>195
プログラムの利用者はどうやってフォルダの中にあるファイルを指定するのか。
- 199 名前:デフォルトの名無しさん [2007/01/21(日) 16:01:47 ]
- 論理ペンの作成がうまくいかないので、どなたか指南していただけますでしょうか。
SelectObject(hdc,CreateFont(20,0,0,0, FW_DONTCARE, FALSE,FALSE,FALSE, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black") ); こんな感じで論理ペンを作成したのですが、 どうあがいてもArial Blackではないフォントで描画されてしまいます。 どうしてArial Blackで描画させたいのですがどうすればよいでしょうか・・・
- 200 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 16:16:16 ]
- ソレはペンではないし、オブジェクトは漏れてるし、
- 201 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 16:41:15 ]
- 思い通りにならないならGetLastError&FormatMessageなりで何か起こってないかなど調べるくらいしなさい
後別にVCの使い方関係ないし、Win32APIスレで聞いた方が良い
- 202 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:19:53 ]
- 今度会社でVC6で開発をしなくてはならなくなりました、社内ではVC6が現役でガンガッテいます
漏れ的には無料のVC8の方が格別に使いやすいのですが、ライセンスの関係でVS2005の 無聊版は使えないらしいのです、仕方なく会社のVC6をコッソリ家に持って帰り インスコしてSP6を当てマスタそして VC6で開発する時の注意事項などあれば教えてホスイ
- 203 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:28:04 ]
- 特にない
- 204 名前:デフォルトの名無しさん [2007/01/21(日) 17:32:33 ]
- 質問です。
Windowsフォームアプリケーションで、 String *data=S"aaaaa"; if(data->Substring(1,1)==S"a"){text1->Text=S"ok";} if(data->Substring(1,1)!=S"a"){text1->Text=data->Substring(1,1);} このような構文を走らせたところ、text1には変化なし、 しかしtext2には"a"と表示されてしまいました。 一体なにがいけないのでしょうか?
- 205 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:48:42 ]
- >>202
注意事項:コッソリ持って帰らない
- 206 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:49:45 ]
- >>202
テンプレート使いまくりの変態プログラミングは諦めろ。 付属のSTLもかなり怪しいし、boostは駄目かもしれん。
- 207 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:52:39 ]
- >>204
Substringということは.NETか C++で.NET使ったこと無いんだが、なんだその「S」は? まぁそのSが何のつもりか知らんが、その比較演算はC++としてありえない
- 208 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 17:55:55 ]
- text2はどこから沸いてきたのか
- 209 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 18:08:30 ]
- >>202
御社名を教えていただければ、開発に当たっての様様なノウハウをお教えするに吝かではありません。 #尤も、MSに密告しない保証は致しかねますが。
- 210 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 18:27:35 ]
- >>202です
そうですねこっそり持って帰るのはイクナイノデアンインストールして明日会社に返します。 本棚の隅に1999年に買って一度も目を通したことの無かった SHOEISHAの「プログラミング学習シリーズ山本信雄 著 VisualStuidio C++」 を開いてみたら char s(80); lstrcpy(s, "おはようございます。"); ってなってマスタ、 char s(80);は今日日ねーべなと思い char s[80]; で動きマスタ 昔のVS6はchar s(80);でもコンパイルエラーでなかったのかな?? 因みに漏れはSP6を家で堂々と当てたのでエラーになったのだと思う C99はchar s(80);これでもOKだったのかい??
- 211 名前:204 mailto:sage [2007/01/21(日) 19:05:40 ]
- String::Equals(s1->Substring(1,1),"a")でできました。
ありがとうございました。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 19:45:44 ]
- >>210
おそらく本の誤植。 ちなみにC++でchar s(80);はコンストラクタ引数を与える構文になるが、charは組込型なのでchar s = 80;と同じ意味になる。
- 213 名前:デフォルトの名無しさん [2007/01/21(日) 21:01:52 ]
- プログラムを作れという課題を出されたのですが、どのようなプログラムを作ればいいか全く検討もつきません。
一応、課題の例は出されたのですが、ちょっと無理かなと思いまして・・・ 例は、 ・駐車場のパーキングシステム ・飛行機の搭乗席を予約するシステム ・マトリックスを計算する電卓 ・ブラックジャック ・ポケットゲーム などです。 この他になにかアイディアはありませんでしょうか。 宜しくお願いします。
- 214 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 21:19:34 ]
- >>213
お前死ね お前が無理ではないと思うプログラム作ったらイイジャマイカ 答え お前死ね
- 215 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 11:21:38 ]
- どのスレで質問していいのかわからないのですが、このスレで失礼します。
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 7 main () { int a[100]={0,5,2,4,6,1,3,7}; int i,x,j; clock_t ts,te; double p; for(i=1; i<=N; i++) a[i]=rand(); ts=clock(); for(i=2; i<=N; i++){ x=a[i]; a[0]=x; j=i-1; while(a[j] > x){ a[j+1]=a[j]; j=j-1; } a[j+1]=x; } te=clock(); p=(double)(te-ts)/CLOCKS_PER_SEC; for(i=1; i<=N; i++) printf("%d ",a[i]); printf("\n"); } という挿入法のプログラムを作り、整列アルゴリズムのデータ個数と処理時間の平均値を用いたのですが、整列手前等で、ある条件下では処理時間が入れ替わることがあるんです。 その理由をお教えください。よろしくお願いします。
- 216 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 11:43:04 ]
- どの位変わるのか判らんが、現在のPCとOSで必ず同じ時間になる保証はどこにもないよ。
ましてその程度のコードだと、初回とそれ以降ではキャッシュの乗りが確実に違うだろうし。
- 217 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:19:47 ]
- レスどうもです。
説明不足でした。すみません。 PCとOSで必ず同じ時間になる保証はどこにもないのは知ってます。 上記のプログラムで、ある条件下では処理時間が入れ替わることがあるという部分(理由)はあるでしょうか? お教えください。
- 218 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:23:30 ]
- 「入れ替わる」ってどういう意味だ?
まさかとは思うが、CLOCKS_PER_SECの関係でばらつきがでることを問題視したいのだろうか。 例えばCLOCKS_PER_SECが100msなら、110msの処理時間は100msと表示されることも200msと表示されることもあるわけだが。
- 219 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:33:56 ]
- 具体的に書いてくれないとわからんな
- 220 名前:デフォルトの名無しさん [2007/01/23(火) 04:40:35 ]
- 若いの オラが村では派遣労働の問題を口にしちゃなんねーだ
お前さんはまだわけぇから言いたいこともあるべぇ だべな、派遣問題を口にするとムキになって怒る者がおるでよぉ 問題の指摘は駄目だっぺぇ 派遣のことは口にしちゃなんねぇ この村みたいな民度ゼロの会社で現実忘れるためはよ 北朝鮮と一緒でよ、駄目のものを駄目と言ってはなんねえだべさ タブーを口にしちゃいけねぇだ
- 221 名前:お願いします [2007/01/23(火) 23:25:07 ]
- プログラムを実行したところ、
LINK : fatal error LNK1249: イメージのベース アドレスが 400000、 サイズが 0x7FFEF000 で、最大範囲を超えています。 というエラーが出るのですが、この最大範囲を大きく変更するには どうすればいいのですか。 よろしくお願いします。
- 222 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 23:54:14 ]
- リンカオプションの/LARGEADDRESSAWAREを試せ。
だめだったら64bit化しろ。
- 223 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 08:05:37 ]
- Kitty on your lap
という言葉をよく見かけるのですが、これはUNIX系でいうhoge foo varと 同じような意味なんでしょうか?
- 224 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 08:57:19 ]
- 同じ質問をどこかで見たな…
とりあえずその文でぐぐってみれ。
- 225 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 12:17:04 ]
- なんかのゲームなのでしょうか。
ホームページ作者の趣味なんですね。
- 226 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 16:14:01 ]
- よく見かけませんよ
- 227 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 18:27:38 ]
- キティちゃんをあなたのサランラップで包んでください
- 228 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:32:57 ]
- すいません、教えてください。
VC6.0で作ったプロジェクトを2005に移行することになりました。 型変換や標準関数の変更でガンガンエラーはでるものの、なんとか修正してきましたが、 COMのインターフェースの定義で、oledb.hに書かれているものと同じ名前の インターフェースを使用していたのですが、2005に移行したらインターフェース名を 変更しないと使用できなくなりました。 名前を変更すればビルドはできるものの、今まで使えていただけに2005でも 何かすれば使えるのではないかと思っています。 どうにかヒントでも頂ければ幸いです。
- 229 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 02:04:48 ]
- WindowsXP,VC2005です。
ユーザーにコマンドライン引数を決めさせたいとき どのようにすればいいでしょうか? 下のようにするとハングしてしまいます。 #include <iostream> using namespace std; int main(void) { char str[100]; char str2; cout << "引数を入力してください"<<endl; cin >> str2; sprintf(str,"test.exe %s",str2); system(str); return 0; }
- 230 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 02:26:42 ]
- >>229
>下のようにするとハングしてしまいます。 str2はcharなのに書式指定子に%sを使っているから。
- 231 名前:229 mailto:sage [2007/01/26(金) 02:39:56 ]
- ありがとうございます。
とりあえず char str2[64]; としたところ正常に動きました。
- 232 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 08:36:19 ]
- ラジオボタンを2つ用意して、片方をチェックしたらもう片方の
チェックするようにするには、GroupBoxを使うと教えられました。 radioButtonMen,radioButtonWomenの2つのラジオボタンをグループボックスの 上に配置した時に生成されたコードの一部分が↓です。 どのメンバ変数を見れば、どちらをチェックしたかというのがわかるの でしょうか? // // groupBox1 // this->groupBox1->Controls->Add(this->radioButtonMen); this->groupBox1->Controls->Add(this->radioButtonWomen); this->groupBox1->Location = System::Drawing::Point(197, 194); this->groupBox1->Name = L"groupBox1"; this->groupBox1->Size = System::Drawing::Size(200, 45); this->groupBox1->TabIndex = 24; this->groupBox1->TabStop = false; this->groupBox1->Text = L"groupBox1"; this->groupBox1->ResumeLayout(false); this->groupBox1->PerformLayout();
- 233 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:22:23 ]
- C++/CLIで、プログラミングを始めたばかりです。
(VS C++2005の環境) フォームにボタンやテキストボックスを配置してビルドすると、 ソースが勝手に追加/削除されたり編集されたりします。 その更新されていくソース・プログラムを見ていて思ったんですけど、 Visual C++でWindowsプログラミングをする場合、 通常プログラマは、 クラスの関連(継承とか)をあまり意識しないんでしょうか? メンバ変数を用意することってあまりないでしょうか? あと、普通のC++のコンテナ(vectorやlist)は使用されませんか?
- 234 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 18:27:34 ]
- 別に普通に使ってるだろ。
VC++の操作がわかんなかったら手書きでもいいし
- 235 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:14:23 ]
- VC8ではコンパイルする時にDebugモードとReleaseモードの選択が出来たのですが
VC6では出来ないのでしょうか? Debugモードしか見当たりません・・・・・
- 236 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 19:24:43 ]
- 少しは調べてから質問しよう
- 237 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:12:11 ]
- >>236
>>235ですが 「Vc6 Release」で検索しても分からなかったんですが
- 238 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:16:12 ]
- ツールバーのあたりで右クリックして「ビルド」をチェックで出るよ
- 239 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 21:19:25 ]
- MSDNに書いてないわけがない
- 240 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:35:43 ]
- Inside Windows買っとけ
- 241 名前:デフォルトの名無しさん [2007/01/27(土) 02:41:48 ]
- 将棋プログラムを作っています。
すべての種類の駒が描かれている1枚のビットマップから 一部を切り出して(読み込んで)オブジェクトにするには どうしたらいいでしょうか? 一つずつ別ファイルを用意しないとだめ?
- 242 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 07:26:34 ]
- >>238
ありがとう
- 243 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:30:33 ]
- VS2005 MFCシングルベースで、
CDC *pDC = GetDC(); AfxBeginThread(ここがわからない); とメインの中に記述して、マルチスレッドでfunを使って、 funの中でpDCを↓のように使いたいのですが、どうすればいいでしょうか。 void fun(){ pDC->TextOutW(10,10,_T("aaa")); }
- 244 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:33:03 ]
- MFCオブジェクトをスレッド間で受け渡してはいけない
- 245 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:44:20 ]
- >>244
そうなんですか・・・。 では、マルチスレッドのfunの中でpDCを使いたい場合はどうすればよろいのでしょうか。
- 246 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:49:29 ]
- 馬鹿登場
- 247 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:58:14 ]
- >>245
ハンドル渡せば。 でもいろいろ面倒だから、描画関係はそのウィンドウが属するスレッドでやって 描画に関係ない処理を別スレッドでやる方がいいと思うけど。
- 248 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:16:57 ]
- キチガイにスレッド
- 249 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:50:03 ]
- >>244
なんで? MSDNのサンプルでもMFCオブジェクトのポインタ渡してるよ。 まーpDCを渡すのはやばいけどね。
- 250 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 16:36:24 ]
- >>249
ハンドル-オブジェクトのテーブルがスレッド固有とかいろいろ。 詳しくはこの辺 ttps://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_multithreading.3a_.programming_tips.asp
- 251 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:37:52 ]
- >>250
注意点や、危険性とその回避方は書いてあるが >>244 のようなことは書いてないぞ。 非MFCスレッドでは出来ないと書いてあるけど。
- 252 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:45:10 ]
- >>251
>As a general rule, a thread can access only MFC objects that it created.
|

|