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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

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

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

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

151 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 12:57:54 ]
download.microsoft.comに繋がらないようです。
自分だけ?

152 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:08:15 ]
と今日の日記に書いておこう

153 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:56:07 ]
コメントを関数の前に書くと
その前の関数のグループになってしまいます
コメントがグループの初めになるように任意に修正する方法はないでしょうか
ご存知の方お願いします

154 名前:デフォルトの名無しさん [2009/03/24(火) 21:57:11 ]
Microsoft PressのVisual C++.NET実践講座 Vol.1基礎編の本には、
Console::WriteLine(S"Hello World");
のようにダブルクォートで囲った文字列の前にSが付いていて、それについて
何の説明も書いてないけど、このSって何。

155 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 22:04:42 ]
わかったSystem::String*だ

156 名前:デフォルトの名無しさん [2009/03/25(水) 02:18:26 ]
visual cで作られたアプリケーションがあるのですが、
これを改造して自分のほしい機能を付け加えています。

自分で追加した変数やマクロなどとそうではない箇所とで、識別子(関数名、変数名、マクロ名)を明確に分けたいのですが、
新たに追加した部分にルールをつけるだけでなく、
改造元の識別子のすべてに対して、「kaizoumoto_」「KAIZOUMOTO_」のような接頭語をつけたいと考えました。
そのようなことを一括で行うことは可能でしょうか。
改造元から現在の状態までの間の追加は失われてかまいません。(改造元があって、それの識別子を一括で変更したいです。)

というか、Visual Cと全然関係ないですか。すみません。
ご存知でしたら、Helpをお願いします。

157 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 10:34:11 ]
VC++のエディタウィンドウの行間をひらげることってできますか?
フォントやエディタの設定項目を調べて見ましたが、うまくできませんので、お願いします。

158 名前:デフォルトの名無しさん [2009/03/26(木) 12:45:11 ]
>>156
正規表現

159 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 12:46:58 ]
>>157
ひらげるってw



160 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 06:41:15 ]
2008 Express Edition使ってて外部エディタで編集してるから
これのエディタは見るだけにしたいんだけど
編集禁止状態に出来ない?

161 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:02:01 ]
>>160
閉じられるって。

162 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:14:25 ]
俺が思うに閉じたら見られないのではなかろうか

163 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 05:06:11 ]
VS2005, XPでWin32プロジェクトを作成中です。
CreateWindowでウィンドウをつくり、さらにCreateWindowでボタンを追加しました。

マウスによる指定とカーソルキーによって、
メインウィンドウのある領域でカーソルが移動するようになっています。
(WM_LBUTTONDOWN, WM_KEYDOWN)

しかし領域外につくったボタンを押すと、
マウスによるカーソルの移動は受け付けるものの、カーソルキーを押しても反応がありません。
一度ウィンドウを非アクティブにし、再びアクティブに戻すと動作は正常に戻ります。
ボタンはWM_COMMANDで処理を行わずとも、押した時点で動作がおかしくなってしまうようです。

ご教示お願い致します。

164 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:44:29 ]
カメラ目線

165 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 15:38:35 ]
一応、ソースプログラム出さない?

166 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:19:50 ]
ソースもなにもカーソル戻すだけだろ

167 名前:163 mailto:sage [2009/03/28(土) 17:57:29 ]
全体を添付した方が望ましいのでしょうか 宜しくお願い致します

case WM_COMMAND:
switch (LOWORD(wParam)){
case Button25: break;
default: return DefWindowProc(hWnd, message, wParam, lParam);
}break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
Rectangle(hdc,xwidth*(xx+1),ywidth*(yy+1),xwidth*(xx+2),ywidth*(yy+2));
EndPaint(hWnd, &ps);
break;
case WM_LBUTTONDOWN:
x = LOWORD(lParam); y = HIWORD(lParam);
if(x>xwidth && x<xwidth*(member+1) && y>ywidth && y<ywidth*(member+1)){
xx = x/xwidth-1; yy = y/ywidth-1;
InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd);
}break;
case WM_KEYDOWN:
switch(wParam){
case VK_RIGHT: if(xx<member-1) xx++; break;
case VK_LEFT: if(xx>0) xx--; break;
case VK_DOWN: if(yy<member-1) yy++; break;
case VK_UP: if(yy>0) yy--; break;
}
InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd);
break;

168 名前:165 mailto:sage [2009/03/28(土) 20:13:06 ]
case Button25: を押したら、break; の前にコントロールを戻すために何かするんじゃないか。
何の関数呼べばいいのかわからないけど、ここまでだ。

169 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 20:49:47 ]
ソース見る必要あったのか?



170 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 20:59:43 ]
>>163です

SetFocus( hWnd ); でした!
解決致しました。ありがとうございます!

171 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:15:48 ]
1. マネージC++のインターフェイスは、純粋仮想関数だけを持つ抽象クラスみたいなものか。
2. マネージC++のシールクラスは、自分の作った知的財産であるクラスを「お前らなんかに
  継承してパクらせてやるわけにはいかん」ためにあるのか。
3. マネージC++の例外の__finnallyブロックは、例外の有無に関係なく実行するということ
  だが、そんなのなくても、いずれの場合もcatchブロックの次を普通に実行するみたいで、
  どのように違いがあるのかよくわからん。
4. 派生クラスで基底クラスのメンバー関数をオーバーライドできるのは、別に仮想関数でな
  くても可なのか。
5. 4が正しいと仮定して言う。派生クラスのアドレスを、基底クラスのポインターに代入して、
  そのポインターを使って、派生クラスでオーバーライドされたメンバー関数を呼び出した
  ときの扱いはどうなのか。非仮想関数なら、基底クラスのメンバー関数を呼び出して、仮想
  関数なら、派生クラスのメンバー関数を呼び出すのではないかと思うが、それで正しいか。


172 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:33:33 ]
誤爆です

173 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:48:12 ]
違う誤爆ではない。
邪魔しないでくれ。

174 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:53:52 ]
あっ、確か__finayllyはreturnされると呼び出し元に戻る前に、そのブロックが
実行するってことか。何かに書いてあったような記憶が。

175 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:57:23 ]
あっ、良く確かめずに書いてすみません
ちゃんと調べてから書き直します

176 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:00:47 ]
>>172 >>175
おい、偽者が何やってるんだ。

177 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:05:07 ]
C++/CLIスレのがよさげ
あと、試してみたほうが早い気が

178 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:05:13 ]
以上すべて自演でした

179 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:07:30 ]
どうも失礼しました
これからは自分で試してから書くことにします



180 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 14:09:30 ]
>>178 >>179
こら、いい加減にしろ

181 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 14:54:21 ]
どなたか>>157について、よろしくお願いしますm(_ _)m

182 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:03:19 ]
無理じゃない?
行間の空くフォント探してくるとか

183 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:19:04 ]
できないことはないな
ただ全然興味ないから完全スルー

184 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:01:59 ]
VC++ 2008 EE
0からのゲームプログラミングというサイトでスケルトンプログラムを
ダウンロードしビルドしたのですが、
1>c:\users\○○○\documents\visual studio 2008\projects\samplestg\source\application.cpp(537) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
というエラーが出てしまい実行できません。

Winプロジェクトで空のプロジェクト選択をし、プロジェクトのプロパティで
プリコンパイル済みヘッダーを使用するに設定してもできませんでした。
よろしくお願いします。


185 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:09:29 ]
スケルトンだったら自分で作ったスケルトンとくらべてみればわかるだろ

186 名前:184 mailto:sage [2009/03/31(火) 22:29:16 ]
私自身はスケルトンプログラムは作っていません。
0からのゲームプログラミングというサイトで、
サイト管理人が作ったスケルトンプログラムをダウンロードし、
ビルドしてくださいとあったので流れに従って進めたところ、
エラーが表示され先へ進めなくなったしまったんです。


187 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:38:30 ]
そこのサイト管理人にビルドできないと言ってやればいいだけ

188 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:39:13 ]
stdafx.cpp→プリコンパイル済みヘッダーを作成する

189 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:29:27 ]
2004年ごろから放棄されてるサイトのようだから
今大幅修正しないと使いものにならなくて投げ出したんだろ



190 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 09:58:12 ]
「プリコンパイルヘッダーを使用しない」にしてみるという知恵は回らんのかw

191 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 11:26:05 ]
一行追加すればいいじゃん

192 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:30:28 ]
>>172 >>175 >>178 >>179 は、派遣を解雇されたからって、最低な書き込みするな。
書いた本人のふりして妨害するな。

193 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:05:59 ]
>>192
そんな怒ってんなよ
たかが2chにマジになるな。
だいたい派遣を解雇されたヤツは今頃2chなんてやってらんねぇんじゃねぇのかな?

194 名前:デフォルトの名無しさん [2009/04/01(水) 21:49:18 ]
10年ほど前に買った新Visual C++6.0 シニア編ですが
その中のchapter 26コントロールをコードで配置するで

CButton* myBTN = new CButton();
myBTN->Create("実行", BS_PUSHBUTTON | WS_VISIBLE , CRect(10, 10, 100. 40), this, IDC_BUTTON1);

などとありますがnewを使っているのにDestroyWindowを使っている形跡がありません。
CFramewndなどでは勝手にdelete this などとしているようですがCButtonとかは何もする必要はないのでしょうか。
このサンプルプログラムではCDialogを継承したものです。
リソースエディタ以外で手動で作ったコントロールも自分で削除しなくてもいいのでしょか?



195 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:19:00 ]
new したものは delete しなきゃダメ

196 名前:デフォルトの名無しさん [2009/04/01(水) 22:32:38 ]
>195
CButtonはCWndの継承ですがディストラクタで勝手に
NCDestroyで勝手にやってはくれないのでしょうか?
私自身もあんまりよく分かっていないのですが。


197 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:36:18 ]
CButtonのデストラクタにブレイクポイント置いて、デバッグ開始したらわかるんじゃね?

198 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:41:05 ]
>>196
CWnd のソース読めばわかることだろ。MFC のソースは HDD の肥やしじゃないぞ。

199 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:46:11 ]
>>197
んなことしなくても、デバッグモードで実行したら、終了時にメモリーリークがあれば表示される。

ちなみに、CWnd::PostNcDestroy() のソースはこうなっている。

void CWnd::PostNcDestroy()
{
// default to nothing
}



200 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:55:01 ]
>newを使っているのにDestroyWindowを使っている形跡がありません
そもそもこのふたつには関連性がないだろうに

201 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:21:50 ]
DestroyWindow
指定されたウィンドウが親ウィンドウやオーナーウィンドウのときは、
その子ウィンドウやオーナー付きウィンドウも自動的に破棄します。
このとき、先に子ウィンドウやオーナー付きウィンドウを破棄してから、
親ウィンドウやオーナーウィンドウを破棄します。

なのでDestroyWindowは不要
ただしクラストやメモリ管理とは別問題

202 名前:デフォルトの名無しさん [2009/04/02(木) 00:12:30 ]
>ただしクラストやメモリ管理とは別問題

確かに別問題ですね。
新Visual C++6.0 シニア編にdelete処理が
載っていないのでおかしいと思ってたのですが
それとWindowの破棄とは直接関係ないですね。

どこかでdelete処理されているのではないかと思って
相談したのですが自分でやらないとダメですね。


203 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:48:24 ]
そろそろ、新Visual C++6.0 シニア編を燃やして
本格的にWindowsプログラミングを学んではいかがでしょうか。

204 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 03:24:54 ]
C++でDTM支援ソフトを作ったことがある人はいませんか?

Dominoみたいなのが作れるようになるまでになりたい…。
出来る限りフリーで…。

205 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 10:08:38 ]
16bitのころシーケンサ書いたけどな、、、最近はそっち方面やってないな
って聞いてどうすんだw

206 名前:デフォルトの名無しさん [2009/04/02(木) 13:04:20 ]
ぶっちゃけCでも何でも余程技術がない限りライブラリを使うことになりますよね
だったら最初からスクリプト言語でいいじゃんって思ったんですが
間違ってます?

207 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 13:27:08 ]
それでいいと思うならそれでいいだろ。
人に聞くことでもないな。

208 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:35:31 ]
>>206
現実スクリプト言語が流行ってない事を考えれば自ずと答えは導き出せるのでは

209 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:08:24 ]
スクリプトキディってことじゃね?



210 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:20:29 ]
でもスクリプト言語ってはっきり言っているような。
>>206
がスクリプト言語という言葉を理解しているという仮定の下で話すと、
>ライブラリを使うことになり
  ↓
>スクリプト言語でいいじゃん
ここの論理的な演繹がおかしいと感じるのは俺だけではないはずだ。

211 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:52:45 ]
Console::WriteLine(S"柔道や剣道や空手ではなく、ボクシングをしないとコンパイルできないのか。");
Console::WriteLine(S"スーパーヘビー級: {0}kg以上", __box(91));
Console::WriteLine(S"ヘビー級: {0}-{1}kg", __box(81), __box(91));
Console::WriteLine(S"ライトヘビー級: {0}-{1}kg", __box(75), __box(81));


212 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:03:53 ]
そう言えば、このスレにConsole::WriteLineのソースが無いじゃないか。
何でだ、だれもプログラムしないのか。

213 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:22:59 ]
Console使う人は珍しいと思う

214 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:49:55 ]
オメガチャートをリアルタイムもしくは20分遅れでデータ取得したいのですが、
さっぱりどうしたらいいのかわかりません
カバでもわかるように教えていただけませんか

215 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:11:09 ]
>>214
おまいには無理
誰か親切な人がコンパイル済みのをうpしてくれるのを待て

216 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:27:46 ]
そんな奇特なお方おらんやろ〜

217 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:31:05 ]
いやわからんぞ
2ちゃんで一番親切なイケメンがいる板だからな

218 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:50:22 ]
俺の出番が来ましたね。しばらくお待ちを。

219 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:57:46 ]
この板にイケメンなんかいたのか



220 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:24:28 ]
イケてるとはかぎらないじゃない

221 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 17:05:17 ]
>>218
ありがとうございます親切な方
気長に待ってますのでお願いします


222 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 22:02:58 ]
.NET Frameworkのサンプルコードは、VB.NETとC#でコード書かれてて、C++が無い。
C#のコードの、ドット演算子をスコープ解決演算子に置き換えたらC++になるのかどうか。
ほかにどう変換すべきか。


223 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:19:38 ]
場合による

224 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:21:37 ]
クラス・構造体にref/valueを付ける。
組込型の変化、long→long longやchar→wchar_t、byte→unsigned charなど。
参照型にハンドルを付ける。ただしusingを自動変数にする。場合によってはできないので、auto_handleを使用する。
unsafeの消失。hoge*はpin_ptr<hoge>に対応するが、interior_ptr<hoge>やhoge*にできる場合もある。

……いろいろあって挙げていったらきりがない。

225 名前:214 mailto:sage [2009/04/04(土) 10:50:52 ]
何とか自分でできました
ありがとうございました

226 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:50:07 ]
今日はこの本で1冊の学習を終えた。
www.amazon.co.jp/gp/product/images/4891002832/ref=dp_image_0?ie=UTF8&n=465392&s=books

C++を使えたら、一番ワイドになれるんだろう。
C++標準ライブラリも.Net framewordもMFCもATLも何でも使えるものは使ってワイドになりたい。

227 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:03:49 ]
typedef structで構造体を定義してるんですが、
新しく変数を追加しようとしても追加されなくて困っています。

同じ構造体の他の変数はマウスカーソル合わせるとunnamed〜と表示されるのですが
新しく追加した変数はintと表示されています。

どなたか原因を教えてくれないでしょうか?

228 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:37:26 ]
「追加されない」って、IntelliSence に追加されないってだけの話じゃないのか?


229 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:04:04 ]
>>228
説明不足でした。すみません。
実際はエラーは出てないんですが、
候補一覧に出てこないので、不安になって質問しました。

時間置いたら今は出るようになっていました。
この候補一覧に出るようにするにはビルドする以外にも何かする必要があるのでしょうか?



230 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:23:50 ]
>時間置いたら今は出るようになっていました。
通常は、これがすべて。詳細はヘルプの「IntelliSense の使用方法 」を参照すべし。

231 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 14:07:52 ]
>>230
ありがとうございました。
IntelliSenceの使い方をやっと理解できました

232 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:52:51 ]
ははは

233 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:06:31 ]
エクセルのデータで、1の列が文字列、2〜をint型で読み込んで構造体に入れたいんですが、どうしたらいいでしょうか?

234 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 16:50:08 ]
CSVファイルに、カンマ区切りかタブ区切り形式で先ずテキスト化する。

235 名前:233 mailto:sage [2009/04/06(月) 19:25:21 ]
エクセルのマクロ使ってという事ですよね。
ありがとうございます。やってみますm(__)m

236 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:27:40 ]
すでにエクセルのデータではなくなっている。^-^;

237 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:44:08 ]
そっち方面ならC++/CLIで.NETのが楽かも
でもそれならC#にしちゃうか

238 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 03:07:46 ]
体験版のVC++Proを入れた後に
VC++Expressを入れてもMFCは使えるようになりませんか?

239 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:32:49 ]
ヘッダやライブラリが揃っていればコンパイルはいけるんじゃね



240 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:27:47 ]
>>238
ぐぐってみろ。使えるから。

241 名前:デフォルトの名無しさん [2009/04/08(水) 12:51:11 ]
>>238
使えるようになるけど、Express上でMFC使ったアプリを
作っても配布してはならない。ライセンスでそうなってる。
MFCは無料じゃなくて有料です。勉強なら許すって感じかな。

242 名前:デフォルトの名無しさん [2009/04/08(水) 15:03:31 ]
スタートページのニュースヘッダーみたいなのって出なくできますか?
あれで引っかかるような挙動したりして気持ちが悪い

243 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:09:39 ]
オプションで設定できるのに、何でそれくらい自分でできないの?

244 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:13:46 ]
FAQだな。
ちょっと探せばわかるけど、EEの場合オプションの全表示のチェック入れてなくて
無いと思い込んでる場合も

245 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:33:12 ]
VS2005、MFCで以下の様なプログラムを作っています。
しかし、for文の中の代入がうまく行かず困っています。
例えば、SysTim.wYearには2009が入っているのに、
MyDataのYearには0が入っているという感じです。
何が原因なのでしょうか?
SYSTEMTIMEのメンバがWORDな所為かとも思いましたが、
結局解決策を見つけられずにいます。

struct MY_DATA {
unsigned char Year;
unsigend char Month;
unsigend char Day;
unsigend char Hour;
unsigend char Minute;
unsigend char Second;
unsigend char Data[8];
};
MY_DATA MyData[10];

SYSTEMTIME SysTim;
GetLocalTime(&SysTim);

int i;

for (i = 0; i < 10; i++) {
MyData[i].Year = SysTim.wYear;



}

246 名前:デフォルトの名無しさん [2009/04/09(木) 00:49:51 ]
charに入らないから。
wYear
The year. The valid values for this member are 1601 through 30827.

247 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:09:26 ]
>>246
返事ありがとうございます。

1Byteのサイズに2Byte分入れようとしてるから、という事でしょうか?
以下の例で、ちゃんと値が代入できていたので、可能という認識なのですが。
(キャストしなきゃWarningが出るのはおいといて)
あと、私の書き方が悪かったですね・・・Yearだけでなく
年月日時分秒全てがうまく行きませんでした。

char Data1 = 0;
short Data2 = 10;
Data1 = Data2;

248 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:26:18 ]
>>247
不可能。

BYTE byte;    // typedef unsigned char BYTE;
SYSTEMTIME SysTim;
GetLocalTime(&SysTim);

byte = (BYTE)SysTim.wYear;

で試してごらん。無理だから。

249 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:46:40 ]
1Byte = 8 Bit = 2 ^ 8 = 256 < 2009;



250 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:08:11 ]
>>248,249
お返事ありがとうございます。

すいません、言いたかったのは代入後の値が0なのは何故かということです。
環境によるのだとは思いますが、普通は下位1byteが入っているはずでは?という認識です。
年以外に関しては、255以下ですし。

>>247に挙げた例で、下位1byteを代入できているので
同じような事をしてるのに、何故うまく行かないのかというところです。


とりあえず、明日もう少し考えてみます。

251 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:13:09 ]
>>245 unsigendだから?綴りが違う。
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>

int main(void)
{
  struct MY_DATA {
    unsigned char Year;
    unsigned char Month;
    unsigned char Day;
    unsigned char Hour;
    unsigned char Minute;
    unsigned char Second;
    unsigned char Data[8];
  };
  MY_DATA MyData[10];

  SYSTEMTIME SysTim;
  GetLocalTime(&SysTim);

  for (int i = 0; i < 10; i++) {
    MyData[i].Year = SysTim.wYear;
    MyData[i].Month = SysTim.wMonth;
    MyData[i].Day = SysTim.wDay;
    MyData[i].Hour = SysTim.wHour;
    MyData[i].Minute = SysTim.wMinute;
    MyData[i].Second = SysTim.wSecond;
  }
}






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

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

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