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

このエントリーをはてなブックマークに追加
940デフォルトの名無しさん:2010/05/02(日) 14:23:29
メモ帳(notepad)で ヘルプ > バージョン情報 でダイアログ出しても
メモリ使用量は300KBぐらいしか増えないね
941デフォルトの名無しさん:2010/05/02(日) 18:08:49
>>935
> GUI のアプリは、各ウィンドウにビットマップを持っている

そもそもこれ本当なの?
942デフォルトの名無しさん:2010/05/02(日) 18:32:17
偉そうに回答してる奴も初心者だったかw
次スレからスレタイ変更願う

★初心者がVisual C++を教えるスレ★ Part〜
      ~~~ 
943デフォルトの名無しさん:2010/05/02(日) 18:38:51
高々、8MB程度でウダウダ言うほうがおかしい
今日のパソコンはたいてい1GB以上は積んでんだろ?
944デフォルトの名無しさん:2010/05/02(日) 18:40:29
VS2008で、実行ファイルを、$(SolutionDir)Debug とかではなく別のディレクトリ(仮にD:\TEST)に吐き、
なおかつその状態でVSから実行したいと考えています。

$(SolutionDir)Debug
$(SolutionDir)Release
$(SolutionDir)Project ←以前はここにDLLなんかを置いていた

普通に$(SolutionDir)Debug に実行ファイルを出している場合は、
プロジェクトが依存してるDLLや読み込むINIファイルを $(SolutionDir)Project に置くと
VSから実行したとききちんと読み込めているようです。

VSのプロジェクト設定を弄って 構成>全般>出力ディレクトリ を変更すると
D;\TESTに実行ファイルを出すことはできるのですが、この場合、
実行ファイルが置かれているはずのパスがおかしくなるようで、
LoadLibraryで明示的にDLLを読み込む所でプログラムが落ちます。

プロジェクト設定の 構成プロパティ>デバッグ>作業ディレクトリ あたりが怪しいかな?
と思って試しに書き換えたのですが、やっぱりDLLが見つからないようでLoadLibraryする所で落ちてしまいます。

できない事はないんじゃないかなと思いながらも自力ではさっぱりだったので、
どなたか思い当たることがあればお願いします。
945デフォルトの名無しさん:2010/05/02(日) 18:55:03
DLLをexeの出力先とおなじ場所においちゃだめなの?
946デフォルトの名無しさん:2010/05/02(日) 19:37:34
>>944
ttp://www.ne.jp/asahi/hishidama/home/tech/vcpp/setting.html
ここの一番下を参考にどうぞ
947デフォルトの名無しさん:2010/05/03(月) 12:56:42
c:\autoexec.bat

set lib=d:\test
を書いて再起動
948デフォルトの名無しさん:2010/05/03(月) 13:59:15
hoge.exe の 0x77d0f48f で初回の例外が発生しました: 0xC0000005: 場所 0x27044854
を読み込み中にアクセス違反が発生しました。

と出力ウィンドウに出力されます。
なにをヒントに探せばいいのでしょうか?

949デフォルトの名無しさん:2010/05/03(月) 14:19:48
デバッガ使える状況なのか、ユーザーからそういう報告を受けただけなのかでかわってくるが、、
それはおそらく未初期化のポインタ使ってアクセスしてるんじゃないかな
mapファイルでも出して0x77d0f48f がどの関数なのか見てみたら
950デフォルトの名無しさん:2010/05/03(月) 14:22:12
って出力ウインドウか
そこで止まらない?
再試行ボタン押せば該当個所表示されないか?
951デフォルトの名無しさん:2010/05/03(月) 14:50:01
レスありがとうございます。
環境を書いていませんでした。 VC++2008MFCです。

>>949
mapファイルというのをはじめて聞きました。
ぐぐってみて、挑戦してみます。

確かにどのメソッド内から発生しているのかさえわかれば、追いやすいんですが・・・

>>950
止まりません。
952デフォルトの名無しさん:2010/05/03(月) 15:01:08
MFCってことはEEじゃないのか
なら、デバッグ-例外-Win32 Exceptions でC0000005にチェック入れてみるとか。

強引にステップ実行しながら特定する手もある
953デフォルトの名無しさん:2010/05/03(月) 15:42:27
>>952
レスありがとうございます。
デバッガが停止しました。これで追っかけれそうです。

マップファイルを見ても、0x77d0f48f 0xC0000005 0x27044854
が見つからず、ググってました
954デフォルトの名無しさん:2010/05/03(月) 17:08:17
そりゃそのものずばりのアドレスがあることはほぼ無いだろw
それが含まれるものを探すんだよ
でもデバッガあるならそれでいいじゃない
955デフォルトの名無しさん:2010/05/03(月) 17:46:23
>>954
ほぼ無いのでれば、ある事もあるんでしょう
その違いは?
956デフォルトの名無しさん:2010/05/03(月) 18:18:31
そりゃ変数のアドレスならそのままだろう
プログラムのある地点のアドレスだと関数の戦闘のアドレスしか書いてないんだから
途中のアドレスは書いてないよ
957デフォルトの名無しさん:2010/05/03(月) 20:34:28
シンボル使ったデバッグのやり方を覚えなって
どうせASLRでアドレスなんて変わりまくるようになる
958デフォルトの名無しさん:2010/05/03(月) 23:03:43
オーナードローについて教えてください。

ダイアログにCListCtrlに貼り付けて、CListCtrlをオーナードローする場合

・ダイアログがWM_DRAWITEMを捕まえる
・CListCtrlを派生させて、DrawItemをオーバーライドする。

どちらが、正解ですか?
オーナードローとは所有者が描画するってことですよね
そうすると、上が正解だと思うんですが・・・
959デフォルトの名無しさん:2010/05/04(火) 07:26:36
>>958
下のリンク先のはちょっと古いMFCのドキュメントだが、内容的には今でも通用する。
これ読めば理解できるだろう。
特に最初の「メッセージ リフレクション (メッセージ返送) とは」の項な。

テクニカル ノート 62: Windows コントロールのメッセージ返送
http://msdn.microsoft.com/ja-jp/library/eeah46xd.aspx
960デフォルトの名無しさん:2010/05/07(金) 13:09:50
Visual C++2008で全く同じソースコードだけど
デバッグ時に出力ウィンドウに文字が出力されるプロジェクトとされないプロジェクトがある
違いはどこにあるんですか?
961デフォルトの名無しさん:2010/05/07(金) 14:00:23
プロジェクトが違う
962デフォルトの名無しさん:2010/05/07(金) 16:37:25
VisualC++で
#include "../include/GV.h"
これの..っていうのはなんですか?
どういう意味があるのでしょうか?
963デフォルトの名無しさん:2010/05/07(金) 16:39:58
>>962
一つ上階層のディレクトリの意味。
964962:2010/05/07(金) 16:49:23
こういう解釈でよろしいでしょうか?
sourceフォルダとincludeフォルダは同一フォルダ内(同一階層ですか?)
sourceフォルダ内にはmain.cppというソースファイルがある
main.cppに
#include "../include/GV.h"
と記述がある
includeフォルダ内にGV.hというヘッダファイルがある
main.cppの階層(sourceフォルダ内)からGV.hにアクセスするには
main.cppの階層から見て一つ上の階層である階層(sourceとincludeが存在する階層)
のincludeフォルダ内のGV.hファイルなので
"../include/GV.h"
となる。
965デフォルトの名無しさん:2010/05/07(金) 21:37:38
>>960
・ロケールを設定していない
・リリースビルド
966デフォルトの名無しさん:2010/05/07(金) 21:58:46
>>958
鋭いところに気づいてるな・・・

確かに、その辺をごっちゃにして、HPでえらそうに講釈垂れてる
恥ずかしい奴いるけどなw

オーナードローっていうのは上記が正解だよ
967デフォルトの名無しさん:2010/05/07(金) 22:33:29
http://msdn.microsoft.com/en-us/library/kfd1y2sd.aspx
CListCtrl::DrawItem

Called by the framework when a visual aspect of an owner-draw list view control changes.

厳密に言ったら絵の所有者は画家ではないのでは?
968デフォルトの名無しさん:2010/05/07(金) 22:42:57
鋭いところに気づいてるにしては、ダイアログという言葉には疑問を感じないのだろうか?
969デフォルトの名無しさん:2010/05/07(金) 23:21:59
このスレはダイアログばかりでつまらん
970デフォルトの名無しさん:2010/05/07(金) 23:56:12
>>958
派生クラス自身で描くのは、MFCでは自己描画と言ってる。
http://msdn.microsoft.com/ja-jp/library/bk2h3c6w(VS.80).aspx
971デフォルトの名無しさん:2010/05/08(土) 18:15:16
VC++2010のプロジェクトプロパティ・構成プロパティ・C++コード生成で
Debug、/MTbと/MDbはどう違うのですか?
Release、/MTと/MDはどう違うのですか?
972デフォルトの名無しさん:2010/05/08(土) 18:44:43
2010にはMSDNついてないんだ
973デフォルトの名無しさん:2010/05/08(土) 23:16:07
VC++ってVC#に比べるとコントロールの数がめちゃくちゃ少ないんですけど・・・
もう、MSはVC++を見捨ててるの?
974デフォルトの名無しさん:2010/05/08(土) 23:21:04
MFCだったらそもそも期待するのが間違ってるし
C++/CLIなら実際にはC#と同じだろ
まあC++/CLIは見捨てられましたが
975デフォルトの名無しさん:2010/05/09(日) 09:14:48
>>971
vcランタイムと静的にリンクするかどうかの違い
976デフォルトの名無しさん:2010/05/09(日) 12:40:42
>>973
2010ではリソースエディタでリボンなどを置けるらしいよ。
977デフォルトの名無しさん:2010/05/10(月) 17:17:04
おすすめの入門書はなんでしょうか?
978デフォルトの名無しさん:2010/05/11(火) 00:13:43
VC++2010で英数字をひらがなに変換したいのですが
半角/全角キーを押しても反応がありません
どうすればいいのでしょうか?
979デフォルトの名無しさん:2010/05/11(火) 00:17:00
>>978
>1
--
この板はプログラムを作る人のための板です。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
980デフォルトの名無しさん:2010/05/11(火) 00:18:38
>>977
新版 明解C言語 入門編
981デフォルトの名無しさん:2010/05/11(火) 11:27:57
ここのみんなCでやってるの?
982デフォルトの名無しさん:2010/05/11(火) 11:30:47
>>973
だってVC++っ
は全然ビジュアルじゃないから
983デフォルトの名無しさん:2010/05/11(火) 11:56:45
15年前はこれでもVisualだったんだからねっ
984デフォルトの名無しさん:2010/05/11(火) 12:58:19
visual basicに真似てネーミングしたんだろ。
visual と付いているから貼り付けできるとは限らない。
985デフォルトの名無しさん:2010/05/11(火) 13:02:37
2年先行していたbasicに合わせただけ。中身は違っていたが。


Visual Basic 1.0  1991年
オブジェクト指向の基本的な部分を実装。

Visual C++ 1.0  1993年
986デフォルトの名無しさん:2010/05/11(火) 13:02:55
コーディングC++
てのはどう?
987デフォルトの名無しさん:2010/05/11(火) 13:05:17
VCとやるから勘違いしてる人が大勢になる
だから
コーディングC++
988デフォルトの名無しさん:2010/05/11(火) 13:06:01
>>985
詳しいですね
989デフォルトの名無しさん
じじいばっかりか