トップページ⇒tech
1001コメント306KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001987NGNG
タイトルのとおり、
Visual C++ 初心者用スレッドです。

前スレ・関連スレは、>>2 ぐらい。
0054デフォルトの名無しさんNGNG
>>53
正常ですた!
0055デフォルトの名無しさんNGNG
>>47
初心者ならVC++の方が設定周りが楽だと思うよ。
VC++.NET Standard って6000円くらいで売ってたと思ったけど違った?
0056デフォルトの名無しさんNGNG

 そういや、

if ( .... ) {

}

っていうスタイルが一般的だけど、漏れは

if ( ... )
{

}

の方が読みやすくて良いと思った。最初の方は
一見スマートだけど、コードの中にあると、カッコ
の対応が分かりづらくて苦労する。

0057デフォルトの名無しさんNGNG
>>56
やめとけ
0058デフォルトの名無しさんNGNG
>>56
コーディングスタイル論争やりたいなら他逝けハゲ。
0059デフォルトの名無しさんNGNG
ワークスペースウィンドウとか、アウトプットウィンドウとか、
ツールバーとかって、動かないように固定できないのでしょうか。
006040NGNG
Borlandでたぶん設定できました。ありがとうございます。
exeファイルができたんですが、実行してもパッとMSDOSウィンドウが出るだけなんです。
「面積は12.566360です」っていう文章が実行結果として出ると
参考書に書いてあるソースを作ったはずなんですが。。。

>>55
スタンダードがどうか見るのを忘れました。もう少ししたら買おうかな……。
0061デフォルトの名無しさんNGNG
VC++.NET standard でインラインアセンブルはできますか?
0062デフォルトの名無しさんNGNG
>>60
プログラム終了時にブレークかましとけ。
0063デフォルトの名無しさんNGNG
>>60
表示した後に getch() や scanf() で何か入力を求めると一時的に止まるよ。
006440NGNG
>>62-63
う……すいません、どちらも理解不能です。
一瞬しか現れないので入力する間がありません……普通こういうものなんでしょうか?
0065デフォルトの名無しさんNGNG
>>64
DOSプロンプトを開いて、そこから実行すればいい。

0066デフォルトの名無しさんNGNG
コーディング論争は宗教論争になるからね

スレは盛りあがるけど荒れる可能性もある両刃の剣
素人には(ry
0067デフォルトの名無しさんNGNG
>>64
VCからは設定できない。
ココを参考にDOSプロンプトから生成されたexeを直接実行。
ttp://www.denen.org/prog/dos.html
0068デフォルトの名無しさんNGNG
DOSプロンプトってみんな未だに16ビットアプリを作ってるのか?
0069デフォルトの名無しさんNGNG
ココは初心者スレだぞ。
C/C++の練習で使っていても何も問題あるまい。
007040NGNG
デ…デキタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!

出来ました! きっちりと「面積は12.566360です」と出た! 
おお〜感動〜。一体これに何の意味があるのかわからないけどw
ありがとうございました!
0071デフォルトの名無しさんNGNG
>>68
DOSプロンプトなら32ビットアプリだろ
0072デフォルトの名無しさんNGNG
>>69
VC++であって某ランドではない罠
0073デフォルトの名無しさんNGNG
>>71
それコマンドプロンプト
0074デフォルトの名無しさんNGNG
>>70
半径2の円の面積と見た
0075デフォルトの名無しさんNGNG
>>73
それNT系
0076デフォルトの名無しさんNGNG
私もCの勉強を始めたばかりで>>40さんと同じ参考書を使用してます。
その中の「Visual C++を利用してCコンパイラを使う方法」を試しているのですが
プロンプトで「edit smp.1(ファイル名)」を入力すればWindows付属のEDITエディタが起動するはずが
同じ通りにやってるのに認識してくれません。
一体何故なのでしょうか?
ちなみにOSはXPでVisual C++.NETを使用してます。
0077デフォルトの名無しさんNGNG
そもそもXPにedit.exeなんかあるのか?
0078デフォルトの名無しさんNGNG
>>77
検索したら「EDIT.EXE」ありますた。
0079デフォルトの名無しさんNGNG
>>78
気をつけろ!そいつはバ(以下略
0080デフォルトの名無しさんNGNG
>>79
バンカーバスター?
0081デフォルトの名無しさんNGNG
>>76
メモ帖でやれば?
editの代わりにnotepadで。
0082デフォルトの名無しさんNGNG
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < ServicePack6まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       | たけのこの里 |/
0083デフォルトの名無しさんNGNG
>>82
禿しく同意!
0084名前は開発中のものですNGNG
Cの基本はわかるんで、そろそろC++やってみようと思うんですけど
早いですか?それと習得(あいまいな言い方ですみません)には、どのくらい
時間かかりますか?
0085デフォルトの名無しさんNGNG
ももくり3年かき8年
0086あほNGNG
http://www.asahi-net.or.jp/~yf8k-kbys/
↑ここで勉強すべし。
0087デフォルトの名無しさんNGNG
>>84
決まりなんて無いんだからやる気があるなら今すぐやれ。
0088デフォルトの名無しさんNGNG
>>84
84さん次第。構造体,malloc,freeを使いこなせるのであれば
同様にclass,new,deleteを使いこなせるように進めれば。
もちろんそれだけではないけど。
0089デフォルトの名無しさんNGNG
ネットワークプログラムを組もうと思い
参考になりそうなサイトを色々と探しましたが

もし皆さんが参考になったサイトがあったら
教えてください。
0090名前は開発中のものですNGNG
みなさんお返事ありがとうございます。86さんのリンクページ読んだら、Cに慣れすぎて
しまうと、オブジェクト指向で挫折する人が多いと書いてあったの
ので、Cに慣れすぎてしまう前に移行しようと思います
0091デフォルトの名無しさんNGNG
★みんなの情報局★みんなのリンク集★ココ最高★
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
009289NGNG
やはりインターネット上のデータより
書籍のほうが勝ってるのでしょうか?
0093デフォルトの名無しさんNGNG
どっちもどっち
両方活用すれ
0094デフォルトの名無しさんNGNG
>>89
ネットワークプログラミング相談室 Port5
http://pc2.2ch.net/test/read.cgi/tech/1040220302/l50
0095VC初日NGNG
今日から仕事の都合でVCを使い始めた初心者です。
質問がありカキコしました。
他のエディタでEUCの文字コードで作成したソースファイルを、
VCで開くと文字化けしてしまうのですが、どうすれば改善するのでしょうか?
どこかに開くファイルは必ずEUCの文字形式で開くような設定はあるのでしょうか?
どなたかご存じでした教えて下さい。
よろしくお願い致します。
0096デフォルトの名無しさんNGNG
外部ツールで変換すれば?
http://computers.yahoo.co.jp/download/vector/win/util/text/conv/code/
009795NGNG
>>96
やっぱりシフトJIS等に一度変換しないとダメなのでしょうか?
納品でEUC形式で行うように統一しているので、
VC上でソースを編集する時もEUC形式で表示されたものを編集したいです。
どうしても無理であれば仕方ない事なのですがね。
0098デフォルトの名無しさんNGNG
>>97
ムリ
009995と97NGNG
了解しました。
仕方が無いので、EUC形式が正しく表示出来る違うエディタで編集して、
編集が終わったらVCでコンパイルする事にします。
質問に答えて頂きありがとうございました。
010089NGNG
>>94
おぉ。いいスレですね。
ありがとうございます。
0101デフォルトの名無しさんNGNG
vc++.net でcursesライブラリを使うにはどうするんでしょうか?
0102デフォルトの名無しさんNGNG
なんだかCの参考書って難しくてさっぱりです。
この意味わかる方教えてください

某参考書の一節

#ifがよく使われるのは、ヘッダファイルの二重include防止です。

#if ANYHEADER_H
#define ANYHEADER_H
・
  ・
  ・
#endif
0103デフォルトの名無しさんNGNG
何が分からないのか分からん
0104デフォルトの名無しさんNGNG
と思ったがそれじゃまともに動かないじゃん
0105デフォルトの名無しさんNGNG
>>102
気持ちはわかる。以上
0106デフォルトの名無しさん NGNG
構文の例みたいなもんなんですが、二重includeって
なんですか?
0107デフォルトの名無しさんNGNG
二重includeとはなんですか?
0108デフォルトの名無しさんNGNG
#if ANYHEADER_H じゃなくて
#ifndef ANYHEADER_H じゃね。
0109デフォルトの名無しさんNGNG
二重にincludeすることです
0110デフォルトの名無しさんNGNG
>108
そうでした。108さんの言うとおり。
すみません、そちらの方でお願いします
0111デフォルトの名無しさんNGNG
現代人は #pragma once を使います。
0112デフォルトの名無しさんNGNG
>>111
両方使うのが普通です
0113デフォルトの名無しさんNGNG
どこで二重にincludeしてるかよくわかんないんです。
低レベルな話だと思いますがよろしくお願いします
0114デフォルトの名無しさんNGNG
>>113
気持ちはすごくわかる。以上
0115デフォルトの名無しさんNGNG
vc++.net でcursesライブラリを使うにはどうするんでしょうか?
0116デフォルトの名無しさんNGNG
>>113 ここを見ればわかるかも
ttp://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html
0117デフォルトの名無しさんNGNG
釣られてあげよう。でも、この後のレスはないので念のため。

ひとつのファイルをコンパイルするのに
同じファイルを何回もインクルードするのは無駄。
だから、コンパイラが読み込みを省略してくれることもあるし、
万が一、2度読み込まれても構文解析が読み飛ばしてくれるように、
#ifndef ANYHEADER_H
#define ANYHEADER_H
・
・
・
#endif
と書いておく。
stdio.hみたいなファイルは、
ありとあらゆるヘッダーにかかれているから、
コンパイル時間の節約になるし、
同じ宣言が重複するエラーも出ない。

さらばじゃ。
0118デフォルトの名無しさんNGNG
http://www.agemasukudasai.com/bloom/
0119デフォルトの名無しさんNGNG
>どこで二重にincludeしてるかよくわかんないんです。

いいところに気がついたじゃないか。
プログラマのほとんどは、どこで二重にincludeしてしまうのか
わかってないんだよ。だけど、その呪文を書いておけば、
どこで二重にincludeしてしまっても気にする必要がないんだよ。
どーだ楽ちんだろ。
0120デフォルトの名無しさんNGNG
#ifndef ANYHEADER_H
#define ANYHEADER_H
#pragma once
・
・
・
#endif

まぁあれだ
『おまじない』だと思ってこれは必ず入れて置けと
0121デフォルトの名無しさんNGNG
つーか>>102は釣りだろ!
0122デフォルトの名無しさんNGNG
>>101
エスケープシーケンスでがんばったら。
0123デフォルトの名無しさんNGNG
>>122
VC++.NETが使えるのは2000/XP→2000/XPではエスケープシーケンス無理
 →がんばれない。
0124デフォルトの名無しさんNGNG

VC++.NET 使ってる人にお尋ねしますが、これにも
MSDN Library が付属してると思うんですが、これの
Platform SDKの解説は相変わらず大部分英語ですか?
それとも完全に日本語訳になったでしょうか?

VC++6.0使ってるんですが、翻訳がホントに一部だけで
WNDCLASS構造体の解説ですら英語という状況なので
完全に訳されているなら.NETに移行しようかと思ってる
んですが。

0125デフォルトの名無しさんNGNG
COleVariant オブジェクトにCHAR型の文字ををセットするのには
どうすればよいのでしょうか?
0126bloomNGNG
http://www.agemasukudasai.com/bloom/
0127デフォルトの名無しさんNGNG
>>125
char c;

COleVariant v(CString(c));
0128デフォルトの名無しさんNGNG
>>124
英語を学んだほうが現実的だと思うけど。
ネット版なら翻訳されてるかな?
ttp://www.microsoft.com/japan/msdn/library/
0129デフォルトの名無しさんNGNG
ヘルプの英文に英語の知識はほとんどいらない
0130デフォルトの名無しさんNGNG
#include <stdio.h>
int 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デフォルトの名無しさんNGNG
scanfでデータを取りこぼしているから
0132デフォルトの名無しさんNGNG
<<127
ありがとうございます。
0133デフォルトの名無しさんNGNG
VC++.NETを使ってますが、先日までは自分が記述したプログラムだけ
ステップインしてデバッグ出来ていたのですが、先ほどやってみると
strcpy,strncpy,starcat,CString等他の関数の中身(アセンブリ?)
までステップインしてしまってます。
きっとどこかの設定を触ってしまいこうなったのだと思いオプション
設定を見直したのですが、わかりませんでした。
教えてください。
0134デフォルトの名無しさんNGNG
>>133
ステップアウト (関数から抜け出る)
ステップオーバー (次の関数へ)
のボタンないですか?
0135デフォルトの名無しさんNGNG
<<134
ありがとうございました!
ステップアウトでできました。以前はF8ステップインだけを押して
いてそんな事してなかったと思ったのですが。。
これでデバッグがまたはかどります。
ステップインって必要ないじゃん!
0136デフォルトの名無しさんNGNG
>>135
んなこたーない。
自分の書いた関数の呼び出しもトレースしなくなるぞ。
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。」
とでてしまいます。

どうすれば書き込むことができるのでしょうか?
0138137NGNG
VC++6.0
を使ってます
0139デフォルトの名無しさんNGNG
>>137
>PDWORD bite=0;
これはないでしょう。
0140137NGNG
「第四引数は実際に書き込まれたBITE数が代入されるだけ」
と書いてあったので適当に初期化してみたのですが
まずかったでしょうか。

どう直せばよいのでしょう。




0141デフォルトの名無しさんNGNG
つまりアドレス0に代入されていることになるが・・・
0142デフォルトの名無しさんNGNG
Σ(゚Д゚
PDWORDなんてものがあるなんて知らなかった…。
0143137NGNG
mallocなどでメモリ領域を確保してそのアドレスを入れればよいのでしょうか?
0144デフォルトの名無しさんNGNG
あるある、俺も以前間違えた。
MSDNにも素直にFoo(HOGE* hoge);って書いてくれればいいのに
Foo(LPHOGE hoge);って出てたりするし。
0145デフォルトの名無しさんNGNG
>>143
答えから言えば
DWORD dwBit;
としといて関数に&dwBitを渡す。
たぶんMSDNにも「第四引数は〜へのポインタ」みたいなこと書いてあると思う。
0146137NGNG
ありがとうございます。
やってみます。
0147137NGNG
できました。
Pはポインタを示す冠詞のようなものなのですね。
初めてしりました。
0148デフォルトの名無しさんNGNG
LPとP両方定義されている物、
片方しか定義されていない物、
まったく存在しない物、
16bit時代の名残を引きずっているとはいえ、
M$の定義はいい加減すぎる
0149デフォルトの名無しさんNGNG
>>148
その癖型チェックはしっかりするし(w
0150デフォルトの名無しさんNGNG
すいません。
Directxを使ってクライアント領域に描写しているのですが
ダイアログのようなエディットボックスで
文字入力したいのです。

どのようにすればよいでしょうか。
0151デフォルトの名無しさんNGNG
VCでC++じゃなくてCをコンパイルするのて、
簡単に出来るんですか?
0152デフォルトの名無しさんNGNG
>>151
ソースの拡張子を .c にする。
0153デフォルトの名無しさんNGNG
ありがとうございます。
助かりました。
■ このスレッドは過去ログ倉庫に格納されています