■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part17
251 名前:デフォルトの名無しさん :05/02/25 02:34:24
非常に基本的な質問で申し訳ないです。

VC++で新しいプロジェクトを作ると、ソースファイル、ヘッダーファイルといった名前の
フォルダが自動的に作られますよね。

こいつらの中にソースを作っても、実際にはプロジェクトフォルダの直下に
ファイルが作られていくだけです。
自分でフォルダを作成しても、そのフォルダの作成は実際には反映されていません。

フォルダの作成が自動的に反映されるようにするにはどうすればいいんでしょうか?

252 名前:251 :05/02/25 02:35:57
書き忘れました。
環境はVisualStudio.net 2003です。

253 名前:デフォルトの名無しさん :05/02/25 03:18:29
>>251
ファイルの在り処としてのフォルダと、プロジェクト内での分類としてのフォルダには関連性がありません。
どうしても、ということであれば自分でマクロでも書くしかないでしょう。

254 名前:デフォルトの名無しさん :05/02/25 19:32:54
8BitDIBのカラーテーブル(パレット)位置教えてください。

LPRGBQUAD pColor = (LPRGBQUAD)(pBMPTop +sizeof(BITMAPFILEHEADER)+
sizeof(BITMAPINFOHEADER));
で合ってますか?

255 名前:デフォルトの名無しさん :05/02/25 19:38:09
それはファイルに格納されたビットマップということ?
それなら良いよ。

256 名前:デフォルトの名無しさん :05/02/25 21:07:31
レス違いだったらすいません。
フリーソフトを使おうとしたら下記のようなエラーが表示されるのですが
全然意味が分からないので、教えて頂きたいのですが。
宜しくお願いします。

=== Microsofi Visual C++ Debug Library ===

Debug: Assertion Failed

program:c\ program files\Ghost Tracer\Ghost Tracer.exe
File:fpreintf c
Line:56

Expression:str!=NULL

For information on how yor program can cause an assertion
failure see the Visual C++ docuentation on asserts.
(Press Retry to debug the application)

257 名前:デフォルトの名無しさん :05/02/25 21:23:12
fpreintf c の56行で文字列ポインターにヌルポが発生したのでもう一度デバックしろ。

258 名前:デフォルトの名無しさん :05/02/25 21:33:36
>257
早々のレスありがとうございます。(^_^;)
折角レスを頂いたのですが
257さんの言っている単語などがわからないので
257さんの言っていることを勉強してきます。
ありがとうございました。

259 名前:254 :05/02/25 22:51:00
>>255 Thanks


260 名前:デフォルトの名無しさん :05/02/26 01:11:54
テキストファイルから特定の文字列の入った行を一行だけ
削除することは出来るでしょうか

abc
def
ghi

ってテキストファイルのdefの行を消して

abc
ghi

にするにはどうすればいいですか?


261 名前:デフォルトの名無しさん :05/02/26 01:18:21
>>260
abc
ghi
を出力する。

262 名前:デフォルトの名無しさん :05/02/26 01:47:49
>>261
すいません
意味がよくわかりません

特定の文字列defは、テキストファイルの何行目に入っているかはわかっていません
テキストファイルを読み込んでいる時に
defの行だけを消したいのですが

263 名前:デフォルトの名無しさん :05/02/26 02:18:11
grep -v '^def$' hoge.txt


264 名前:デフォルトの名無しさん :05/02/26 02:35:33
$0 != "def" {print;}

265 名前:デフォルトの名無しさん :05/02/26 02:43:09
質問です。

EMアルゴリズムを回してます。
「アクティブな構成」が「Win32 Debug」と「Win32 Release」の時で
結果が違うんですけどなぜでしょうか・・・。
収束するとこも違うし、Releaseだとエラーが出て止まってしまうんです。

Visual C++ 6.0、WindowsXPです。


266 名前:デフォルトの名無しさん :05/02/26 02:47:18
>>262
すいません

テキストファイルを読み込んでいる時にdefの行が見つかったら無視すれば如何でしょうか?

267 名前:デフォルトの名無しさん :05/02/26 03:28:53
>>265
>>223

268 名前:デフォルトの名無しさん :05/02/26 03:29:11
>>266
概出

269 名前:デフォルトの名無しさん :05/02/26 13:49:13
visual c++とCのborland c++ 5.5 の違いは?




270 名前:デフォルトの名無しさん :05/02/26 13:58:44
Visual C++:Microsoftの製品。MFCが付いてくる。Visual C++ ToolKitと称するIDE無しの無料版がある。
Borland C++ Builder:Borlandの製品。VCLが付いてくる。古いバージョン(5.5)のIDE無しの無料版がある。

271 名前:デフォルトの名無しさん :05/02/26 18:43:42
>>260
その一つのファイルで解決しようとするんじゃなく
もう一つファイルをオープンしてそれに反映させていけばいい


272 名前:デフォルトの名無しさん :05/02/26 21:11:27
ものすごい基礎的なことかと思うのですが、
VisualC++.netでプロジェクトの保存場所の履歴や、
文字列検索なとの履歴はどうやって削除できますか?
ツール→オプション→環境などをあさっても
それらしき項目が見つけることができませんでした
よろしくお願いします。

273 名前:272 :05/02/26 21:28:38
すみません自己解決しました。
レジストリーのそれっぽいのいじったらいけました。
お騒がせしました。

274 名前:デフォルトの名無しさん :05/02/27 00:15:35
質問です。
CTextに表示されている文字を画面からはみ出たら改行
されるようにしたいのですが、どのように行えば良い
のか分かりません。MULTILINEとかいうプロパティを
指定すれば良いのでしょうか?

275 名前:デフォルトの名無しさん :05/02/27 01:45:26
CTextって .net のクラスか何か?
MSDN見たけど載ってない。@VS 2003

276 名前:デフォルトの名無しさん :05/02/27 09:15:40
MFCの文字を表示するためのコントロールです。
デフォルトのプロパティのまま文字表示しようとすると
表示文字がウィンドウの画面外から文字がはみ出てしま
い、文字切れしてしまいます。

これをどうにか文字がはみ出た分だけ改行させたいのです。

CButtonのコントロールではBS_MULTILINEと指定するとボタン
内の表示文字を改行表示出来ました。

Textでもそのようなオプションを探したところ見つかりません。
どなたかご存知の方おりましたらご教授お願いします。

277 名前:デフォルトの名無しさん :05/02/27 09:34:53
\nで改行

278 名前:デフォルトの名無しさん :05/02/27 09:58:45
だからCTextなんていうコントロール クラスはMFCには用意されてないっつーの。

279 名前:デフォルトの名無しさん :05/02/27 09:59:56
試したところ"文字1\n文字2" と指定してもうまくいきません。
表示が「文字1・文字2」となり、改行が無視されてしまいます。

280 名前:デフォルトの名無しさん :05/02/27 10:16:03
>>279
\r\n

281 名前:デフォルトの名無しさん :05/02/27 12:38:33
すいません初歩的な質問です。
visualc++ toolkit command promptとかいうのをタダでインストールしてん
ですが。このcommand promptにコードを打ち込んでいくのですか?
それとも、どこかにコードを打ち込んでそれをcommand promptを使って
callするのですか? 

282 名前:デフォルトの名無しさん :05/02/27 12:45:09
どっかに無料コンパイラのスレなかったかな?

283 名前:デフォルトの名無しさん :05/02/27 12:57:42
>>281
後者

284 名前:デフォルトの名無しさん :05/02/27 13:01:23
>>281
たしか cat コマンドを使って前者でも。(うる覚え。

285 名前:デフォルトの名無しさん :05/02/27 13:04:13
入力ファイル名をCONにすれば。

286 名前:281 :05/02/27 13:04:56
度々、すいません。 コード書くのははnote padとかでもいいのでしょうか?


287 名前:デフォルトの名無しさん :05/02/27 13:06:00
今月号の日経ソフトウェアに特集はC/C++
VC++betaの使い方ものってる

288 名前:デフォルトの名無しさん :05/02/27 13:11:36
>>281
右も左もわからんようなら本ぐらい買え

289 名前:デフォルトの名無しさん :05/02/27 13:15:45
なんか右も左も分からない人用にわかりやすく
説明してるウェブサイトないかな?

290 名前:デフォルトの名無しさん :05/02/27 13:18:20
最適なウェブサイト↓

http://www.google.co.jp/

291 名前:デフォルトの名無しさん :05/02/27 13:36:42
http://www.sgnet.co.jp/c/1-2.htm

292 名前:デフォルトの名無しさん :05/02/28 03:26:07
Visual C++ Toolkit + Platform SDK
でプログラムを書いてるわけだが、
cl menu01.cpp でエラーが出てしまう。
なんとかしてくれませんか。

Borland C++ ではコンパイルできるのでソースはあってると思う。

環境変数↓
Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft SDK\bin;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft SDK\include;.
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft SDK\Lib

↓つづく

293 名前:デフォルトの名無しさん :05/02/28 03:26:53
エラーメッセージ↓
/out:menu01.exe
menu01.obj
menu01.obj : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4
referenced in function _WinMain@16
menu01.obj : error LNK2019: unresolved external symbol __imp__TranslateMessage@4
referenced in function _WinMain@16
|
<同じようなメッセージ>
|
menu01.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 ref
erenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigne
d int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)
menu01.obj : error LNK2019: unresolved external symbol __imp__SendMessageA@16 re
ferenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsign
ed int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)
menu01.exe : fatal error LNK1120: 14 unresolved externals

ソース(menu01.cpp)↓
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm

SDKとToolkit はデフォルトでインストール後何も触ってないです。

294 名前:デフォルトの名無しさん :05/02/28 07:54:51
ライブラリが見つかってません。

295 名前:デフォルトの名無しさん :05/02/28 09:31:38
>>293
無料コンパイラのスレ探して質問してくれ
もし見つからないなら超マイナーで誰も使ってないから
あきらめて違うコンパイラに乗り換えるのが吉

296 名前:デフォルトの名無しさん :05/02/28 13:28:53
cl menu01.cpp kernel32.lib user32.lib gdi32.lib
で通るはず。
いちいちlibを指定するのが面倒なら、ソースの中にpragmaで書き込んじゃえ。

297 名前:292 :05/02/28 23:39:05
>>294-296
ありがd

>>294
そこまではわかったんだけど。

>>295
そんなスレッドありません。。。
無料コンパイラスレ。
作ったほうがいいのかな。

>>296
できたできた。
ありがとうございますです。
しかし、環境変数LIBって何のためにあるんだろ。

298 名前:デフォルトの名無しさん :05/03/01 10:18:08
>>297
>環境変数LIBって何のためにあるんだろ。
実行時に DLL を検索するパス。

299 名前:デフォルトの名無しさん :05/03/01 10:22:47
へぇー
環境変数設定してないと実行できないんだ
知らなかった

300 名前:デフォルトの名無しさん :05/03/01 13:23:48
教えてください、VisualC++6.0の話しですけど。。。
ダイアログアプリケーションでボタンを置いて、これが押されたときはBN_CLICKED
というメッセージが発行されてメンバ関数を追加しておけばこれがコールされますけど、
ボタンを押している状態から放した状態に移行したイベントで関数をコールしたい
ときって、どうやったらいいんでしょうか?
普通にボタンを置くと、BN_CLICKEDとBN_DOUBLECLICKEDという2つのメッセージしか
使えないと思うのですが、メッセージを追加する方法とかあるんですかね?

301 名前:292 :05/03/01 13:32:37

Set CL=/link user32.lib gdi32.lib
これであとは通常通りにコンパイルできるYo!
関連サイト↓
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcepbguide5/html/wce50consettingclenvironmentvariable.asp

報告カキコ。
Toolkit 質問箱ができたので
そっちに逝ってきます。

302 名前:デフォルトの名無しさん :05/03/01 13:41:04
>>300
BN_CLICKEDって押して離したときに来ると思ったんだけど違ったかな

303 名前:デフォルトの名無しさん :05/03/01 17:38:33
>>301
>>300 です。
そうでした、BL_CLICKEDは放したときのイベントでしたね。
そういう意味では、私が知りたいのは押した瞬間のイベントを捉える方法です。
(押した瞬間にある処理をさせて、放した瞬間にも別の処理をさせることをしたいので。。。)
そんな関数って定義できるんですかね?

304 名前:デフォルトの名無しさん :05/03/01 17:39:58
>>303>>302 に対するレスでした。スマソ。。。

305 名前:デフォルトの名無しさん :05/03/01 18:53:35
サブクラスすれ

306 名前:デフォルトの名無しさん :05/03/02 02:00:07
>>303
まずクラスの新規作成で、CButtonを基本クラスとする新しいボタンのクラス
を作成する。で、クラスWizardでダイアログに張り付けたボタンをさっき作
った新しいクラスの変数として割り当てる。さらにクラスWizardでさっき作
ったボタンに関してON_WM_LBUTTONDOWNやらのハンドラを追加して中身を作り
込むと。どすか。

307 名前:デフォルトの名無しさん :05/03/02 10:07:47
>>306
>>303 です。
レスどうもです。
アドバイスしてもらった方法でうまくいきました。
うまく利用すると(ボタンに限らず)色々な機能を実装できそうですね。
まったく目からうろこでございます。
ちなみに、当方今までC++BuilderばかりやっててVC++はお初なもので戸惑い多々あり。
またわからないことでスレ汚しするかも知れませんが、堪忍してやってくださいませ。

308 名前:デフォルトの名無しさん :05/03/02 18:39:02
Microsoft Visual Studio® .NET 2002 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=c41d8159-b42f-4d06-a797-e510494976ee&DisplayLang=ja

309 名前:デフォルトの名無しさん :05/03/02 19:45:37
デバッグなしで実行するとエラーでプログラム落ちるのに、
デバッガで実行すると落ちないんですけど、
考えられる可能性は何なんでしょうか。

落ちる場所を特定(デバッガ使わない状態で)して、
デバッガで追ってみたけど落ちないし、落ちると思われる要素も無かった。

前、どこかでデバッグビルドで実行する時と、リリースビルドで実行する場合、
変数の挙動が変わるとか(うろ覚え)。
そういうのが関係してくるのでしょうか...?

310 名前:デフォルトの名無しさん :05/03/02 20:09:18
メモリリークあるいは解放アドレスアクセス

311 名前:デフォルトの名無しさん :05/03/02 20:12:07
リリース版では変数が最適化されたせいで文字列リテラルに書き込もうとして落ちてるとか

312 名前:デフォルトの名無しさん :05/03/02 20:14:10
デバッガでアタッチしてる時と通常実行時の話か?

313 名前:デフォルトの名無しさん :05/03/02 20:21:37
>>309
変数に隙間作ってご丁寧に初期化までしてくれるデバッガ使ってデバッグするのはネカマだけ

314 名前:デフォルトの名無しさん :05/03/03 02:32:36
MFCでXP、ダイアログベースなんですが、
モーダルダイアログでいくつかのボタンとエディットボックスがあります。
ボタンにフォーカスがあって、タブ押したらフォーカスが移動するんですが(タブオーダーで順番決めてます)
キーボードの↑↓キーでも移動してしまうんです。
しかもtabstopプロパティをfalseにしてるエディットボックスにまでフォーカスが移動してしまいます。

やりたいことは↑↓でボタン間をフォーカス移動するのはもう仕方ないとして、
tabstopがfalseなエディットボックスに、移動さてたくないんですが、どんな方法がありますか?

自分の考えた拙い方法
(1)エディットボックスのフォーカスイベントで、別のコントロールにフォーカスを移動
→エディットに入力できなくなるかも?
(2)キーボードフック?とかいうもので、↑↓キーを検出してどうにかする
→むずかしそう

315 名前:デフォルトの名無しさん :05/03/03 04:47:54
PreTranslateMessage()で、WM_KEYDOWN/UPを捕まえて止める。


316 名前:デフォルトの名無しさん :05/03/03 09:07:00
>>314
グループは設定してる?
同じグループ内のコントロールはカーソルで移動できるようになってるが。

317 名前:デフォルトの名無しさん :05/03/03 18:52:36
プログラムというかVC++自体の質問なんですがお願いします。
リソースエディタのString Table関連の日本語がツールから設定内容まで化けるんですけど、直す方法ってありますか?
環境はXP Home Edition のSP2で、VC++.NET 2003のアカデミックバージョンです。

318 名前:デフォルトの名無しさん :05/03/03 19:47:30
回答へのお願い
ここはパソコン初心者板ではないから
くれぐれも失礼のないように

319 名前:デフォルトの名無しさん :05/03/03 20:25:18
アカデミックバージョンはSP2では不具合出るよ。
Sp1に戻せ。

320 名前:デフォルトの名無しさん :05/03/03 20:32:31
そうなんですか・・・今の状態じゃ直せそうにないのであきらめます;
ありがとうございました。

321 名前:デフォルトの名無しさん :05/03/03 23:26:40
>>319 アカデミックバージョンをSP2で使ってた・・ぃゃ、別に問題出てないからイイカ・・・?)

322 名前:デフォルトの名無しさん :05/03/04 07:55:07
すいません質問です。
TrackPopupMenuEX();
で作ったフローティングメニューに、
TrackPopupMenuEX();のための一連の関数呼び出し時の前以外のタイミングで
ダイナミックにメニューを追加する方法はありませんでしょうか。




323 名前:デフォルトの名無しさん :05/03/04 09:41:05
>>322
WM_INITMENUPOPUP

324 名前:デフォルトの名無しさん :05/03/05 03:08:16
このスレのほとんどの質問がWIN32APIの質問である件について。

325 名前:322 :05/03/05 03:30:48
>>323
丁寧でわかりやすい返答、本当にありがとう御座いました。
解決しました。

326 名前:デフォルトの名無しさん :05/03/05 03:35:28
丁寧...

327 名前:デフォルトの名無しさん :05/03/05 04:08:34
   (V)∧_∧(V)
    ヽ(・ω・)ノ  フォッフォッフォッ
.     /  /
    ノ ̄ゝ


.          (V)∧_∧(V)
           ヽ(   )ノ  フォッフォッフォッフォッ
.           /  /
       .......... ノ ̄ゝ

328 名前:デフォルトの名無しさん :05/03/05 19:06:06
Visual Studio.Net2003なんですが、プロジェクトのプロパティをいじっていたら、
「デバッグ」でビルドした際に固まってしまうようになりました。
ブレークポイントも「?」マークになって、効果がありません。
これってどこを設定すればいいんでしょうか?

または、プロパティをデフォルトに戻す方法があれば、教えていただきたいんですが・・・

329 名前:デフォルトの名無しさん :05/03/05 19:11:53
再インストールとかパソコン初心者板みたいな回答が出ませんように

330 名前:デフォルトの名無しさん :05/03/05 19:18:24
マネージ拡張がonになっていただけでした。
スレ汚しすいません・・・


331 名前:デフォルトの名無しさん :05/03/05 23:39:22
質問です。
プログラム本体から派生したショートカットから(というかショートカットから)実行すると、
プログラムに判定される現在のディレクトリ がショートカットがある場所 になってしまいます。
この問題を、使う人が本体ディレクトリをぐりぐり動かしても大丈夫なように解決するにはどうすればいいでしょうか。


332 名前:デフォルトの名無しさん :05/03/05 23:41:01
ショートカットのプロパティ5分見てからやり直し。

333 名前:デフォルトの名無しさん :05/03/05 23:59:02
>>331
微妙に言ってることがわからん。
使う人が本体ディレクトリをぐりぐり動かすってなんなんだ?

334 名前:デフォルトの名無しさん :05/03/06 00:06:18
>>331
GetModuleFileName でなんとかきりぬける。

335 名前:デフォルトの名無しさん :05/03/06 01:18:05
>>331
カレントディレクトリに依存しない作りにする。
ファイルは必ずフルパスで操作すればいい。

336 名前:331 :05/03/06 01:43:15
>>332-225
ありがとうございます。
とりあえずGetModuleFileName()で切り抜けることにします。
さらに初心者っぽい質問でもうしわけないのですが
c:\xxx\xxxx\yyy.exeという文字列が抽出されましたが、
ここからc:\xxx\xxxx(\)というように実行ファイルが存在するディレクトリへのパスを抽出するにはどうするのでしょうか?
文字列操作関数で検討していますがいまいちです。

337 名前:デフォルトの名無しさん :05/03/06 02:00:02
_tsplitpath

338 名前:デフォルトの名無しさん :05/03/06 02:05:27
>>336
PathStripPathだったか、PathRemoveFileSpecだったかとにかくPath系の
APIでがんばる。

339 名前:デフォルトの名無しさん :05/03/06 02:21:07
Java使いなんですが
はじめてC++をやる場合、オススメの参考書とか勉強方法ってありますか?

Cができないとダメな本なら持ってるんですが、そもそもCがわからないし
すぐC++を覚えないと会社クビになりそうだし。
環境はVC++って言ってましたが、6なのか.NETなのか不明なのが最悪。

340 名前:デフォルトの名無しさん :05/03/06 02:41:34
>>339
Java使いならJava使ってたほうがいいよ。
くびになる前に転職考えたほうがいいような気がする。

341 名前:331 :05/03/06 02:43:45
>>337,338
解決しました、本当にありがとう御座いました。


342 名前:デフォルトの名無しさん :05/03/06 02:49:49
>>340
転職したばかりの会社での最初の仕事なんです
前の会社は倒産寸前なので逃げました

343 名前:デフォルトの名無しさん :05/03/06 02:56:19
漏れがC++を勉強したときはCとC++を同時に勉強していったよ。
基礎からやって飽きて流し読みしながら行き当たりばったりで。

344 名前:デフォルトの名無しさん :05/03/06 04:38:58
Visual Studio 2003でC++を使っています。
VC6と違って、Ctrl + Shift + '8' を押しても
エディタにタブや半角スペースといった記号が表示されません。

空白を表示させるには、どうすればよいのでしょうか。

345 名前:デフォルトの名無しさん :05/03/06 08:42:05
編集 -> 詳細 -> スペース(ry

346 名前:デフォルトの名無しさん :05/03/06 08:53:29
>>339
javaがわかるなら楽勝でしょう。最初のうちは
ちょっと混乱するだろうけどね。

というか、プロがする質問には見えないんだけど……

347 名前:344 :05/03/06 18:38:37
>>345
できました、ありが(ry

348 名前:デフォルトの名無しさん :05/03/07 01:30:18
>>339
Java使いでC++になって分からない(混乱する)所と言えば
メモリ管理とかポインタ関係か・・? 最初に詰まるのは文法かも?

そもそも、Java使いと言ってるけれど・・必要十分に使いこなせてないって印象を受けたのだが・・<プロの発言に聞こえない orz

Cを知ってる方がC++の習得は早いだろうけど、無くてもC++やりながらで問題ないと思う。

てか、会社にC++の参考書なり何なり無いのか?
とりあえず、明日会社で上司や先輩に相談して書籍を薦めて貰うのが良いかと

349 名前:デフォルトの名無しさん :05/03/07 11:34:37
>>339
取りあえず林 晴比古の入門書でも読んだら?

350 名前:デフォルトの名無しさん :05/03/07 12:45:39
VC6.0 Pro なんですが、以下のソースがコンパイル通らなくて困っています。

#include <stack>

typedef std::stack<long>STACK_TYPE;
class CHoge
{
STACK_TYPE m_stack;
};

スタックを扱いたいのですが、typedef のところで
「error C2039: 'stack' : 'std' のメンバではありません。」となってしまいます。
どう記述すればいいのでしょうか。宜しくお願いします。

351 名前:デフォルトの名無しさん :05/03/07 14:03:52
typedefの所が悪いんじゃなくて、それより上が悪いんじゃないの?
他の #include が影響してるとか。

ちなみに、私の環境では通った。

352 名前:350 :05/03/07 15:31:54
>>351
どうもありがとうございます。
もうちょっと調べてみます。

353 名前:デフォルトの名無しさん :05/03/07 22:34:33
今ね、Doc/View無しのMDIアプリ作ってるんだけどなんか変だ。

354 名前:デフォルトの名無しさん :05/03/08 12:31:28
vc++にマーカーのような機能はありませんか?
ある行に印をつけて置いて、別の所に移動した後、
すぐにそのチェックした場所に戻るような機能が非常に欲しい。
エディタ

355 名前:354 :05/03/08 12:33:45
ブックマーク発見。

356 名前:デフォルトの名無しさん :05/03/08 17:25:44
char[10]の配列に入った数値をint型にしたいのですが、出来るのでしょうか?

357 名前:デフォルトの名無しさん :05/03/08 17:55:12
>>356
atoi()

358 名前:デフォルトの名無しさん :05/03/08 18:40:03
>>357
char[10]の配列に入った文字列
ではなく
char[10]の配列に入った数値
だから違うのではなかろうか?

359 名前:デフォルトの名無しさん :05/03/08 18:40:27
エディットボックスコントロールを、"複数行"・"改行を許可"に設定して、
プログラム側からエディットボックスに文字を書き込んでいます。
XPで動作させると思った通りに動くんですが、
2000で動かすと改行するときに"・"がついてしまいます。
改行自体はできるのですが、行末に"・"がつくのが見苦しいと感じています。

どのようにしたら、"・"が取り除けるでしょうか。
ご存じの方いましたら、教えてください。

環境:Visual C++ 6.0, Windows2000

360 名前:デフォルトの名無しさん :05/03/08 18:45:35
>>359
改行コード何にしてます?

361 名前:359 :05/03/08 18:49:10
>>360
\nを使っています。

362 名前:デフォルトの名無しさん :05/03/08 18:57:31
0D 0A で。

363 名前:デフォルトの名無しさん :05/03/08 20:07:24
\r\n

364 名前:デフォルトの名無しさん :05/03/09 18:32:34
環境 Microsoft Visual C++ .NET、WindowsXP Pro+サービスパック2です。
http://support.microsoft.com/default.aspx?scid=kb;ja;841226
これの、『Microsoft Visual C++ のプロジェクトを使用して C アプリケーションを作成する』
以降は再現出来ました。しかし、
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
これをコピペして、コンパイルすると、
fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
と、エラーになります。どうしたらいいでしょうか?

365 名前:デフォルトの名無しさん :05/03/09 18:33:45
>>364
プリコンパイル済みヘッダを検索しなきゃいい

366 名前:364 :05/03/09 18:41:00
>>365
>プリコンパイル済みヘッダを検索しなきゃいい
どこをいじれば、プリコンパイル済みヘッダを検索しないようになりますか?

367 名前:デフォルトの名無しさん :05/03/09 18:48:06
>>366
プロジェクトの設定。

368 名前:364 :05/03/09 18:50:59
http://rararahp.cool.ne.jp/vc/vctips/build.htm
ここを見ると、
これを直すには、「プロジェクト」→「設定」→「C/C++」のプリコンパイル済みヘッダーにて
プリコンパイル済みヘッダーを使用しない、を選ぶ。
ってあるけど、俺の環境には、「プロジェクト」の中に「設定」って設定は無いのよね。

369 名前:367 :05/03/09 18:55:30
>>368
あぁすまん、プロジェクトメニューの一番下にある「なんとか」のプロパティだね。
まさかその程度のメニューも追えないほど終わっていると思わなかったから書きそびれたよ。

370 名前:364 :05/03/09 18:56:26
つか、「プロジェクト」→〜〜のプロパティーにありました。
どうも有り難うございます。

371 名前:デフォルトの名無しさん :05/03/09 18:57:01
ジョイパッドの検知するAPIと、
ジョイパッドを押している事にするAPI(SendMessageみたいな)は何ていうやつですか?

372 名前:デフォルトの名無しさん :05/03/09 19:08:18
ゲーム製作板へ

373 名前:364 :05/03/09 19:50:43
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char szClassNme[] = "ウィンドウクラス・ネーム";

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,
LPSTR lpszCmdLine, int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS myProg;
if (!hPreInst) {
myProg.style =CS_HREDRAW | CS_VREDRAW;
myProg.lpfnWndProc =WndProc;
myProg.cbClsExtra =0;
myProg.cbWndExtra =0;
myProg.hInstance =hInstance;
myProg.hIcon =NULL;
myProg.hCursor =LoadCursor(NULL, IDC_ARROW);
myProg.hbrBackground =GetStockObject(WHITE_BRUSH);
myProg.lpszMenuName =NULL;
myProg.lpszClassName =szClassNme;
if (!RegisterClass(&myProg))
return FALSE;
}


374 名前:364 :05/03/09 19:51:09
hWnd = CreateWindow(szClassNme,
"猫でもわかるプログラミング",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}


375 名前:364 :05/03/09 19:54:07
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
お目汚しすみません。ここからのコピペです。これをコンパイルすると、
sample01.cpp(20) : error C2440: '=' : 'HGDIOBJ' から 'HBRUSH' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
sample01.cpp(43) : warning C4244: 'return' : 'WPARAM' から 'int' に変換しました。データが失われているかもしれません。

と、エラーになります。 どうしたらいいでしょうか?

376 名前:371 :05/03/09 19:54:49
どっちに書き込もうか迷ったんですけどね・・・
すいませんでした じゃああっち行ってきます

377 名前:デフォルトの名無しさん :05/03/09 19:56:03
>>375
http://www.kumei.ne.jp/c_lang/setvc.htm
ここの蛇足読め。
ようするにキャストすればいいだけ。

378 名前:デフォルトの名無しさん :05/03/09 20:16:32
>>364

リンク先があるならコピペすんなよ


明示的にキャストしろって言われてるんだから、キャストすれば良い。

GetStockObject(WHITE_BRUSH);
 
(HBRUSH)GetStockObject(WHITE_BRUSH)


return (msg.wParam);
 ↓
return ((int)msg.wParam);


379 名前:364 :05/03/09 20:18:46
>>377
>ようするにキャストすればいいだけ。
すみません。 
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
これを出発点にしようと思ってるんですが、ここのドコをどういじったらいいでしょうか?

380 名前:364 :05/03/09 20:19:43
>>378
おお、有り難うございます。試してみます。

381 名前:デフォルトの名無しさん :05/03/09 20:26:59
ついでに言うとstatic_castとreinterpert_castも覚えておいてほしい。

382 名前:364 :05/03/09 20:31:34
>>378
ご指導の様に書き換えると、以下のミスになりました、
更なるご指導お願いします。

LIBCD.lib(crt0.obj) : error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。
Debug/sample01.exe : fatal error LNK1120: 外部参照 1 が未解決です

383 名前:デフォルトの名無しさん :05/03/09 20:44:21
コンパイルの仕方が悪い

環境が判らないと、それしか言えない。

384 名前:364 :05/03/09 20:50:20
>>383
そうですか、じゃネコの所は諦めます。
http://support.microsoft.com/default.aspx?scid=kb;ja;841226
これはクリア出来たんですが、次はドコに行ったらいいでしょうか?
環境はVisual C++ .NETです。

385 名前:364 :05/03/09 20:52:37
最終的には、SHBrowseForFolder、FindFirstFile、FindNextFile、
FindClose、CreateFileを使いこなしたいんです。

386 名前:デフォルトの名無しさん :05/03/09 20:53:54
多分プロジェクトが、
WIN32コンソール・プロジェクトになってるのかと。
ウィンドウプログラムはWIN32プロジェクトで作らないと。

387 名前:364 :05/03/09 20:56:31
>>386
>WIN32コンソール・プロジェクトになってるのかと。
お、鋭い。
http://support.microsoft.com/default.aspx?scid=kb;ja;841226
これのやり方でWIN32コンソール・プロジェクトにしていました。
やり直してみます。

388 名前:デフォルトの名無しさん :05/03/09 21:00:35
とりあえず、IDEを使ってる物として、
コンソールとウィンドウを切り替えるのは、
構成プロパティ→リンカ→システム→サブシステムを
"Windows (/SUBSYSTEM:WINDOWS)"にすればいい。

389 名前:364 :05/03/09 21:08:48
つか、無事コンパイル&実行、出来ました。
教えてくれた皆さん有り難うございました。感謝します。

390 名前:364 :05/03/09 21:16:41
調べてみたらばそうなってました。 有り難うございます。 >>388

391 名前:デフォルトの名無しさん :05/03/11 01:01:07
>>372
関係ないだろ
ゲームプログラム板じゃねーんだぞゴルァ

392 名前:デフォルトの名無しさん :05/03/11 02:49:19
Win32 Debugではちゃんと動いてたのにWin32 Releaseにしたらちゃんと動かなくなる、なんてこと普通あるの?

393 名前:デフォルトの名無しさん :05/03/11 02:52:49
珍しい事じゃない。

394 名前:デフォルトの名無しさん :05/03/11 05:23:09
コンパイルオプションもリンクオプションも違うし
変数の初期化のされかたも違う。
Release側の設定をDebug側に写してやってみ。


395 名前:デフォルトの名無しさん :05/03/11 08:05:12
>>392 のようなことがあって、debugが大変だったな。最近ではもっぱら Release Mode だよ。
逆に Release ではOK、しかし Debug では落ちたり、というのも結構あるのかな?


396 名前:デフォルトの名無しさん :05/03/11 09:35:34
>>395
あるねぇ・・・・。

397 名前:デフォルトの名無しさん :05/03/11 10:03:35
要はプログラムの質が低いと。

398 名前:Rubyist! :05/03/11 10:53:08
そろいも揃って阿呆ばかり

399 名前:デフォルトの名無しさん :05/03/11 19:53:52
>>392
Debugで動くのにReleaseで動かない状況っていうのは、
90%以上の確率で初期化してない変数を利用している。

400 名前:デフォルトの名無しさん :05/03/11 20:01:58
5.0ってコード入力サポート機能ないんだな。
どうしよう。もうだめだ。

401 名前:デフォルトの名無しさん :05/03/11 21:22:12
入力サポートって言っても
頭から補完してくれるわけじゃないから
全然ないよりはあった方がいいかなと言う程度

402 名前:デフォルトの名無しさん :05/03/11 23:06:03
VC2005βを使えばいいじゃない。

403 名前:デフォルトの名無しさん :05/03/12 01:23:17
2005に比べたら2003も嫌になる

404 名前:デフォルトの名無しさん :05/03/12 14:42:37
マウスの座標取得する関数思い出せない。

405 名前:デフォルトの名無しさん :05/03/12 14:58:36
GetCursorPos

406 名前:デフォルトの名無しさん :05/03/12 17:52:59
事前に指定した座標を自動的にクリックするプログラムを書きたいのですが、
クリックを発生させるAPIが見つかりません(涙)。
ご存知の方教えてくだされ。
環境はVisualC++ 6.0です。

407 名前:デフォルトの名無しさん :05/03/12 18:03:27
鮮度めっせーじかぽすとめっせーじでいいのでは?

408 名前:デフォルトの名無しさん :05/03/12 18:03:27
mouse_event?

409 名前:デフォルトの名無しさん :05/03/12 19:29:44
メインウィンドウにの背景に画像を表示させて、
その上にボタン等のコントロールを配置、
というインターフェースを実装しようとしています。

が、WM_PAINTに画像表示コードを書くと、
ボタンの上に画像がかぶさって、見えなくなってしまいます。
うまいこと、画像の上にボタンを表示させたいのですが、
どのようにすべきなのでしょうか。

ウィンドウ、コントロール等はCreateWindowの手書きです。

410 名前:デフォルトの名無しさん :05/03/12 19:33:51
それはアルファチャネルを考慮したウインドウかな?

411 名前:デフォルトの名無しさん :05/03/12 19:41:02
いえ、別段考慮していません。

412 名前:デフォルトの名無しさん :05/03/12 19:56:27
XYZオーダー考慮すれば良いだけ

413 名前:デフォルトの名無しさん :05/03/12 20:39:39
>>409
WS_CLIPCHILDREN

414 名前:409 :05/03/12 22:06:55
>>413
ありがとうございます。
期待通りの動作になりました。

415 名前:デフォルトの名無しさん :05/03/12 23:21:38
 Visual C++といえどもメニューやダイアログボックスはリソースエディタで
VBみたいに編集して作るのが普通なんですか。

416 名前:デフォルトの名無しさん :05/03/12 23:27:04
気に入らないならダイナミックに作ってください

417 名前:デフォルトの名無しさん :05/03/13 03:11:19
ウィンドウの形状を指定してウィンドウのサイズを取得する関数教えてください。
〜Adjust〜みたいな名前だったような気がします。

418 名前:デフォルトの名無しさん :05/03/13 05:40:50
AdjustWindowRectEx ?

419 名前:デフォルトの名無しさん :05/03/13 15:16:33
>>418
それ!
サンクス

420 名前:デフォルトの名無しさん :05/03/13 19:00:43
コードの折り畳みをコントロールしたいんですがいい方法ありませんか?
--- hoge.cpp ---
#include "a.h"         ) コード1
#include "b.h"         )
/*                 ]
  非常に長い行のコメント ] コード2
*/                ]
int hoge()            }
{                  } コード3
 // 省略            }
}                  }
というファイルがあるとき#includeとint hoge()だけ残して折り畳みをしたいんですが
実際折りたたもうとするとコード1とコード2は同時に折りたたまれてしまいます。
やりたいのはコード2だけを折りたたみたいのです。
コード1とコード2の間にvoid dummy(){}というコードを入れることによって対処してますが
何か違うような気がします。
知恵を貸してください。

421 名前:デフォルトの名無しさん :05/03/13 19:24:08
「折り畳み」を定義してくれ

422 名前:420 :05/03/13 20:15:09
>>421
通じなかったかorz
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxtskoutliningcode.asp
これの+とか...が折り畳まれた状態です。
>>420を折り畳んで
--- hoge.cpp ---
+[...]
#include "a.h"
#include "b.h"
+[...]
int hoge()
{
 // 省略
}
という風にしたい。
実際は
--- hoge.cpp ---
+[...]
int hoge()
{
 // 省略
}
という状態になってコメントとincludeがまとめて折り畳まれてしまう。

423 名前:デフォルトの名無しさん :05/03/13 21:50:16
>>420,422
.NETスレいったほうがいいと思うよ。

424 名前:デフォルトの名無しさん :05/03/13 21:59:11
へたれたIDEなんぞ使わずに、まともな折り畳み機能のあるエディタを使えって話かな?
つーか、別に気にするほどのことかいや。

425 名前:デフォルトの名無しさん :05/03/14 00:30:36
縮めたいところを選択して

右クリック -> アウトライン -> 選択範囲を非表示

じゃあかんの?

426 名前:デフォルトの名無しさん :05/03/14 03:25:33
VC.netってどうやって*.libライブラリのリンクするんですか(?_?)/
そんな項目が探してもみつからない・・・

427 名前:デフォルトの名無しさん :05/03/14 03:48:17
>>426
ソリューションエクスプローラでプロジェクト名を右クリック
リンカ、入力、追加の依存ファイル

428 名前:420 :05/03/14 10:03:46
>>425
それだとタブ(ファイル)を閉じただけで非表示した場所を忘れてしまうんだよね。

>>423-424
どうもできないっぽいしあきらめます。
スレ微妙に違ってスマソ。


429 名前:デフォルトの名無しさん :05/03/14 10:12:19
そんなにしばしば折り畳んでしまいたいような情報なら捨ててしまえばいいのに。

430 名前:420 :05/03/14 12:22:54
>>429
Doxygenに使ってるからあかんのだ。

431 名前:デフォルトの名無しさん :05/03/14 14:04:17
ゲームスレみたいな所なのでここで質問。
RPGやパズル、シミュレーションなどで、
独特なキー入力(十字キー)のやり方がありますよね。
キーを軽く押したら、1マス動いて、
しばらく押しっぱなしにしたら、そのままスムーズに押した方向へカーソルが
動くやつ。あれはどう実装すればいいのでしょう?
できればアルゴリズム or コードでお願いします。

432 名前:431 :05/03/14 14:12:52
誤爆。スミマセン。

433 名前:デフォルトの名無しさん :05/03/14 14:14:24
>>431
アルゴリズムも何も
>キーを軽く押したら、1マス動いて、
>しばらく押しっぱなしにしたら、そのままスムーズに押した方向へカーソルが動く
をそのまんまコードにすればいいんだけど。

434 名前:デフォルトの名無しさん :05/03/14 14:42:13
キーが押されてる時間を見て、
押された時と、一定時間後だけ動かすようにすればいい。

435 名前:デフォルトの名無しさん :05/03/14 14:43:47
>>433
>431はDirectXスレで聞いてますから。

>>430
Doxygenなら尚のこと、別ファイルにすればいいのに。

436 名前:デフォルトの名無しさん :05/03/14 20:23:44
Visual C++ .NET Standard Version 2003 アカデミックパック
↑を購入しようと思うのですが、何か制限やアクティベートの必要はあるのでしょうか?

437 名前:デフォルトの名無しさん :05/03/14 22:24:03
>>436
Spoke買っとけ

438 名前:デフォルトの名無しさん :05/03/14 23:14:05
>>427
うおー。ありがとございました。

439 名前:デフォルトの名無しさん :05/03/15 00:31:54
>>436
アクチが必須
学生証もいるような

440 名前:デフォルトの名無しさん :05/03/15 02:25:49
Visual Studio .NET 2003を入れたのですが、
Visual Studioからでなく、Visual C++を一発で起動する
ショートカットを作りたいのですが、どうすればいいのですか?

441 名前:デフォルトの名無しさん :05/03/15 02:30:29
nmake.exeでも起動するようにバッチファイルでも作れば?

442 名前:sage :05/03/15 18:22:12
なるほど。

443 名前:デフォルトの名無しさん :05/03/15 19:28:07
VC++で作成したダイアログが、ある時を境に一回り小さく表示されるようになって
しまいました。
コントロールもフォントも全て約3/4のサイズで表示されます。
リソースビューを開いた段階で既に小さくなっています。
同じソースを使用しても他のマシンでは正常に表示されるので、恐らく描画用の
DLL(?)が何かの拍子に置き換わってしまったのではないかという気がしています。

お心当たりのある方がいらっしゃいましたらご教示下さい。
宜しくお願い致します。

444 名前:デフォルトの名無しさん :05/03/15 19:39:40
パソコン買い換えれば無問題
くだらない質問は迷惑です

445 名前:デフォルトの名無しさん :05/03/15 19:45:21
>>443
画面解像度を上げただけじゃね?

446 名前:443 :05/03/15 19:54:45
>>445
いえ、そういう訳ではなく、元々800×600[px]のサイズだったものが600×450[px]くらいに
表示されています。
それに合わせてフォントも約3/4になっているので、ぱっと見は違和感がないのですが、
よく見るとバランスがおかしいです。

447 名前:デフォルトの名無しさん :05/03/15 20:12:55
ダイアログに合わせてフォントサイズが変わったんじゃなくて
フォントサイズに合わせてダイアログが変わったのだろう

448 名前:デフォルトの名無しさん :05/03/15 20:21:21
VC++.net2003なんですが
インクルードする時、stdio.hならインクルード出来るんですが
iostream.hでのインクルードが出来ないんですがどうしたら
いいですか?^^;

449 名前:デフォルトの名無しさん :05/03/15 20:22:29
#include<iostream>

450 名前:443 :05/03/15 21:12:49
>>447
故意にフォントサイズを変えたりはしていません。
閉じてまた開いたら勝手に変わっていたといった感じです。
見直してみたら、全てのフォントが変わっていた訳ではありませんでした。
描画用のDLLの置き換わり(?)などによる現象ではないということでしょうか・・?

451 名前:デフォルトの名無しさん :05/03/15 21:25:17
>>450
OSの問題の可能性が高い。
本当にVCの問題なのかはっきりさせてから質問し直した方がいい。

452 名前:デフォルトの名無しさん :05/03/15 21:35:39
>>443
98系かNT系か晒したら?

453 名前:デフォルトの名無しさん :05/03/15 22:24:58
>リソースビューを開いた段階で既に小さくなっています。
だから、>>447に書いてあるじゃん
コントロールじゃなくてダイアログそのもののフォントを変更してしまったんだよ。
リソースエディタでダイアログのプロパティを見ると
フォントを設定出来るところがあるでしょ。そこでフォントのサイズを
変更すれば、設定したフォントに合わせてダイアログのサイズも変わるよ。
>それに合わせてフォントも約3/4になっているので
9ptを8ptにしたとか、まさにそういうこと。違うって?
じゃあ、もう一つ教えよう。リソースの種類が日本語になっているか他の
言語になっているか確認しろ。リソースの言語を変更するとフォントも
変わるよ。

454 名前:デフォルトの名無しさん :05/03/15 23:28:50
VS2003pro使ってるんですが
Win32のメインウィンドウだけはリソースエディタみたいなので
ビジュアルにGUIを設計できないんですか?

455 名前:デフォルトの名無しさん :05/03/15 23:32:14
>>454
もちつけ、VCプロジェクトで何を選んだらこうなったをいわないと
わからん

456 名前:455 :05/03/15 23:37:35
>>455
Win32プロジェクト->Win32
です

457 名前:デフォルトの名無しさん :05/03/15 23:43:55
>>456
ごめん、初めて使ったが、できないみたい.
フォームアプリケーション以外は無理だな

458 名前:デフォルトの名無しさん :05/03/16 00:29:45
新たにダイアログを作ってメインウィンドウのクライアント領域に貼り付ければ
似たようなことはできる。

459 名前:デフォルトの名無しさん :05/03/16 01:15:40
ふつーはメインウィンドウを不可視で作って
代わりに一つ目の子ウィンドウをメインっぽく使う


460 名前:デフォルトの名無しさん :05/03/16 02:25:35
デバッガでライトアクセスブレークは設定できないのでしょうか?
VisualStudio.Net 2003を使っています。


461 名前:443 :05/03/16 03:56:30
>>451>>452
なるほど、OSの問題の可能性ですか・・
ちなみに今使ってるOSはXPのSP2です
しかし昨日までは問題なく表示されていましたし、現時点で正しく表示されるマシンも
SP1だったり2だったりしますが、全てXPです

462 名前:デフォルトの名無しさん :05/03/16 09:13:59
>>451
だから、ダイアログのプロパティでフォントの設定が変わっていないか確認しろってば。

463 名前:443 :05/03/16 14:43:05
>>447>>451>>453>>451、他

画面のプロパティやダイアログのプロパティを見ても元々設定したまま
だったので途方に暮れていましたが、
コントロールパネル>フォント
を見てみたら怪しいファイルが幾つか紛れていたので、削除したところ
元通りになりました。

フォント名のところに(#Set6)という風に書かれていたので、推測ですが
画面のプロパティで設定したものよりも優先されるシステムフォントのような
位置づけのフォントだったのではないかと思います。
※#Set6というのはうろ覚えです。またおかしくなったら怖いので入れ直して
 いません・・。

どうも有難うございました。

464 名前:デフォルトの名無しさん :05/03/16 23:00:40
>>454-459
つか、CFormView

465 名前:デフォルトの名無しさん :05/03/17 00:17:54
>>464
MFCじゃんか
死ねよカス

466 名前:デフォルトの名無しさん :05/03/17 02:00:19
VC++2003のデバッガなんですが
何らかの原因で実行行を指すカーソルやブレークポイントが
ずれて表示されてしまう現象がでます。
これはどんな原因でなってしまうのでしょうか?
ソリューションのリビルド等試しても直らないので
デバッガが非常に使いにくくて困っています…。

467 名前:デフォルトの名無しさん :05/03/17 02:01:33
最適化が掛かってしまってるとか。

468 名前:デフォルトの名無しさん :05/03/17 02:18:34
>>466
実行してからソースを修正してもずれることがある。

469 名前:466 :05/03/17 02:20:28
>>467
設定はデフォルトから弄ってないです。
先ほど、プロジェクトを一回消去して作り直したのですが
直りませんでした…。

470 名前:デフォルトの名無しさん :05/03/17 02:25:25
よもやReleaseビルドじゃあるまいな。

471 名前:デフォルトの名無しさん :05/03/17 02:31:12
>>470
いえ。Debugビルドです。
昨日まで何ともなかったんですが、気づいたらずれてました。

472 名前:466 :05/03/17 02:51:01
今、直りました。
変なコードでも混入したのかと思い、一度別のテキストエディターにコピーしてから
VCにコピーしなおしてみたらずれなくなりました。

473 名前:デフォルトの名無しさん :05/03/17 17:50:34
実はコンパイルしなおせばいいだけだったとかね。

474 名前:466 :05/03/17 21:47:09
何となく予想がついたので確認してみたところ再現出来ました。
ソースコードにCR+LFとCRのコードが混ざっていたのが原因みたいです。
VSのエディターはにCR+LFとCRどちらでも改行表示されるのですが
デバッガーのカーソルはCR+LFのコードしか見ていないので実際の位置と
ずれてしまったようです。

昔のHELPファイルからAPIの引数をコピペしたときにCRだけのコードが混ざったようです。
デバッガーがCR+LFしか見てくれないなら
エディタ側でCR+LFに変換しくれてもいいと思うのですけどね…。

475 名前:デフォルトの名無しさん :05/03/18 07:00:07
勝手なことされちゃ困る

476 名前:デフォルトの名無しさん :05/03/18 09:42:02
変換されるのが普通だろ。
Microsoftの改行仕様なんだから。

477 名前:デフォルトの名無しさん :05/03/18 10:08:20
LFだけの場合も変換しないのはUnixでリビジョン管理をしていると助かる。
しかし、VisualStudio内で改行してしまうとCRLFになってしまうから、
結局フィルタリングする羽目になる。

478 名前:デフォルトの名無しさん :05/03/20 13:26:28
質問です

VC++2003のには、変数の読み書きを監視するウォッチポイント
のような機能はないのでしょうか?

あとメモリの表示も各進数でしか表示できないのですが
指定した構造体で表示したりできないのでしょうか?







479 名前:デフォルトの名無しさん :2005/03/22(火) 21:07:43
VC++.net非2003を使っているのですが、
これに付属のヘルプを見てるとよく英語のヘルプが出てくるのですが
これって日本語にならないものでしょうか?


480 名前:デフォルトの名無しさん :2005/03/22(火) 21:15:12
>>479
つ[翻訳サイト]
英語読めるようになったほうがいいよ。プログラマやってるなら必ず必要になるから。

481 名前:デフォルトの名無しさん :2005/03/22(火) 21:18:13
そうですか、英語しかないんですね。
必死に読むしかないか・・・。

482 名前:デフォルトの名無しさん :2005/03/23(水) 00:02:23
VC7(Version 7.0.9486、WinXP)で、
>>482 を実行すると "AAA未定義" と表示されます。
>>483 を実行すると "AAA定義済" と表示されます。

これに気付くのに3日間かかってしまったんですが、
この結果は正しいのでしょうか?
ただの知識不足?

483 名前:482 :2005/03/23(水) 00:04:02
すいません、
>>482>>483
>>482>>484
と読みかえてください。

#define AAA

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
#ifdef AAA
cout << "AAA定義済" << endl;
#else
cout << "AAA未定義" << endl;
#endif
return 0;
}

484 名前:482 :2005/03/23(水) 00:04:39
#include "stdafx.h"
#include <iostream>
using namespace std;

#define AAA

int _tmain(int argc, _TCHAR* argv[])
{
#ifdef AAA
cout << "AAA定義済" << endl;
#else
cout << "AAA未定義" << endl;
#endif
return 0;
}

485 名前:482 :2005/03/23(水) 00:05:33
>>483>>484
#define AAA
の位置が違うだけです。

486 名前:デフォルトの名無しさん :2005/03/23(水) 00:27:05
>>485
なんでかはわからんけど、プリコンパイル済みヘッダが悪さしてるみたいだね。
offにすると期待通りになる。

487 名前:482 :2005/03/23(水) 00:42:23
>>486
ほんとだ、正しく出ますね。
ありがとうございました。


488 名前:デフォルトの名無しさん :2005/03/23(水) 01:32:59
>>482
つーか、#include "stdafx.h"はただのインクルード行ではなく、
プリコンパイルの目安なんだからそれよりも前になんか書いたらリビルドしなくちゃダメ。

489 名前:デフォルトの名無しさん :2005/03/23(水) 06:56:53
ダイアログでテキストボックスなどのようにキャプションがないコントロールに関してALT+何かという操作をするにはどうすればいいのでしょうか?
またVBのようなTabIndexはどこで設定するのでしょうか?
質問ばかりですいません

490 名前:デフォルトの名無しさん :2005/03/23(水) 10:17:07
>>488
リビルドしても"AAA未定義"が出力されちゃうのよ。
#define AAA
が無視されてる感じに。

491 名前:デフォルトの名無しさん :2005/03/23(水) 10:50:06
#include "stdafx.h"
の上か下かで変わるのかね?

492 名前:デフォルトの名無しさん :2005/03/23(水) 10:58:53
>>491
int a = 1;
#include "stdafx.h"
int a = 2;

プリコンパイル済みヘッダが有効だと、こんなのも通ってしまう。
上のaが無かったことにされてる。

493 名前:491 :2005/03/23(水) 11:37:08
ググって調べてみたけど、
プリコンパイルヘッダより前は全て無視されるみたいだね。

まあ確かにプリコンパイルヘッダより前に記述したらおかしくなるから
正しい仕様とは言えるけど。

494 名前:デフォルトの名無しさん :2005/03/23(水) 23:59:25
VC++ってすげーなw

495 名前:デフォルトの名無しさん :2005/03/24(木) 00:48:42
>>489
前半:意味不明
後半:ダイアログエディタでCtrl+D

496 名前:482 :2005/03/24(木) 03:18:13
コンパイラオプション/Yufilenameの説明に書いてたんですね。
調査不足でした。

497 名前:489 :2005/03/24(木) 06:19:42
>>495
ありがとうございます
前半は・・・例えばチェックボックスのキャプションに
CHECK(&C)ってかけばALT+Cでいける、みたいなのをキャプションがないテキストボックスにはどうすればいいのでしょう?
ということでした すいません

498 名前:デフォルトの名無しさん :2005/03/24(木) 17:46:58
VC++Toolkit 2003を取ってきたんですが、
コマンドプロンプトが出てきて
どうゆう入力をすればいいかわかりません。

でてくるメッセージは、

Setting enviroment for using Microsoft Visual C++ 2003 Toolkit.
(If you have another version of Visual Studio or Visual C++ installed and with
to use its tools from the command line, run vcvars32.bat for that version.)

Thank you for choosing the Visual C++ Toolkit 2003! Get started quickly by
building the code samples included in the "Samples" directory. Each sample
includes a short whitepaper discussing the Visual C++ features, and a batch
file for building the code.

Type "cl /?" for brief documentation on compiler options.

Visit  http://msdn.microsoft.com/visualc/using/documentation/default.aspx for
complete compiler documentation.

C:\Program Files\Microsoft Visual C++ Toolkit 2003>

って出てきます。                        ↑ここになんて入れれば・・・

環境は、
Cleron 2.4
メモリ 512MB
マザー  P4P800

の自作です。


499 名前:デフォルトの名無しさん :2005/03/24(木) 18:00:34
>>498
Toolkitスレがあるのでそちらで聞いたら?
つーか、そのレベルだと使いこなせないと思われ。

500 名前:デフォルトの名無しさん :2005/03/25(金) 01:05:06
ねえねえ、DLL内でnewしたポインタ値を使って、
呼び出し側(exe側)でdeleteしたらいけないって知ってました?
私は7年目ですけど、今初めて知りましたよ...orz


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.