[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/30 18:10 / Filesize : 165 KB / Number-of Response : 705
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/09/10(月) 12:20:27 ]
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

7 名前:デフォルトの名無しさん [2007/09/10(月) 22:58:00 ]
これまでVCを使ったことはありません。
俺は今後VCを使う日がくるのでしょうか?
(VS2003は持ってる)

本を整理中なんですが、VC、MFC、Win32API、VBあたりの入門的な本を
売っちゃうか悩み中です・・・。

8 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 22:58:57 ]
売れ

9 名前:デフォルトの名無しさん [2007/09/11(火) 08:40:05 ]
std::istream から >> で std::string を読みだす時、
空白でストップしますが、二重引用符で囲んでいる場合は
その間は空白も読み込むようにはできないでしょうか?

ファイル名をストリームで読み込もうとしているのですが、
空白を含むファイル名も扱えるようにしたいのです。

10 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 09:14:32 ]
ダブルクォーテーションで括っている間だけというのは無理だろう。
自前で解析するしかないと思う。

空白も含めて読み込むことは、
std::getline関数か、std::noskipwsマニピュレータと>>を使うかで可能。

11 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 09:28:10 ]
次立てるときはC/C++の質問はそっちのスレへ誘導するようにしてほしいな

12 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 10:10:10 ]
>>7
入門書は売っちゃってもいいけど、中級以上
APIの本とかは残しておくのがいいと思う
自分の場合、今でもPC9801の本とか、ターボアセンブラについていた、オペコード一覧とか
重宝してるよ

13 名前:デフォルトの名無しさん [2007/09/11(火) 13:20:16 ]
関数を使っり途中で、確認のためデバッグしたので問題ないと思ったのですが
デバッグ無しで実行するとエラーが表示されます。
以下にソースとエラーpngが入っています。
どなたか、どこがおかしいか指摘してくれませんでしょうか。
お願いします。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4915.lzh

14 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 13:26:48 ]
次立てるときはC/C++の質問はそっちのスレへ誘導するようにしてほしいな

15 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 15:01:43 ]
ソースは見てないが
マクローリンのスペル違うぞw
でもこっちの方がなんかいいなw



16 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 16:06:18 ]
>>13
どうやってデバックして問題ないと判断したのか、その過程を示せ。
-3から3まで0.1刻みのループでは60回繰り返すけど、それは確認したのか。

17 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 17:24:46 ]
使っり?

18 名前:13 mailto:sage [2007/09/11(火) 18:39:07 ]
いや、宿題スレにあった問題を解こうと思って
解いてる最中に、どう表示されるかを見ようと思い
デバッグ→OK デバッグ無しで実行→BAD
で、デバッグポイントつけてステップインして
デバッグしまくっても、問題なく終了。
で、VS2005のどっかがおかしくなったのかと思い
VSを修復。
そんで再度、デバッグ無しで実行したら
数値は出て、エラーは出ませんでした。
ま、そんなところです。

19 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 18:42:21 ]
縦読みでおk

20 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 18:56:38 ]
>>18
宿題スレの確認ならまあその程度だろうけど、それでは普通デバッグしたことに
ならない。

>>16で答え言ったつもりだったんだけど、60要素分の書き込みに対し、
領域を10要素分しか確保してないからオーバフローして領域破壊しているだけ。
計算の目的知らないけど、単純に考えれば、Ansの第3パラメタが60か、または
Ans関数内のdxの刻みが0.6か、どちらかが違っていると思う。

21 名前:デフォルトの名無しさん [2007/09/11(火) 19:33:01 ]
驚愕の新事実発覚!!!
Windowsで外字「㈰」を含むファイル・フォルダ名が、コピー、削除、リスト表示もできません。
CopyFile()、GetCurrentDirectory()などで取り扱えません!!!
でも、dir コマンドはできます。dir>file とリダイレクトすると、fileの中で
この外字は ? に変換されてしまいます!
誰か回避策教えてちょんまゲ。
文字コードは"\x85\x40" です。よろピク。


22 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 19:41:26 ]
自分の中での驚愕の新事実発覚は心の中で唱えてろ

23 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 19:54:22 ]
たまたま使えてしまう場合もあるけど
使えない字は使ってはいけない

24 名前:デフォルトの名無しさん [2007/09/11(火) 20:02:37 ]
でも、dir とか、ファインダーからは使えちゃうんです。
同じ外字(機種依存文字)でも@などはおk。

25 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 20:03:29 ]
うるさい死ね



26 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 20:36:08 ]
その文字はU+3230だろ。
シフトJISに対応する文字が無いから化けるだけじゃねえの?
Unicode系のAPIを呼ぶように修正しろ。

27 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 20:36:37 ]
>>24
@は外字でもないし、
Unicodeに収録されているので、もはや機種依存文字ですらない。

28 名前:デフォルトの名無しさん [2007/09/11(火) 20:46:09 ]
化けるのは問題ないですが、アクセスできずにエラーになってしまうのが困ります。
このフォルダーがあることさえも検出できません。
このフォルダを dir>file としてfileを見ても アスキーの'?' に置き換えられているので
㈰ があることが検出できないのが問題です。消そうと思ってもアクセスできません。


29 名前:デフォルトの名無しさん [2007/09/11(火) 20:49:18 ]
>>27
bird.zero.ad.jp/~zar26542/keio/let_table/tableaux/char.html

30 名前:デフォルトの名無しさん [2007/09/11(火) 20:53:59 ]
>>26
Unicode系のAPIとは何でしょうか。教えていただければ幸いです。

31 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 21:09:34 ]
>>30
末尾がWで終わるWin32API群。
例えばCreateFileに対してCreateFileWといった具合。
文字や文字列引数がみなWCHAR (wchar_tのtypedef)を使ったものになっている。

32 名前:デフォルトの名無しさん [2007/09/11(火) 21:17:14 ]
>>31
ああ、見たことあります。やってみます。
アリガト

33 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 22:06:43 ]
シネ

34 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 10:45:39 ]


35 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 11:00:29 ]
処女



36 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 19:01:10 ]
喪失

37 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 21:06:58 ]
童貞

38 名前:デフォルトの名無しさん [2007/09/13(木) 21:13:56 ]
Visual C++ 6.0を使いたいのですがOSはXPでも大丈夫なんでしょうか?
Visual Studio とは何でしょうか?
初心者ですいません・・・


39 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 21:27:10 ]
「Visual Studio とは何でしょうか?」というレベルなら、まずはVisualStudio2005EEを使ってみてはどうだろうか。
VisualStudioはVC++やC# VBなどでWindowsを開発できる統合開発環境です。
アナルは開発できません。

40 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:11:33 ]
アナルを開発するゲームなら作れるよ!

仕事で必要というのでなければ、VC6はお勧めしない。
OS対応については下のページを参照。
www.microsoft.com/japan/msdn/vstudio/support/tools.aspx

41 名前:デフォルトの名無しさん [2007/09/13(木) 22:25:14 ]
VC6はお勧め

2005EE入れたけどVC6の方が良い

42 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:28:19 ]
VC6の付属STLはカス
C++98の準拠度もカス
よってC++を使うならVC6は

43 名前:デフォルトの名無しさん [2007/09/13(木) 22:36:43 ]
Windows XP ではどうかしらないけど
Windows 2000 に Visual Studio 6.0 いれて
MediaPlayer 9 いれたら
Visual C++ Run-time Error で
エクスプローラがめちゃめちゃ落ちるようになたな。

あまりおすすめはしない

44 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 07:28:09 ]
>>43
Visual Studio入れたら何かとエラー起こすのは昔からお約束。

45 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 07:29:31 ]
>>43
MediaPlayer 9 いれたら何かとエラー起こすのは昔からお約束。



46 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:34:13 ]
Windows 2000 いれたら何かとエラー起こすのは昔からお約束。

47 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 11:36:26 ]
M$とはエラる事と見つけたり

48 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:57:40 ]
2005EEに実行がないんですけど。2008βでは実行してもテストがどうのっていわれて
コンソールもでないし。ソースはよくあるmainにcoutだけのやつです。


49 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:03:21 ]
>2005EEに実行がない
シュールだ。

50 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:23:08 ]
ソースをプロジェクトに加えてなかった・・。#include <iostream.h>とやるとファイルがないと
言われるし.hを取ると今度はcoutが定義されてない識別子。実行はデバッグなしで開始で
いいんですよね?

51 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:31:08 ]
#include <iostream>
using namespace std;

もっと基礎を勉強しろ

52 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:48:02 ]
分かりました(・◇・)ゞ

53 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 05:34:49 ]
ひさしぶりにVC++6.0で勉強再開したのですがSP6が出ていたので当てましたが
バージョン情報には変化がありません。確認する方法はないのでしょうか。

54 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 06:59:35 ]
GetDlgItemでハンドルの取得に失敗してるようなのですがどんな原因が考えられますか。
コントロールのIDは合ってます。HWNDはダイアログボックスの引数です。



55 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 08:23:20 ]
まだコントロールができてない



56 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 08:27:57 ]
能力不足
コントロールのIDは合ってるつもりなだけ。HWNDにダイアログボックスのハンドルを指定していない。
HWNDがスコープの範囲外である。

57 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:59:33 ]
ハンドルをグローバルにコピーしたものを使うようにしたら解決しました。
。ありがとうございました。


58 名前:デフォルトの名無しさん [2007/09/16(日) 21:01:42 ]
CDC* pdc1 = GetDC();
CPen *oldPen;
oldPen = pdc1->SelectStockObject(BLACK_PEN);

これで
error C2440: '=' : 'CGdiObject *' から 'CPen *' に変換できません。

とerrorが出るのですが、本に書いてあるとおりやってるだけなのですがなぜダメなのでしょうか?

59 名前:58 [2007/09/16(日) 21:10:10 ]
ごめんなさい

CDC* pdc1 = GetDC();
CPen myPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen *oldPen;
oldPen = pdc1->SelectObject(myPen);

です


60 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 21:17:37 ]
>>59
×oldPen = pdc1->SelectObject(myPen);
○oldPen = pdc1->SelectObject(&myPen);


61 名前:58 [2007/09/16(日) 21:36:14 ]
>>60
ありがとうございました

62 名前:デフォルトの名無しさん [2007/09/17(月) 00:12:35 ]
ぜったい本の通りやってないだろバカ

63 名前:58 [2007/09/17(月) 00:29:01 ]
いえ本が間違ってました
工学社 Visual C++ .NET ゲーム制作教科書 片山幸雄著 の39ページ40ページです
もちろん他の部分から類推できるものなのでそれができなかったのは私がバカなのですが


64 名前:デフォルトの名無しさん [2007/09/17(月) 00:53:59 ]
アナログ時計のプログラムってどんな感じなんでしょうか・・・
デジタルなら簡単に出来るんですが。

どなたかご教授お願いしますorz

65 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 01:05:55 ]
>>64
文字盤の上に、時分秒に従い角度を計算して針を書くだけ
注意点としては針を進めるとき、下の針を消してから新しい針を書くのではなく、
ダブルバッファリングという手法を使って画面を更新すること
これだけ注意すれば問題ないはず



66 名前:デフォルトの名無しさん [2007/09/17(月) 01:23:37 ]
>>65
ダブルバッファリングですか。
難しそうですが、頑張ってみます。
ありがとうございました。

67 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 08:20:56 ]
プログラミングWindowsのサンプルは消してから書く方式だったと思う
サンプル動かして見たけど特にそれで問題ない

68 名前:デフォルトの名無しさん [2007/09/18(火) 01:21:43 ]
DLLプログラムで、自分自身が動作しているパスを取得したいのですが、
どうすればいいのか解りません。よろしくお願いします

69 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 01:29:42 ]
GetModuleFileNameに自分のインスタンスハンドル渡す。

70 名前:68 mailto:sage [2007/09/18(火) 02:21:26 ]
>>69
ありがとうございます。
眠い。。

71 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 13:53:38 ]
眠いのですが、どうすればいいのか解りません。よろしくお願いします

72 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 14:00:02 ]
眠りましょう。
眠れなければ医者へかかりましょう。

73 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 14:13:07 ]
いつかは寝なければいけないときが来るのだから寝とけ

74 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 14:22:28 ]
どうせそのうち寝るのなら、今はがんばって起きていたい

75 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:15:10 ]
でも眠いんだろ?



76 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:20:22 ]
俺の経験から言うと
無理して徹夜するよりきっぱり定時に帰って
明日朝からしゃきっとがんばった方が効率が良いと思って
早朝7時くらいに出社して徹夜するはずだった分を補填しようとするけど
結局5分遅刻して(;´Д`)

77 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 17:47:55 ]
あるあるw

78 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 19:56:19 ]
意味わからね。


79 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 20:25:47 ]
正解

80 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 00:20:56 ]
vc6でMFC無しでプログラミングしています。
vector< char >のサイズを動的に確保する配列を使いたくて、

vector <char> *vec;
vec = new vector<char>[ size ];
delete[] vec;

としたのですが、コンパイル時にdeleteのところで、「配列のdeleteは合わないから*(ポインタ)と解釈するよ」
という旨のワーニングが出ます(開発環境が手元にないのでうろ覚えです)
実行するとdeleteの行で落ちます。

配列の形式でnewしたら配列の形式でdeleteすると理解していて、上記のように書いたのですが、
どういう形でdeleteするのが正しいのでしょうか。
よろしくお願いします。

81 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 00:54:33 ]
>>80
何か間違ってないか?

VC6起動して試したけどワーニング出ない
実行エラーにもならない(上記3行だけだけど)

82 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:01:16 ]
vector<vector<char> > でいいじゃん

83 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:40:54 ]
>>82
死ね

84 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 14:50:37 ]
そんなvectorの使い方はじめて見た。というか意味不明。

85 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 14:55:45 ]
>>84
二次元データを扱うために、vector<vector<float> >なんて使い方するのは常套手段だが。
>80の使い方なら確かに気色悪いと思う。



86 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 16:44:18 ]
>>85
いや、当然>80の話よ。vectorの意味を理解してない気がするので。

87 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 18:54:25 ]
vector<char> vec(size);
こうしたいだけだよな>>80

88 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 19:30:46 ]
C++の話はどうでもいい

89 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 21:53:53 ]
list<vector<char>>
vector<list<vector>::iterator>
でいいじゃん

90 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 01:29:23 ]
vector<char>使うならstd::stringを使いたい気分

91 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 01:39:46 ]
boost::ptr_vector<std::string> str_vec(size);

92 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 02:02:10 ]
>>83
死ね って言ってる理由が分からないんだが。
vector<vector<char> > は何か問題あるの?

93 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 02:26:14 ]
>>92
スルー推奨

94 名前:デフォルトの名無しさん [2007/09/21(金) 22:15:06 ]
リソースエディタ経由ではなく直接リソースIDを確保したいときどうしたらいいですか?
Resource.hにじかに編集?

95 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 22:38:38 ]
C++でBot作れますか?



96 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 22:51:02 ]
作れない方がおかしい

97 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:10:50 ]
>>94
resource.h を直接編集してますね
個人的に気をつけてるのは、プロジェクトを閉じてから編集を開始するのと
編集後.apsファイルは削除しておくことくらい

98 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:57:57 ]
VC++6で、キー入力を捕まえたいんですが、
設置してあるボタンを押したあとだとキー入力を受け付けてくれません。
原因は何でしょうか?

99 名前:デフォルトの名無しさん [2007/09/22(土) 00:03:53 ]
Win32API で
CreateWindowW(
とすると引数の情報が出てくるんですけど
CreateWindow(
では情報がでてきません。
これが普通なんでしょうか?
それとも何かファイルが壊れててでなかったりしてるんでしょうか?

100 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:04:59 ]
>>98
もっともっともっともっともっともっともっともっともっともっともっともっともっともっともっと詳しく。

101 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:11:45 ]
>>99
お前バカじゃねぇの
環境書けよ
どうせ2005だろ?仕様だよ

102 名前:デフォルトの名無しさん [2007/09/22(土) 00:19:11 ]
>>100
すみません。
ボタンを押した後、フォーカスがそこにあっていて
キー入力を認識しないみたいなんです。
ボタンが押されたときは

case WM_COMMAND:
 switch(LOWORD(wp)) {
  ・
  ・
  ・
  case ID_CF:
   if(field_flag==FIELD1) field_flag=FIELD2;
   else field_flag=FIELD1;
   InvalidateRect(hWnd, NULL, TRUE);
   break;
 }

のようなかんじで、
キー入力の受け付けは

case WM_KEYDOWN:
 GetKeyboardState(state);
 if(state[VK_UP] & 0x80){
 if(mode_flag==HAITI){
  ・
  ・
  ・
 }

でやっています。

103 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:24:07 ]
わろた

104 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 00:33:34 ]
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・


105 名前:デフォルトの名無しさん [2007/09/22(土) 00:34:16 ]
すみません、超初心者なんで・・・どうしたらよいのでしょうか?



106 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 00:38:05 ]
ワロタら良い

107 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:39:10 ]
原因がわかりました。
どう調べたらいいのか分からなかったので・・・
ありがとうございました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<165KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef