★初心者にVisual C++を教えるスレ★ Part35
メモ帳(notepad)で ヘルプ > バージョン情報 でダイアログ出しても
メモリ使用量は300KBぐらいしか増えないね
>>935 > GUI のアプリは、各ウィンドウにビットマップを持っている
そもそもこれ本当なの?
偉そうに回答してる奴も初心者だったかw
次スレからスレタイ変更願う
★初心者がVisual C++を教えるスレ★ Part〜
~~~
高々、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する所で落ちてしまいます。
できない事はないんじゃないかなと思いながらも自力ではさっぱりだったので、
どなたか思い当たることがあればお願いします。
DLLをexeの出力先とおなじ場所においちゃだめなの?
c:\autoexec.bat
に
set lib=d:\test
を書いて再起動
hoge.exe の 0x77d0f48f で初回の例外が発生しました: 0xC0000005: 場所 0x27044854
を読み込み中にアクセス違反が発生しました。
と出力ウィンドウに出力されます。
なにをヒントに探せばいいのでしょうか?
デバッガ使える状況なのか、ユーザーからそういう報告を受けただけなのかでかわってくるが、、
それはおそらく未初期化のポインタ使ってアクセスしてるんじゃないかな
mapファイルでも出して0x77d0f48f がどの関数なのか見てみたら
って出力ウインドウか
そこで止まらない?
再試行ボタン押せば該当個所表示されないか?
レスありがとうございます。
環境を書いていませんでした。 VC++2008MFCです。
>>949 mapファイルというのをはじめて聞きました。
ぐぐってみて、挑戦してみます。
確かにどのメソッド内から発生しているのかさえわかれば、追いやすいんですが・・・
>>950 止まりません。
MFCってことはEEじゃないのか
なら、デバッグ-例外-Win32 Exceptions でC0000005にチェック入れてみるとか。
強引にステップ実行しながら特定する手もある
>>952 レスありがとうございます。
デバッガが停止しました。これで追っかけれそうです。
マップファイルを見ても、0x77d0f48f 0xC0000005 0x27044854
が見つからず、ググってました
そりゃそのものずばりのアドレスがあることはほぼ無いだろw
それが含まれるものを探すんだよ
でもデバッガあるならそれでいいじゃない
>>954 ほぼ無いのでれば、ある事もあるんでしょう
その違いは?
そりゃ変数のアドレスならそのままだろう
プログラムのある地点のアドレスだと関数の戦闘のアドレスしか書いてないんだから
途中のアドレスは書いてないよ
シンボル使ったデバッグのやり方を覚えなって
どうせASLRでアドレスなんて変わりまくるようになる
オーナードローについて教えてください。
ダイアログにCListCtrlに貼り付けて、CListCtrlをオーナードローする場合
・ダイアログがWM_DRAWITEMを捕まえる
・CListCtrlを派生させて、DrawItemをオーバーライドする。
どちらが、正解ですか?
オーナードローとは所有者が描画するってことですよね
そうすると、上が正解だと思うんですが・・・
Visual C++2008で全く同じソースコードだけど
デバッグ時に出力ウィンドウに文字が出力されるプロジェクトとされないプロジェクトがある
違いはどこにあるんですか?
プロジェクトが違う
VisualC++で
#include "../include/GV.h"
これの..っていうのはなんですか?
どういう意味があるのでしょうか?
964 :
962: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"
となる。
>>960 ・ロケールを設定していない
・リリースビルド
>>958 鋭いところに気づいてるな・・・
確かに、その辺をごっちゃにして、HPでえらそうに講釈垂れてる
恥ずかしい奴いるけどなw
オーナードローっていうのは上記が正解だよ
鋭いところに気づいてるにしては、ダイアログという言葉には疑問を感じないのだろうか?
このスレはダイアログばかりでつまらん
971 :
デフォルトの名無しさん:2010/05/08(土) 18:15:16
VC++2010のプロジェクトプロパティ・構成プロパティ・C++コード生成で
Debug、/MTbと/MDbはどう違うのですか?
Release、/MTと/MDはどう違うのですか?
2010にはMSDNついてないんだ
VC++ってVC#に比べるとコントロールの数がめちゃくちゃ少ないんですけど・・・
もう、MSはVC++を見捨ててるの?
MFCだったらそもそも期待するのが間違ってるし
C++/CLIなら実際にはC#と同じだろ
まあC++/CLIは見捨てられましたが
>>971 vcランタイムと静的にリンクするかどうかの違い
>>973 2010ではリソースエディタでリボンなどを置けるらしいよ。
おすすめの入門書はなんでしょうか?
VC++2010で英数字をひらがなに変換したいのですが
半角/全角キーを押しても反応がありません
どうすればいいのでしょうか?
>>978 >1
--
この板はプログラムを作る人のための板です。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ここのみんなCでやってるの?
>>973 だってVC++っ
は全然ビジュアルじゃないから
15年前はこれでもVisualだったんだからねっ
visual basicに真似てネーミングしたんだろ。
visual と付いているから貼り付けできるとは限らない。
2年先行していたbasicに合わせただけ。中身は違っていたが。
Visual Basic 1.0 1991年
オブジェクト指向の基本的な部分を実装。
Visual C++ 1.0 1993年
コーディングC++
てのはどう?
VCとやるから勘違いしてる人が大勢になる
だから
コーディングC++
じじいばっかりか