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


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

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



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辺り。

175 名前:デフォルトの名無しさん [2008/02/25(月) 00:34:04 ]
>173
MFCなら 10年前に買った、新Visual C++ 6.0 入門編 シニア編
かな?


176 名前:デフォルトの名無しさん [2008/02/25(月) 00:48:31 ]
>>175
それって入門用には最悪だろ

177 名前:デフォルトの名無しさん [2008/02/25(月) 04:08:20 ]
なぜSelectObjectは描画後とかに戻し作業が必要なんですか?
DeleteObjectもなくても動くんですがどういうことですか?

pDC->SelectObject(oldFont);
myFont.DeleteObject();


178 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 06:43:45 ]
戻し作業は不要だけど、状況によっては戻す必要がある。

DeleteObjectは必要だけど、なくても一応動く
ただDeleteObjectしてないように見えるけど、実際は見えない部分でやってる場合もある。

間違ったやり方をしているサンプルもあるし、
一見間違っているように見えて間違ってないサンプルもあるから
猿真似しかできないやつだと理解は難しい。

179 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 07:19:13 ]
MFC 使ってるならデストラクタで自動的に DeleteObject される。
myFont をローカル変数にしていた場合、
SelectObject で戻し作業をしてないと
登録しているオブジェクトを DeleteObject しようとしてしまう。

myFont がローカル変数でない場合は
状況によっては必ずしもすぐさま戻す必要は無いが、
最終的には戻す必要がある。

180 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 09:56:18 ]
MSDNのサンプルは戻さずに消してるよ

GRAPHICS\GDI\FONTS\FONTVIEW\STATUS.C

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rect);

hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
border = rect;
border.bottom = border.top + cyStatusBorder;
FillRect (hdc, &border, hBrush);
DeleteObject (hBrush);

hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));
border = rect;
border.top = border.bottom - cyStatusBorder;
FillRect (hdc, &border, hBrush);
DeleteObject (hBrush);

EndPaint (hwnd, &ps);


181 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:10:24 ]
あ、それselectしてないか

182 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 11:32:29 ]
ペゾ本読み返してみたら戻さなくていいが正解だった。

183 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:01:06 ]
つまり戻さないとどうなるんですか?描画し終わったらデリようが、戻そうがどうでもよくないですか?




184 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:15:32 ]
戻さないと消せない。
消さないとリソース消費が膨れ上がる。
ストックオブジェクトなら消す必要が無い
どの辺が疑問かわからん

185 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:19:33 ]
ローカル変数だと自動デリでアクセス違反起こすって事じゃないの

186 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:20:25 ]
まさにそれが聞きたかったんだ
ありがとう


187 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 15:31:23 ]
描画の時にその都度選択しないといけないのは
解放されてしまうからなんだよね
だから自分で元に戻さなくても大丈夫

188 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:10:31 ]
出したものは片付ける

189 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 16:22:58 ]
出した後は疲れて寝ちゃうからほったらかし

190 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:06:07 ]
>>185
アクセス違反は起きないよ。


SelectObjectされたままだとDeleteObjectが失敗するからどんどん溜まっていく。
使っているGDIオブジェクトの数はタスクマネージャでも確認できる。
・・・上限っていくつだろ?ググってみたがわからん。

191 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 18:19:05 ]
>>190
たぶん上限というのは9xで64KB, NTで標準1MBのやつ。
で、オブジェクト1個で何バイトだよって話になるんだけどね。

192 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 19:39:37 ]
このスレはペゾルド本読んでるやつ誰もいないのか?
戻さずに削除するやり方がちゃんと書いてあるだろ

193 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:08:58 ]
だったら書けよチンカス



194 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:09:36 ]
SelectObjectしたらいつまで有効?
毎回SelectObjectするのは何故?

195 名前:デフォルトの名無しさん [2008/02/25(月) 23:49:47 ]
SelectObjectしたままほっとらかしておいて大丈夫な状況なら、ほったらかしにすれば宜しいかと。

196 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:35:12 ]
CButton* radio1=(CButton*)GetDlgItem(IDC_RADI01);
の(CButton*)この括弧ってなんなの?
ポイント関係の項目読んでも解説が出てこないんですけど!

197 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:36:40 ]
索引で「型キャスト」を調べるべし

198 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:42:06 ]
OK!!


199 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 18:59:20 ]
わかりました。
CButtonクラスにするポインタradio1にGetDlgItemで取り出したIDC_RADI01のアドレスをCスタイルキャストでポインタに強制変換していれてるんですね。
さっぱりわかりません

200 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:05:23 ]
やばいわかっちゃった
GetDlgItemで取り出したIDC_RADI01のアドレスをCButton型のポインタにしていれてるんだ!

201 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:06:24 ]
もうだめだ

202 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 19:20:51 ]
いやあってる!ありがとうございました!

203 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 21:27:46 ]
Visual Studio 2003 なんですが、
Foo.cpp タブの下に表示されている
クラスとメソッドを選択するバーを消す
方法を教えて下さい。




204 名前:デフォルトの名無しさん [2008/02/27(水) 22:04:16 ]
何でRADI01(ラジ01)なんだろう。

205 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:09:44 ]
>>203
Visual Studio 2005 Part 23
pc11.2ch.net/test/read.cgi/tech/1196663772/l50


206 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:34:55 ]
CWnd* myPICT=GetDlgItem(IDC_PICT);
CClientDC myDC(myPICT);
は丸暗記するものなんですか?
それともここを理解しないと先は暗いですか?

207 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:42:30 ]
理解できてたらおぼえる必要ないだろ
忘れたら前に書いたコード探すだけだし

208 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:43:58 ]
暗記なんてするのは学校のテストだけですよ

209 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:46:49 ]
も、もしかして CWnd と CClientDCの構造体の中身から調べなきゃいけないんですか?

210 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:47:05 ]
いい加減こいつがうざくなってきた

211 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:48:17 ]
すいません二度と来ません

212 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:48:44 ]
さいならっきょ

213 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:50:15 ]
>>209
もし、その中身を知っていなきゃコーディングできないとするならばそんな関数があること自体おかしいと思わないか?
printfの実装なんぞ知らなくたって使えるだろ?



214 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 22:59:42 ]
MFC使っててCWnd知らないやつはいないだろうし
CDC使ったことがあったらCClientDCも使えるだろうし

215 名前:203 mailto:sage [2008/02/27(水) 23:20:28 ]
>>205

載ってる?
行って探してみたけど無さそうだったよ。
そもそも、消す機能ついて無い気もしてきた。。
とりあえずあきらめよう。
Thx.


216 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:56:57 ]
VC++6.0なんだけど一行って何行まで書けるの?
2行に分けたい場合はどうするの?

217 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:12:19 ]
日本語でおk

218 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:18:45 ]
CやC++では、ただの空白やタブのみならず改行なども同じように区切りとして扱われる。
ようするに、だいたい改行したいと思ったところにただ改行を書くだけで大丈夫。

例えばVBのように行継続文字を書く必要はない。
それに相当するものはある(バックスラッシュを使う)のだが上記の理由で基本的に不要。

219 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 02:45:29 ]
すごくよくわかりました。ありがとうございました

220 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 03:13:17 ]
#defineとかは駄目だけどな

221 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 09:39:47 ]
長いリテラルを複数行に分けて書く

222 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 10:15:08 ]
ソースのことなのか実行結果のことなのかくらい書いたほうがいいけどなw

223 名前:デフォルトの名無しさん [2008/03/01(土) 18:33:50 ]
みんなバージョンいくつ使ってるの?




224 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 18:52:36 ]
いまだに6.0が現役です

225 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 20:00:21 ]
>>216
>一行って何行まで書けるの?
一行でなくなったら一行ではなくなるではないか。

226 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 09:48:08 ]
つまり答えは一行には一行まで書けます、だな

227 名前:デフォルトの名無しさん [2008/03/03(月) 12:10:55 ]
古谷一行に訊け

228 名前:デフォルトの名無しさん [2008/03/03(月) 20:52:04 ]
一文字に何行書けますか?
という質問だろ、
文脈から判断せいや

229 名前:デフォルトの名無しさん [2008/03/03(月) 21:04:22 ]
>>216
文字列なら
char *str = "abc"\
"def";
みたいな感じ
関数ならint hoge(int a,int b,
int c)
{}
みたいな感じ

230 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:11:34 ]
>一文字に何行書けますか?

・・・え?
一文って何行まで書けるの? じゃないのか?

231 名前:デフォルトの名無しさん [2008/03/03(月) 21:22:39 ]
お前らC++の前に日本語習得してこいよ

232 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 21:34:47 ]
>>229
"で閉じているときは\は無くていいよ。↓でOK
char *str = "abc"
       "defg"
       "hijk";

閉じないなら\で繋げる。
char *str = "abc\
defg\
hijk";
(もっとも、この場合は行頭に桁揃えのスペースやタブを入れられなくなるが・・・)

233 名前:デフォルトの名無しさん [2008/03/05(水) 00:12:55 ]
アウトプットウィンドウに表示されるテキストを右端で折り返すこと
はできないのでしょうか? 長いエラーメッセージが表示されたとき、
水平スクロールバーを使ってスクロールしながら読むのは骨が折れます。
Visual C++6.0です。よろしくお願いします。




234 名前:デフォルトの名無しさん [2008/03/05(水) 00:19:42 ]
適宜改行しておけばいいんでね?

235 名前:デフォルトの名無しさん [2008/03/05(水) 00:24:39 ]
改行って、どうやって改行するんですか? カーソルを置いて[Enter]を
押しても改行されませんよ。

236 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:53:19 ]
「右端で折り返す」オプションなかったっけ、2005にはあるが、、、
っと起動してみたがみつからんなあ、長年つかってなかったからよーわからん
ヘルプもうまく出んな

237 名前:デフォルトの名無しさん [2008/03/05(水) 01:55:09 ]
>>235
出力時にですがな。

238 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 02:12:24 ]
>>237
>235が言ってるのはビルドエラーだよ?
コンパイラのコードをいじれと?

239 名前:デフォルトの名無しさん [2008/03/05(水) 02:26:33 ]
んが? 自分で出したエラーメッセージじゃないの?
そら失礼。

240 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 06:53:06 ]
ちんちん!

241 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 12:35:45 ]
ちんちんの後でつらいですが、
int a[10];
の a[10] 以降の配列にデータを入れ続けた場合の被害は、最悪プログラムの強制終了だ。と上の方に書いてありましたが本当ですか?
なんか最近OS起動後すぐにWindousのプロセスが強制終了しだしたんですが、
自分のアプリ外のメモリ領域は保護してくれるぐらいの機能はあるんですよね?VC++6.0なんですけど。


242 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 13:10:14 ]
>>241
ttp://www.kumei.ne.jp/c_lang/intro/no_22.htm

動かない事はないけどメモリアドレス関係のバグは命取り

243 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 13:27:14 ]
メモリの保護はOSの役目なのでVC++とか関係ないです。



244 名前:デフォルトの名無しさん [2008/03/05(水) 14:06:06 ]
test
B?ng

245 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:34:33 ]
質問です.VC++2005を使用しているのですが
LPSTR型の文字列をchar str[200]に代入したいのですが可能でしょうか?



246 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:44:28 ]
typedef CHAR * LPSTR;
だから

247 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:51:04 ]
strncpy 使わないとな。

248 名前:デフォルトの名無しさん [2008/03/06(木) 01:15:44 ]
Visual C++ 2008 Express Editionを使ってるんですけど、プロパティバインディングって使えないんでしょうか?
適当なコントロールを選んで、プロパティのApplicationSettings->PropertyBindingの...をクリックし、バインドしたいプロパティを選んで新規を押し、
項目を入力してOKを押すと「設定ファイルがプロジェクトに見つかりません。設定ファイルを追加して、再試行してください。」と出ます。
(プロジェクト名).config, (プロジェクト名).exe.config, App.config, config.xml, (プロジェクト名).xmlといろいろ追加してみましたが結局出来ませんでした・・・。

どうすればいいものかと途方にくれてます。。

249 名前:デフォルトの名無しさん [2008/03/06(木) 18:19:22 ]
大きなダイアログのタブオーダーの設定をしている最中に
スクロールバーでダイアログを動かすと
次にクリックした位置がオーダー1に戻ってしまうのですが、
これってVC2005のバグなのでしょうか?
こういう場合、どのようにしてタブオーダーを設定すればよいでしょうか。

250 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 18:48:33 ]
>>249
msdn2.microsoft.com/ja-jp/library/csz6b8x8(VS.80).aspx
Ctrlを押しながらクリックすれば途中から設定できるはず

それかホイールマウスでスクロールする。

251 名前:デフォルトの名無しさん [2008/03/06(木) 18:57:09 ]
>>250
> Ctrlを押しながらクリックすれば途中から設定できるはず

スクロールした後にコントロールをCtrl+クリックすると、
そこが新たな基準点になるだけで、
そのコントロール自体のタブオーダーは変更されないのです。

> それかホイールマウスでスクロールする。

ホイールを回してもスクロールしないのですが、
これはなにかの設定に依存するのでしょうか?

252 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 19:06:18 ]
>>251
スクロールした後で一つ前のコントロールをCtrl+クリックして基準点として
それ以降を設定すればいいのでは?

ホイールスクロールはマウスユーティリティによるものかも。

253 名前:デフォルトの名無しさん [2008/03/06(木) 19:24:22 ]
>>252
何度もすみません。

> スクロールした後で一つ前のコントロールをCtrl+クリックして基準点として
> それ以降を設定すればいいのでは?

その1つ前のコントロールと次のコントロールが
今のPC上のVS2005ではダイアログエディタ内に収まらないんです。

手前のコントロールをクリック

次のコントロールへスクロール

そのコントロールをクリック

という流れなのですが、ここで通常クリックだと1に戻ってしまい、
Ctrl+クリックだと手前のコントロールのコントロール+1になりません。



254 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 19:41:11 ]
>>253
なら、一時的に周りの余計なツールウィンドウを全て閉じて編集するとか。

それでもだめならリソーススクリプトを直接編集するしかないかもね。
タブオーダーの順に上から記述されてるからコピペで並び替え。

255 名前:デフォルトの名無しさん [2008/03/06(木) 19:52:40 ]
>>254
rcファイルを直接編集して並び替えられました。
ありがとうございます。

256 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 20:18:54 ]
OS:XP SP2
開発環境:VS2005

CDaoDatabaseを使用してDBにアクセスしています
select * from WORK_TABLE WHERE ''='' ORDER BY test
はきちんと検索結果が帰ってくるのですが
select * from WORK_TABLE WHERE ''='' ORDER BY convert(integer,test)
に変更するとエラーが発生します。

なにが問題か分かる方いましたらご教授をお願いします。




257 名前:256 mailto:sage [2008/03/06(木) 20:58:01 ]
追加情報です。

select * from WORK_TABLE WHERE ''='' ORDER BY cast(test as integer)
でもダメでした。

デバッグモードで起動し、エラーをキャッチした箇所でとめてエラー内容を見ると
convertでは「式に未定義関数 'convert' があります。」
castでは「クエリ式 'casttest as integer)' の 構文エラー : 演算子がありません。 」
というエラーが設定されています。


258 名前:デフォルトの名無しさん [2008/03/06(木) 21:24:31 ]
プロジェクトのフォルダの中にある.hと.cppファイルの中で、
実際にはプロジェクトに参加してない無駄なファイルを見つけ
て削除したいのですが、効率良くやるにはどうすればいいで
しょうか? Visual C++6.0です。

259 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:16:50 ]
dspを開いて、\.h|\.cppをgrepする。
あとはそのファイルだけcopyするような
バッチにでも変換すれば。
プロジェクトにないけどincludeされている連中は死ぬけど。

260 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:29:32 ]
いつまた使うようになるかわからないのであった

261 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 22:38:41 ]
>>257
> convertでは「式に未定義関数 'convert' があります。」
convertが使えない環境

> castでは「クエリ式 'casttest as integer)' の 構文エラー : 演算子がありません。 」
castとtestの間に(を入れ忘れ。
でも、入れたとしてもcastが使えない環境だったら
未定義うんぬんのエラーが出るだろう。

262 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 01:03:24 ]
WIN32とかSTLとかMCFとかATLとかCRTの違いがよくわからないのですが
これらは全てVC++のことを言ってるのでしょうか?
また、これらの違いがよくわかるHPとかありませんか?

263 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 01:23:57 ]
> WIN32とかSTLとかMFCとかATLとかCRT
どれも1種のライブラリ。どれもVisual C++から使えることに違いはないが、
誰が何のために制定したかが違う。



264 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 06:44:14 ]
int (*p)[4] = new int[3][4];

int *p = new int[3][4];

じゃだめなんですか?[4]をつける意味無くないですか?

265 名前:デフォルトの名無しさん [2008/03/08(土) 09:19:40 ]
>>264
そう思うのなら試して味噌。

266 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 09:21:45 ]
>>264
内部の動作を想像する能力が必要だ

267 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 09:59:42 ]
int (*p1)[4] = new int[3][4];
p1[1][2] = 400;
cout << p1[1][2];

わかりません。(*p1)[4]を日本語にしてくださいお願いします。








268 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:36:52 ]
p1はint型の配列(要素数4)を指すポインタ

int (*p1)[4] = new int[3][4];
はint型の配列(要素数4)を3つ作ってて、p1はその先頭を指している。

以下と対比するとわかりやすいかも。
int* p2 = new int[3];

掲示板では分かりやすい説明は難しいと思われるので、
どうしても知りたければ「Cプログラミング専門課程」の多次元配列の項を読むこと。

269 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 10:42:34 ]
Cスレでやれ馬鹿

270 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 11:30:20 ]
ごめんなさい

271 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 11:56:58 ]
だめだ [4] がなんでだぶってるのかイメージできない。CとC++シニア編の多次元配列とポインタ読んでもわからない。やばすぎる


272 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:10:46 ]
p1 += 1; // アドレスが 16増える -> typeof(p1) == int*の要素4つの配列 
p2 += 1; // アドレスが 4増える -> typeof(p2) == int*

273 名前:デフォルトの名無しさん [2008/03/08(土) 15:23:46 ]
Visual C++ 2005 or 2008に関する質問です。
作成したプログラムにてCtrl+Fにより検索フォームを表示したいのですが
どのようにすればいいのでしょうか。
また下記のように検索関数をC++で書いたのですが機能しません。
どのように変え組み込んでいけばいいのでしょうか?
機能的にはCtrl+Fを押されたときに検索フォームが表示され、
その中で検索ボタンを押せば検索が実行される。
つまり検索ボタンに下記のようなプログラムを組み込みたいのですが・・・。

string str;
string buffer;
size_t found;

ifstream fin(argv[1]);

if(!fin){
cout<<"読み込みファイルオープンエラー";
exit(0);
}

cout<<"文字列を入力してください";
cin>>str;

while(fin>>buffer){
found=buffer.find(str);
if(found!=string::npos)cout<<buffer;
}

fin.close();




274 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 15:37:52 ]
アクセラレータにCtrl+Fを定義
呼ばれたら検索フォームを表示するだけ

275 名前:デフォルトの名無しさん [2008/03/09(日) 00:33:39 ]
Visual Studio.NET 2003を使っているんですが、
ソリューションエクスプローラのフォルダ構成を
ローカルのフォルダ構成と同期させることってできないでしょうか?

現在ソースファイルを追加するときは、
ソリューションにフォルダを作って、ローカルに同名のフォルダを作って、
「新しい項目の追加」をしてるんですが、
二度手間だし、フォルダ名を変えたくなったときに面倒です。






[ 続きを読む ] / [ 携帯版 ]

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

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