★初心者にVisual C++を教えるスレ★ Part5
■ このスレッドは過去ログ倉庫に格納されています
0001987
NGNGVisual C++ 初心者用スレッドです。
前スレ・関連スレは、>>2 ぐらい。
0098デフォルトの名無しさん
NGNGムリ
009995と97
NGNG仕方が無いので、EUC形式が正しく表示出来る違うエディタで編集して、
編集が終わったらVCでコンパイルする事にします。
質問に答えて頂きありがとうございました。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGこの意味わかる方教えてください
某参考書の一節
#ifがよく使われるのは、ヘッダファイルの二重include防止です。
#if ANYHEADER_H
#define ANYHEADER_H
・
・
・
#endif
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG気持ちはわかる。以上
0106デフォルトの名無しさん
NGNGなんですか?
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG#ifndef ANYHEADER_H じゃね。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGそうでした。108さんの言うとおり。
すみません、そちらの方でお願いします
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG両方使うのが普通です
0113デフォルトの名無しさん
NGNG低レベルな話だと思いますがよろしくお願いします
0114デフォルトの名無しさん
NGNG気持ちはすごくわかる。以上
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGttp://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html
0117デフォルトの名無しさん
NGNGひとつのファイルをコンパイルするのに
同じファイルを何回もインクルードするのは無駄。
だから、コンパイラが読み込みを省略してくれることもあるし、
万が一、2度読み込まれても構文解析が読み飛ばしてくれるように、
#ifndef ANYHEADER_H
#define ANYHEADER_H
・
・
・
#endif
と書いておく。
stdio.hみたいなファイルは、
ありとあらゆるヘッダーにかかれているから、
コンパイル時間の節約になるし、
同じ宣言が重複するエラーも出ない。
さらばじゃ。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGいいところに気がついたじゃないか。
プログラマのほとんどは、どこで二重にincludeしてしまうのか
わかってないんだよ。だけど、その呪文を書いておけば、
どこで二重にincludeしてしまっても気にする必要がないんだよ。
どーだ楽ちんだろ。
0120デフォルトの名無しさん
NGNG#define ANYHEADER_H
#pragma once
・
・
・
#endif
まぁあれだ
『おまじない』だと思ってこれは必ず入れて置けと
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGエスケープシーケンスでがんばったら。
0123デフォルトの名無しさん
NGNGVC++.NETが使えるのは2000/XP→2000/XPではエスケープシーケンス無理
→がんばれない。
0124デフォルトの名無しさん
NGNGVC++.NET 使ってる人にお尋ねしますが、これにも
MSDN Library が付属してると思うんですが、これの
Platform SDKの解説は相変わらず大部分英語ですか?
それとも完全に日本語訳になったでしょうか?
VC++6.0使ってるんですが、翻訳がホントに一部だけで
WNDCLASS構造体の解説ですら英語という状況なので
完全に訳されているなら.NETに移行しようかと思ってる
んですが。
0125デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
0126bloom
NGNG0127デフォルトの名無しさん
NGNGchar c;
COleVariant v(CString(c));
0128デフォルトの名無しさん
NGNG英語を学んだほうが現実的だと思うけど。
ネット版なら翻訳されてるかな?
ttp://www.microsoft.com/japan/msdn/library/
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGint main()
{
int a, b;
printf("a, bを入力してください\n");
scanf("%d, %d", &a, &b);
printf("a = %d b = %d\n", a, b);
printf("何かキーを押してください");
getchar();
printf("end");
return 0;
}
実行するとgetchar()の入力待ちが起きずに終了してしまうんですが
なぜでしょうか。コンパイラはvc++.netです。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGありがとうございます。
0133デフォルトの名無しさん
NGNGステップインしてデバッグ出来ていたのですが、先ほどやってみると
strcpy,strncpy,starcat,CString等他の関数の中身(アセンブリ?)
までステップインしてしまってます。
きっとどこかの設定を触ってしまいこうなったのだと思いオプション
設定を見直したのですが、わかりませんでした。
教えてください。
0134デフォルトの名無しさん
NGNGステップアウト (関数から抜け出る)
ステップオーバー (次の関数へ)
のボタンないですか?
0135デフォルトの名無しさん
NGNGありがとうございました!
ステップアウトでできました。以前はF8ステップインだけを押して
いてそんな事してなかったと思ったのですが。。
これでデバッグがまたはかどります。
ステップインって必要ないじゃん!
0136デフォルトの名無しさん
NGNGんなこたーない。
自分の書いた関数の呼び出しもトレースしなくなるぞ。
0137デフォルトの名無しさん
NGNG↓のコードを書いたのですが
if(GetAsyncKeyState(VK_TAB) & 0x8000) {
HANDLE hmap;
char *map;
PDWORD bite=0;
map=(char *)bData;
hmap =CreateFile("C:\\map.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,NULL,NULL);
if(hmap != INVALID_HANDLE_VALUE){
WriteFile(hmap,map,lstrlen(map),bite,NULL);
CloseHandle(hmap);
}
}
WriteFileができず
「ハンドルされていない例外 は Sample11.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。」
とでてしまいます。
どうすれば書き込むことができるのでしょうか?
0138137
NGNGを使ってます
0139デフォルトの名無しさん
NGNG>PDWORD bite=0;
これはないでしょう。
0140137
NGNGと書いてあったので適当に初期化してみたのですが
まずかったでしょうか。
どう直せばよいのでしょう。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGPDWORDなんてものがあるなんて知らなかった…。
0143137
NGNG0144デフォルトの名無しさん
NGNGMSDNにも素直にFoo(HOGE* hoge);って書いてくれればいいのに
Foo(LPHOGE hoge);って出てたりするし。
0145デフォルトの名無しさん
NGNG答えから言えば
DWORD dwBit;
としといて関数に&dwBitを渡す。
たぶんMSDNにも「第四引数は〜へのポインタ」みたいなこと書いてあると思う。
0146137
NGNGやってみます。
0147137
NGNGPはポインタを示す冠詞のようなものなのですね。
初めてしりました。
0148デフォルトの名無しさん
NGNG片方しか定義されていない物、
まったく存在しない物、
16bit時代の名残を引きずっているとはいえ、
M$の定義はいい加減すぎる
0149デフォルトの名無しさん
NGNGその癖型チェックはしっかりするし(w
0150デフォルトの名無しさん
NGNGDirectxを使ってクライアント領域に描写しているのですが
ダイアログのようなエディットボックスで
文字入力したいのです。
どのようにすればよいでしょうか。
0151デフォルトの名無しさん
NGNG簡単に出来るんですか?
0152デフォルトの名無しさん
NGNGソースの拡張子を .c にする。
0153デフォルトの名無しさん
NGNG助かりました。
0154デフォルトの名無しさん
NGNG0155150
NGNG0156デフォルトの名無しさん
NGNG作れます。
0157デフォルトの名無しさん
NGNGつーか子ウィンドウの作れないウィンドウってあるか?
0158デフォルトの名無しさん
NGNGいくらでも対策はあるけど
0159デフォルトの名無しさん
NGNG以前まで(今回の再インストール)は、VCの「ファイル、編集・・」などある
あのメニューから、ツールバーのカスタマイズをするときに引用できたのですが、
なぜかできなくなりました、ためしに完全インストールや上書きインストールなど
やってみましたが無理でした。
やりたいことは、
ツール→カスタマイズで、ファイル→ワークスペースを開く を
ツールバーに追加したいのですが、このメニューが何か違うのです、左端につまみ
がないメニューに(表現悪くてすいません)なっていて、
編集メニュー項目とかにアイコン付で項目があると思うのですが全ての項目に
アイコンがついてません、アイコンが描画される幅がない感じで狭いです。
友人から試しに上述のカスタム状態のレジストリをもらって上書きすると、一応
できたのですが、メニュー項目のアイコンなどは復帰しないです。
どなたかご教授下さい、わかりにくければ再度説明します。お願いします。
0160デフォルトの名無しさん
NGNGわかりにくいのでもう一度お願いします。
0161デフォルトの名無しさん
NGNG>ツール→カスタマイズで、ファイル→ワークスペースを開く を
>ツールバーに追加したいのですが
そんなに何度も使うものじゃないのにツールバーに必要ですか?
0162デフォルトの名無しさん
NGNG>引用できたのですが
この辺が謎。
0163159
NGNG私は結構つかうので…。まぁなくても不便とまではいかないかも
しれませんが、できなくなったのが一番嫌なことでしょうか。
>>162
えっと、ツール→カスタマイズ、でツールバーに
ファイル→ワークスペースを開く をD&Dしたら、ツールバーに
同じ機能のボタンが生成できるんですが、その機能ができなく
なったのです。
カスタマイズ設定時でのメニューの項目が全てグレーになって
しまっています。
そのほかの見える現象としては、メニューがWin95時代(?)の
感じみたいになっていて、IE5とかのように左の端につまみがなく
なっています。
IEですとお気に入りのなかの項目にアイコンがあると思います。
プログラムだとオーナードローする技法のやつです。
VC6.0のメニューもそういった感じだったはずが、上述のとおり
Win95チックになってしまっています。
画面をみてもらえばいいのですが、そういうわけにも
いかないですね。
文字で表現するのが難しい、どうか宜しくお願いします。
0164デフォルトの名無しさん
NGNG>今回の再インストール
これが謎だけど、単にIEのバージョンが古いというのではあるまいな?
0165159
NGNGIEは5.5SP2です、正確には今回のWindows2000Proインストール
以来ずっとこの現象が残っているのです。
あれはIEコンポーネント関連と考えてIE6にしたり(今はけしました)
しても無理でした、VCの再インストールも無理でしたし。
以前まではWinインスト後まっさきにVCインストールでも、
正常になっていました、Winまた再インストールすればよい気も
するんですがこれだけの為にするのにも手間がかかるから敬遠してます。
どこか自由に画像アップロードできるところがあればいいのですが、
検索の仕方が悪いのかいまいちでてこない…。
他何か足りない情報ありますでしょうか?
今ちょっと思いついたのでレジストリを完全削除してVC起動してみます…。
(これでうまくいかないかなぁ)
0166デフォルトの名無しさん
NGNG0167159
NGNGあ、もちろんVcのです、やってみましたが無理でした。
猫のところで画像があったので説明します。
ttp://www.kumei.ne.jp/c_lang/setvc.htm
ここにページにある画像の「||ファイル|編集・・・」や
プロジェクト→プロジェクト追加→[アイコン]ファイル
となってますが、これの
メニューは、ちょうどメモ帳のメニューのようになって一番左のCのアイコン無し
メニューポップアップはアイコンが一切ないです。
これでもっと分かりやすくなったでしょうか…。
0168デフォルトの名無しさん
NGNG0169159
NGNGそれともあほすぎる質問なのかな。
まぁ開発には直接影響ないので >>168 さんの言う通り
諦めることにします。
再三の書き込み失礼致しました。
0170デフォルトの名無しさん
NGNG自分のスキルアップに繋がる質問なら
モチベーションあがるんだけどね〜。
0171デフォルトの名無しさん
NGNGスレタイがスレタイだけにそりゃ難しいだろ。
0172デフォルトの名無しさん
NGNGツール -> オプション -> ワークスペース -> 画面読み取り互換メニューを使用
ぢゃないか?
って関数があったんだけどAfxGetApp()->の文法で関数の後にアロー演算子って
どんな意味があったっけ、一度みたような気がしたんだけど
調べるキーワードおせーてください
0174デフォルトの名無しさん
NGNG「アロー演算子」で調べるといいよ。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177173
NGNG文法しかのってない、もう少しヒントを、、、
0178デフォルトの名無しさん
NGNG構造体のポインタを返す関数に対して使える。
よって175の指摘どおりCの基礎をやり直すべき。
0179デフォルトの名無しさん
NGNGん?
typedef struct
{ HRESULT (*LoadStandardCursor)(int); } func_struct;
func_struct *AfxGetApp();
AfxGetApp()->LoadStandardCursor( IDC_ARROW);
0180173
NGNGそのままだったね
基礎たりないね
>アローの先が関数ってのは有り得ないけど
これはありえると思うんだけど、てかメソッドか?
0181デフォルトの名無しさん
NGNG細かい所はぐちゃぐちゃなのでスマソ...
0182デフォルトの名無しさん
NGNG関数ポインタね。さらにスマソ...
0183173
NGNGということでいいですね
動作テストははぶいちゃいます
0184173
NGNG1 API
2 MFC
3 ウィザード
この内どれで作るかまよってます
モノはアナログ時計でリージョン使おうと思ってます
ウィザードが安定してそうなんですが、ウィンドウを
作る前にオーバーライドするのってどうしてます?
0185デフォルトの名無しさん
NGNG( ゚д゚) <ポカーン…
0186デフォルトの名無しさん
NGNG手軽に作るならMFCが楽ぢゃない?
ウィザードってよく分からんが。
0187173
NGNG全力で説明してるんだが、なんとか読み取ってくれないかの〜
ウィザードつかったときにもうすでにフレームとユーザビュー
が完成されてるんで、なんとかリージョンをかますことができんか
考えてます、、、
0188デフォルトの名無しさん
NGNGすんませんがリージョンってなんですか?
0189173
NGNGMFCはMFCウィザード使わないでという意味です
ウィザードはMFCウィザードを使うという意味です
MFCのみだとCWndクラスをそのまま継承してリージョンが
できるが手作りだと不安定なきがしました、メッセージ関係とか特に
0190デフォルトの名無しさん
NGNGSDIで作成すると白い背景のウインドウ
1つだけじゃない? そこにごちゃごちゃ
追加していけばいいのでは?
0191デフォルトの名無しさん
NGNG丸いウインドウ。
0192173
NGNGリージョンはウィンドウのスタイルを自由な形で利用する意味で
書きました^^;
普通だとダイアログかSDIの矩形なので面白くないと思って、、
で、今回は時計なので楕円です
0193デフォルトの名無しさん
NGNG漏れもそういうのは作り方わかんないから、他の人の
アドバイスきぼんぬ。
0194173
NGNGSDIにごちゃごちゃ書くときに
ウィンドウの形を変えるには
ViewのPreCreateWindowメソッドに書いたらええですか?
Frameはほっといたらいいよね?
>>191
そう
0195デフォルトの名無しさん
NGNG検索したらすぐ出てきたぞ。
0197デフォルトの名無しさん
NGNGDVDで使われている地域コードのこと。
■ このスレッドは過去ログ倉庫に格納されています