★初心者にVisual C++ ..
13:デフォルトの名無しさん
07/09/11 13:20:16
関数を使っり途中で、確認のためデバッグしたので問題ないと思ったのですが
デバッグ無しで実行するとエラーが表示されます。
以下にソースとエラーpngが入っています。
どなたか、どこがおかしいか指摘してくれませんでしょうか。
お願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
14:デフォルトの名無しさん
07/09/11 13:26:48
次立てるときはC/C++の質問はそっちのスレへ誘導するようにしてほしいな
15:デフォルトの名無しさん
07/09/11 15:01:43
ソースは見てないが
マクローリンのスペル違うぞw
でもこっちの方がなんかいいなw
16:デフォルトの名無しさん
07/09/11 16:06:18
>>13
どうやってデバックして問題ないと判断したのか、その過程を示せ。
-3から3まで0.1刻みのループでは60回繰り返すけど、それは確認したのか。
17:デフォルトの名無しさん
07/09/11 17:24:46
使っり?
18:13
07/09/11 18:39:07
いや、宿題スレにあった問題を解こうと思って
解いてる最中に、どう表示されるかを見ようと思い
デバッグ→OK デバッグ無しで実行→BAD
で、デバッグポイントつけてステップインして
デバッグしまくっても、問題なく終了。
で、VS2005のどっかがおかしくなったのかと思い
VSを修復。
そんで再度、デバッグ無しで実行したら
数値は出て、エラーは出ませんでした。
ま、そんなところです。
19:デフォルトの名無しさん
07/09/11 18:42:21
縦読みでおk
20:デフォルトの名無しさん
07/09/11 18:56:38
>>18
宿題スレの確認ならまあその程度だろうけど、それでは普通デバッグしたことに
ならない。
>>16で答え言ったつもりだったんだけど、60要素分の書き込みに対し、
領域を10要素分しか確保してないからオーバフローして領域破壊しているだけ。
計算の目的知らないけど、単純に考えれば、Ansの第3パラメタが60か、または
Ans関数内のdxの刻みが0.6か、どちらかが違っていると思う。
21:デフォルトの名無しさん
07/09/11 19:33:01
驚愕の新事実発覚!!!
Windowsで外字「㈰」を含むファイル・フォルダ名が、コピー、削除、リスト表示もできません。
CopyFile()、GetCurrentDirectory()などで取り扱えません!!!
でも、dir コマンドはできます。dir>file とリダイレクトすると、fileの中で
この外字は ? に変換されてしまいます!
誰か回避策教えてちょんまゲ。
文字コードは"\x85\x40" です。よろピク。
22:デフォルトの名無しさん
07/09/11 19:41:26
自分の中での驚愕の新事実発覚は心の中で唱えてろ
23:デフォルトの名無しさん
07/09/11 19:54:22
たまたま使えてしまう場合もあるけど
使えない字は使ってはいけない
24:デフォルトの名無しさん
07/09/11 20:02:37
でも、dir とか、ファインダーからは使えちゃうんです。
同じ外字(機種依存文字)でも@などはおk。
25:デフォルトの名無しさん
07/09/11 20:03:29
うるさい死ね
26:デフォルトの名無しさん
07/09/11 20:36:08
その文字はU+3230だろ。
シフトJISに対応する文字が無いから化けるだけじゃねえの?
Unicode系のAPIを呼ぶように修正しろ。
27:デフォルトの名無しさん
07/09/11 20:36:37
>>24
@は外字でもないし、
Unicodeに収録されているので、もはや機種依存文字ですらない。
28:デフォルトの名無しさん
07/09/11 20:46:09
化けるのは問題ないですが、アクセスできずにエラーになってしまうのが困ります。
このフォルダーがあることさえも検出できません。
このフォルダを dir>file としてfileを見ても アスキーの'?' に置き換えられているので
㈰ があることが検出できないのが問題です。消そうと思ってもアクセスできません。
29:デフォルトの名無しさん
07/09/11 20:49:18
>>27
URLリンク(bird.zero.ad.jp)
30:デフォルトの名無しさん
07/09/11 20:53:59
>>26
Unicode系のAPIとは何でしょうか。教えていただければ幸いです。
31:デフォルトの名無しさん
07/09/11 21:09:34
>>30
末尾がWで終わるWin32API群。
例えばCreateFileに対してCreateFileWといった具合。
文字や文字列引数がみなWCHAR (wchar_tのtypedef)を使ったものになっている。
32:デフォルトの名無しさん
07/09/11 21:17:14
>>31
ああ、見たことあります。やってみます。
アリガト
33:デフォルトの名無しさん
07/09/11 22:06:43
シネ
34:デフォルトの名無しさん
07/09/12 10:45:39
マ
35:デフォルトの名無しさん
07/09/12 11:00:29
処女
36:デフォルトの名無しさん
07/09/13 19:01:10
喪失
37:デフォルトの名無しさん
07/09/13 21:06:58
童貞
38:デフォルトの名無しさん
07/09/13 21:13:56
Visual C++ 6.0を使いたいのですがOSはXPでも大丈夫なんでしょうか?
Visual Studio とは何でしょうか?
初心者ですいません・・・
39:デフォルトの名無しさん
07/09/13 21:27:10
「Visual Studio とは何でしょうか?」というレベルなら、まずはVisualStudio2005EEを使ってみてはどうだろうか。
VisualStudioはVC++やC# VBなどでWindowsを開発できる統合開発環境です。
アナルは開発できません。
40:デフォルトの名無しさん
07/09/13 22:11:33
アナルを開発するゲームなら作れるよ!
仕事で必要というのでなければ、VC6はお勧めしない。
OS対応については下のページを参照。
URLリンク(www.microsoft.com)
41:デフォルトの名無しさん
07/09/13 22:25:14
VC6はお勧め
2005EE入れたけどVC6の方が良い
42:デフォルトの名無しさん
07/09/13 22:28:19
VC6の付属STLはカス
C++98の準拠度もカス
よってC++を使うならVC6は
43:デフォルトの名無しさん
07/09/13 22:36:43
Windows XP ではどうかしらないけど
Windows 2000 に Visual Studio 6.0 いれて
MediaPlayer 9 いれたら
Visual C++ Run-time Error で
エクスプローラがめちゃめちゃ落ちるようになたな。
あまりおすすめはしない
44:デフォルトの名無しさん
07/09/14 07:28:09
>>43
Visual Studio入れたら何かとエラー起こすのは昔からお約束。
45:デフォルトの名無しさん
07/09/14 07:29:31
>>43
MediaPlayer 9 いれたら何かとエラー起こすのは昔からお約束。
46:デフォルトの名無しさん
07/09/14 09:34:13
Windows 2000 いれたら何かとエラー起こすのは昔からお約束。
47:デフォルトの名無しさん
07/09/14 11:36:26
M$とはエラる事と見つけたり
48:デフォルトの名無しさん
07/09/15 01:57:40
2005EEに実行がないんですけど。2008βでは実行してもテストがどうのっていわれて
コンソールもでないし。ソースはよくあるmainにcoutだけのやつです。
49:デフォルトの名無しさん
07/09/15 02:03:21
>2005EEに実行がない
シュールだ。
50:デフォルトの名無しさん
07/09/15 02:23:08
ソースをプロジェクトに加えてなかった・・。#include <iostream.h>とやるとファイルがないと
言われるし.hを取ると今度はcoutが定義されてない識別子。実行はデバッグなしで開始で
いいんですよね?
51:デフォルトの名無しさん
07/09/15 02:31:08
#include <iostream>
using namespace std;
もっと基礎を勉強しろ
52:デフォルトの名無しさん
07/09/15 02:48:02
分かりました(・◇・)ゞ
53:デフォルトの名無しさん
07/09/16 05:34:49
ひさしぶりにVC++6.0で勉強再開したのですがSP6が出ていたので当てましたが
バージョン情報には変化がありません。確認する方法はないのでしょうか。
54:デフォルトの名無しさん
07/09/16 06:59:35
GetDlgItemでハンドルの取得に失敗してるようなのですがどんな原因が考えられますか。
コントロールのIDは合ってます。HWNDはダイアログボックスの引数です。
55:デフォルトの名無しさん
07/09/16 08:23:20
まだコントロールができてない
56:デフォルトの名無しさん
07/09/16 08:27:57
能力不足
コントロールのIDは合ってるつもりなだけ。HWNDにダイアログボックスのハンドルを指定していない。
HWNDがスコープの範囲外である。
57:デフォルトの名無しさん
07/09/16 09:59:33
ハンドルをグローバルにコピーしたものを使うようにしたら解決しました。
。ありがとうございました。
58:デフォルトの名無しさん
07/09/16 21:01:42
CDC* pdc1 = GetDC();
CPen *oldPen;
oldPen = pdc1->SelectStockObject(BLACK_PEN);
これで
error C2440: '=' : 'CGdiObject *' から 'CPen *' に変換できません。
とerrorが出るのですが、本に書いてあるとおりやってるだけなのですがなぜダメなのでしょうか?
59:58
07/09/16 21:10:10
ごめんなさい
CDC* pdc1 = GetDC();
CPen myPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen *oldPen;
oldPen = pdc1->SelectObject(myPen);
です
60:デフォルトの名無しさん
07/09/16 21:17:37
>>59
×oldPen = pdc1->SelectObject(myPen);
○oldPen = pdc1->SelectObject(&myPen);
61:58
07/09/16 21:36:14
>>60
ありがとうございました
62:デフォルトの名無しさん
07/09/17 00:12:35
ぜったい本の通りやってないだろバカ
63:58
07/09/17 00:29:01
いえ本が間違ってました
工学社 Visual C++ .NET ゲーム制作教科書 片山幸雄著 の39ページ40ページです
もちろん他の部分から類推できるものなのでそれができなかったのは私がバカなのですが
64:デフォルトの名無しさん
07/09/17 00:53:59
アナログ時計のプログラムってどんな感じなんでしょうか・・・
デジタルなら簡単に出来るんですが。
どなたかご教授お願いしますorz
65:デフォルトの名無しさん
07/09/17 01:05:55
>>64
文字盤の上に、時分秒に従い角度を計算して針を書くだけ
注意点としては針を進めるとき、下の針を消してから新しい針を書くのではなく、
ダブルバッファリングという手法を使って画面を更新すること
これだけ注意すれば問題ないはず
66:デフォルトの名無しさん
07/09/17 01:23:37
>>65
ダブルバッファリングですか。
難しそうですが、頑張ってみます。
ありがとうございました。
67:デフォルトの名無しさん
07/09/17 08:20:56
プログラミングWindowsのサンプルは消してから書く方式だったと思う
サンプル動かして見たけど特にそれで問題ない
68:デフォルトの名無しさん
07/09/18 01:21:43
DLLプログラムで、自分自身が動作しているパスを取得したいのですが、
どうすればいいのか解りません。よろしくお願いします
69:デフォルトの名無しさん
07/09/18 01:29:42
GetModuleFileNameに自分のインスタンスハンドル渡す。
70:68
07/09/18 02:21:26
>>69
ありがとうございます。
眠い。。
71:デフォルトの名無しさん
07/09/19 13:53:38
眠いのですが、どうすればいいのか解りません。よろしくお願いします
72:デフォルトの名無しさん
07/09/19 14:00:02
眠りましょう。
眠れなければ医者へかかりましょう。
73:デフォルトの名無しさん
07/09/19 14:13:07
いつかは寝なければいけないときが来るのだから寝とけ
74:デフォルトの名無しさん
07/09/19 14:22:28
どうせそのうち寝るのなら、今はがんばって起きていたい
75:デフォルトの名無しさん
07/09/19 17:15:10
でも眠いんだろ?
76:デフォルトの名無しさん
07/09/19 17:20:22
俺の経験から言うと
無理して徹夜するよりきっぱり定時に帰って
明日朝からしゃきっとがんばった方が効率が良いと思って
早朝7時くらいに出社して徹夜するはずだった分を補填しようとするけど
結局5分遅刻して(;´Д`)
77:デフォルトの名無しさん
07/09/19 17:47:55
あるあるw
78:デフォルトの名無しさん
07/09/19 19:56:19
意味わからね。
79:デフォルトの名無しさん
07/09/19 20:25:47
正解
80:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/20 00:54:33
>>80
何か間違ってないか?
VC6起動して試したけどワーニング出ない
実行エラーにもならない(上記3行だけだけど)
82:デフォルトの名無しさん
07/09/20 01:01:16
vector<vector<char> > でいいじゃん
83:デフォルトの名無しさん
07/09/20 01:40:54
>>82
死ね
84:デフォルトの名無しさん
07/09/20 14:50:37
そんなvectorの使い方はじめて見た。というか意味不明。
85:デフォルトの名無しさん
07/09/20 14:55:45
>>84
二次元データを扱うために、vector<vector<float> >なんて使い方するのは常套手段だが。
>80の使い方なら確かに気色悪いと思う。
86:デフォルトの名無しさん
07/09/20 16:44:18
>>85
いや、当然>80の話よ。vectorの意味を理解してない気がするので。
87:デフォルトの名無しさん
07/09/20 18:54:25
vector<char> vec(size);
こうしたいだけだよな>>80は
88:デフォルトの名無しさん
07/09/20 19:30:46
C++の話はどうでもいい
89:デフォルトの名無しさん
07/09/20 21:53:53
list<vector<char>>
vector<list<vector>::iterator>
でいいじゃん
90:デフォルトの名無しさん
07/09/21 01:29:23
vector<char>使うならstd::stringを使いたい気分
91:デフォルトの名無しさん
07/09/21 01:39:46
boost::ptr_vector<std::string> str_vec(size);
92:デフォルトの名無しさん
07/09/21 02:02:10
>>83
死ね って言ってる理由が分からないんだが。
vector<vector<char> > は何か問題あるの?
93:デフォルトの名無しさん
07/09/21 02:26:14
>>92
スルー推奨
94:デフォルトの名無しさん
07/09/21 22:15:06
リソースエディタ経由ではなく直接リソースIDを確保したいときどうしたらいいですか?
Resource.hにじかに編集?
95:デフォルトの名無しさん
07/09/21 22:38:38
C++でBot作れますか?
96:デフォルトの名無しさん
07/09/21 22:51:02
作れない方がおかしい
97:デフォルトの名無しさん
07/09/21 23:10:50
>>94
resource.h を直接編集してますね
個人的に気をつけてるのは、プロジェクトを閉じてから編集を開始するのと
編集後.apsファイルは削除しておくことくらい
98:デフォルトの名無しさん
07/09/21 23:57:57
VC++6で、キー入力を捕まえたいんですが、
設置してあるボタンを押したあとだとキー入力を受け付けてくれません。
原因は何でしょうか?
99:デフォルトの名無しさん
07/09/22 00:03:53
Win32API で
CreateWindowW(
とすると引数の情報が出てくるんですけど
CreateWindow(
では情報がでてきません。
これが普通なんでしょうか?
それとも何かファイルが壊れててでなかったりしてるんでしょうか?
100:デフォルトの名無しさん
07/09/22 00:04:59
>>98
もっともっともっともっともっともっともっともっともっともっともっともっともっともっともっと詳しく。
101:デフォルトの名無しさん
07/09/22 00:11:45
>>99
お前バカじゃねぇの
環境書けよ
どうせ2005だろ?仕様だよ
102:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/09/22 00:24:07
わろた
104:デフォルトの名無しさん
07/09/22 00:33:34
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・
105:デフォルトの名無しさん
07/09/22 00:34:16
すみません、超初心者なんで・・・どうしたらよいのでしょうか?
106:デフォルトの名無しさん
07/09/22 00:38:05
ワロタら良い
107:デフォルトの名無しさん
07/09/22 00:39:10
原因がわかりました。
どう調べたらいいのか分からなかったので・・・
ありがとうございました。
108:デフォルトの名無しさん
07/09/22 00:49:50
ソーセージ買いに行ったら自己解決しとった
109:デフォルトの名無しさん
07/09/22 00:57:06
今からオナルんか?
まんこ臭くなるから気を付けろよ
110:デフォルトの名無しさん
07/09/22 01:10:27
エラー デバッグ ブラウザ ツール
URLリンク(www.mozilla-japan.org)
シンプル プログミング ツール
URLリンク(proforceone.web.fc2.com)
素因数分解サンプルプログラム
Calculation processing にコピーして[RUN]
A=2*3*5*11*13*17*19;
x=A;br();write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
for(j=2;(i>=j)&&(1>=k);j++){
if(0==i%j){k++;}
} if(1==k){write(" "+i);}
}}
111:デフォルトの名無しさん
07/09/22 01:51:49
インラインアセンブラじゃなくてインラインフォートランにすればいいのに
112:デフォルトの名無しさん
07/09/22 03:22:01
strtokがエラー出るんだけどなんで?
strtokのソースの中で検索ヒットした文字に\0で置き換えするところでアクセス違反起きてる
ちゃんと文字列の中アクセスしてるはずなのになんで?どうして?
113:デフォルトの名無しさん
07/09/22 03:23:17
お前がバカだから
114:デフォルトの名無しさん
07/09/22 03:32:47
マジで?
115:デフォルトの名無しさん
07/09/22 03:35:13
くまった
116:デフォルトの名無しさん
07/09/22 06:13:46
ローカルの変数にコピったら動いた!!!!1
頭いいかもしんない。ここのみんなじゃ無理だったかも・・・
117:デフォルトの名無しさん
07/09/22 06:15:15
お前の事だからそんなこったろうと思ったよ
頭わるすぎw全米がわろた
118:デフォルトの名無しさん
07/09/22 10:26:33
>>116
無理だったね。
112に書いてあることだけで答えを導き出すには、
おそらく一級のエスパーが必要だったろうから。
119:デフォルトの名無しさん
07/09/22 10:34:37
>>116
正解だったね。
113に書いてあるとおりで答えを導き出せないのは、
おまえが超級のパーである証明だったろうから。
120:デフォルトの名無しさん
07/09/22 10:38:46
VC++5.0(mfc42のヤツ)のインストールについて教えてください。
WindowsXPが出始めた頃にVC++5.0をインストールして普通に使えていたのですが、
XPのSP2を入れたらInfoViewerが表示できなくなってしまいました。
(HTTP 404 - ファイル未検出)とか言うエラーが表示されます
ググッったら、以下のような情報を見つけました。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_MK_PROTOCOL に新規キーで「MSDEV.EXE=dword:00000000」を作成
が、そのときにはVC++5アンインストールと再インストールをしてしまっていました。
(上の情報を早くみつけていれば、レジストリの修正だけですんだのに。。)
インストールしなおしたVC++5.0では、上記のレジストリキーを設定しても
やはりinfoViewの内容を表示させるとエラーになります。
なにか解決方法をご存知の方がいらっしゃったらだったらご教授ください。
よろしくお願いします。
121:デフォルトの名無しさん
07/09/22 10:40:18
新しいのにする
122:デフォルトの名無しさん
07/09/22 11:11:35
CDC *pdc = GetDC();
pdc->Ellipse(x1, y1, x2, y2);
とかのEllipseの引数を自分で作ったクラス(myclass)にしたい場合
CDCクラスにEllipse(&myclass)みたいなのを作る
myclassにEllipse(&CDC)みたいなのを作る
CDCクラスとmyclassを継承したクラス(myCDC)にEllipse()を作る(1行目もmyCDC *pdc = GetDC();)
どれが普通なんでしょう
123:デフォルトの名無しさん
07/09/22 11:33:27
>>97
サンキュー
やっぱそんなかんじか。マイクロソフトはホントダメだな。
124:デフォルトの名無しさん
07/09/22 11:40:55
マイクロソフトがダメなんじゃなくてお前がダメw
125:デフォルトの名無しさん
07/09/22 12:11:02
JavaScriptに近いC++ありませんか?
126:デフォルトの名無しさん
07/09/22 12:16:04
C++0x
127:デフォルトの名無しさん
07/09/22 12:35:50
>>122
フレームワークの中身を書き換えるなんて原則もってのほか。だから1はない。
3番目の案は悪くないが、GetDCがCDCへのポインタ返すのに
myCDCへのポインタとして扱うことは、
(これくらい動くだろうが)規格上、未定義なので気持ち悪い。
仮にGetDCがmyCDCへのポインタを返すように書き換えるとしても
それは1と同じ理由で却下。
残るのは2番。
128:デフォルトの名無しさん
07/09/22 12:37:46
人はそれをヘルパ関数と呼
129:デフォルトの名無しさん
07/09/22 16:42:49
CButtonとかはリソースエディタで追加するとそのまま使えるのに
手で追加するとなぜCreateを呼ばないといけないの?
リソースとして追加した場合なんでCButtonのインスタンスが無いの?
130:デフォルトの名無しさん
07/09/22 16:52:16
ボタンはコントロール
C++のクラスではない
CButtonはそれをMFCで扱うためのクラス
131:デフォルトの名無しさん
07/09/22 16:56:43
ダイアログ上のコントロールは、
ダイアログ作成時にWindowsが作る(そのためのダイアログだ)。
あとは、作成されたコントロールとソース上のCButtonとを
関連付けるだけなので、Createする必要がない。
132:デフォルトの名無しさん
07/09/22 17:13:43
>>130-131
なるほど。。つまり以下の様に理解したけどOKですか?
(1)リソースとしてボタンを追加した場合、MFCのダイアログクラスが初期化のときに自分でそのボタンをCreateしている。
(しかもダイアログクラスはボタンが必要だという情報をリソースファイルから得ている?(だってソース上は見当たらないからなぁ。))
(2)リソースとして追加したうえ、変数を割り当てるとそのCButtonクラスと、内部で生成したボタンコントロールのウインドハンドルをどこかで関連付けている。
(3)リソースエディタを使用しない場合、ダイアログはそのコントロールを作成しない。だから自分でCreateを呼ぶ必要がある。
133:デフォルトの名無しさん
07/09/22 17:20:07
>>132
>(2)
つ[OnInitDialog()]
134:デフォルトの名無しさん
07/09/22 17:27:32
>>133
ありがとうございます。ステップ実行してOnInitDialogでなんかごにょごにょして、その過程でCButtonのメンバが有効な値をもつようになったの確認できました
135:デフォルトの名無しさん
07/09/22 18:40:37
教えるだけ無駄なようだね
136:デフォルトの名無しさん
07/09/22 18:59:37
本当は教える知識がないんでしょ?w
137:デフォルトの名無しさん
07/09/22 19:01:01
えぇーどんだけーってレベルでしょ
138:デフォルトの名無しさん
07/09/22 19:16:31
いかほどぉ〜
139:デフォルトの名無しさん
07/09/22 19:40:58
>>132
(1)、「MFCのダイアログクラス」ではなく、「Windows」。
140:デフォルトの名無しさん
07/09/23 00:15:44
まず何から勉強すればいいですかね?
141:デフォルトの名無しさん
07/09/23 03:31:07
>>140
C→C++→Cでwin32apiをかじる→MFCでわけわかんなくなる。
→それでもがんばる→疲れる→Cが恋しくなる→でもC++でがんがる
→どうでもよくなる。
142:デフォルトの名無しさん
07/09/23 07:37:51
Cを少しかじる→C++でわけわかんなくなる→MFCをかじる→感動する→C++も分かった気になる
→win32apiも分かった気になる→Cが恋しくなる→久しぶりにCに戻ってみる→
MFCが恋しくなる→でもがんばる→むかついてどうでもよくなる。
143:デフォルトの名無しさん
07/09/23 09:02:44
Cを少しかじる→むかついてどうでもよくなる。
144:デフォルトの名無しさん
07/09/23 09:13:07
visual C++ からg++なんかの外部のコンパイラを使うにはどうすればいいの?
145:デフォルトの名無しさん
07/09/23 09:42:04
cl.exeを置きかえる
146:デフォルトの名無しさん
07/09/23 10:36:42
カスタムビルドステップ
147:デフォルトの名無しさん
07/09/23 11:59:54
むりむりかたつむり!
148:デフォルトの名無しさん
07/09/23 16:42:12
WM_KeydownのところでOnKeyDownを追加したんですが、
キーボードから何を押してもそこへ飛んでくれないんですが
これって何か初期設定みたいなのが必要なんでしょうか?
149:デフォルトの名無しさん
07/09/23 17:07:53
WM_KEYDOWN を受け取ろうとしているウィンドウにフォーカスが当たってないんじゃない?
たとえば、ダイアログ上のエディットボックスでキーを押した場合、
WM_KEYDOWN が飛んでくるのはダイアログじゃなくてエディットボックス
150:デフォルトの名無しさん
07/09/23 17:19:31
>>149
ダイアログをクリックしてから押してるんだけどうんともすんとも
ちなみにダイアログだけのプログラムでダイアログにはボタンが6個あるだけです
151:デフォルトの名無しさん
07/09/23 18:28:26
Visual Studio2005使って、Windoxsフォームアプリケーションやってるけど
リソースの使い方がわからない…
152:デフォルトの名無しさん
07/09/23 18:31:20
がんばれ
153:デフォルトの名無しさん
07/09/23 18:35:06
Windoxs
154:デフォルトの名無しさん
07/09/23 18:53:38
>>151
すっげーなお前
Visual Studio2005使って、Windoxsフォームアプリケーションなんかやってるんだ
155:デフォルトの名無しさん
07/09/23 18:54:42
>>154
普通は何やるんですか?
156:デフォルトの名無しさん
07/09/23 19:24:53
>>155
次期SPや修正パッチなどの出荷用テスト
157:デフォルトの名無しさん
07/09/23 19:41:56
私、昨日買ったばっかなんですが、勉強したくて
158:デフォルトの名無しさん
07/09/23 19:47:07
初心者向けの製品は別にあるよ
159:デフォルトの名無しさん
07/09/23 20:12:47
本か何か買ったの?
それ見てやればいいんじゃね?
160:デフォルトの名無しさん
07/09/23 21:31:01
最近のWindowsアプリケーションはいったいどんな種類があるの?
自分はダイアログベースアプリが80%
10%はDLLやStaticLib
時々SDIアプリ
たまーにActiveX
GUI系で最近の流行ってなんですか?
161:デフォルトの名無しさん
07/09/25 07:02:02
スリープ(モニタ電源OFF)から復帰すると動作がおかしくなってるのですが
なにか特別な処理をする必要があるのですか?ソフトはアナログ時計です。
なおPC不調でサスペンドから復帰できなくなってるのでサスペンドの場合はどうなるのか
不明です。
162:デフォルトの名無しさん
07/09/25 07:12:33
サスペンドの場合はPCの電源が即座に切れ二度と起動しなくなります。
163:デフォルトの名無しさん
07/09/25 22:01:23
Visual C++と、標準C++って何が違うんですか?
164:デフォルトの名無しさん
07/09/25 22:19:24
Visual C++は商品名で標準C++は言語名
165:デフォルトの名無しさん
07/09/25 22:31:11
Visual C++で、入門者がMFCを最初にやるのは馬鹿ですかね?
166:デフォルトの名無しさん
07/09/25 23:51:53
C++ をよく理解してるんならいいんじゃないのかな。
でも Windows プログラムの動く仕組み理解しておいた方がいいんじゃないかな
167:デフォルトの名無しさん
07/09/26 00:09:05
VisualC++で、キーボードからの入力をテキストファイルに保存したいんですけど、どうしたら出来ますかね?
168:デフォルトの名無しさん
07/09/26 00:39:39
1)キーボードから入力を受け取って
2)ファイルに書き込む
といいよ
169:デフォルトの名無しさん
07/09/26 00:55:04
>>167
キーロガー作ってパス盗む気か
170:デフォルトの名無しさん
07/09/26 01:11:12
ついでに特定のサイトを見ているときだけ保存したいんですけど、どうしたらできますかね?
171:デフォルトの名無しさん
07/09/26 02:41:42
>>170
釣りは死んでください。
172:デフォルトの名無しさん
07/09/26 02:45:01
はい
173:デフォルトの名無しさん
07/09/26 07:28:10
vs2005ですが、デバッグの際、
stlのvectorとかでエラーが出たときに
なんかウィンドウが出るだけでデバッガの方に出力されないので
どこでエラーが出てるのか分かりにくいです。
どうにか場所を特定する方法ってありますか?
174:デフォルトの名無しさん
07/09/26 08:12:35
キーボードからの入力を受け取りたいんですけど、やっぱりAPIとかの知識がないとだめなんですかね?
175:デフォルトの名無しさん
07/09/26 08:18:52
キーボードからの入力以前に、やっぱりAPIとかの知識がないとだめ人間です。
176:デフォルトの名無しさん
07/09/26 08:25:37
>>173
つブレークポイント
まず適当にブレークポイントを設定して自分のコードのどの場所でエラーが出るか特定する
次にその部分で使ってる関数の各ステップにブレークポイントを設定してどの場所でエラーが出るか特定する
それを再帰的に繰り返していくとランタイムアサートのマクロ構文に辿り着く筈
177:デフォルトの名無しさん
07/09/26 08:39:44
>>175
学習してきます。
178:デフォルトの名無しさん
07/09/26 20:53:45
質問です。
struct Base
{
void *p;
virtual ~Base(){}
};
struct Hoge : public Base
{
Hoge(){p = new HogeData;}
};
と、このように IData *pを派生先で共有したいと思っています。
派生先ごとにpに何を生成するかは決まっており、
Hoge なら new HogeData
Main なら new MainData
John なら new JohnData
といった具合です。(xxxData たちは全て、IDataを継承しています)
この状態で
Hoge *pHoge = new Hoge;
と、VisualSturio6.0のデバッガ「変数ウインドウ」で見た場合、pはあくまでvoid*型なのでそれ以上データを見ることはできません。
しかし、プログラマである私が決めたルールとして Hogeの時のpは*HogeDataとして扱うというルールがあります。
これをデバッガに認識させる方法はありませんでしょうか?
・Base *pHoge = new Hoge; とした場合、pHoge->pをHogeDataだと認識する必要は無い(高望みすぎるので)
・void *p; のかわりに IData *p; にしてみたが、IDataとしてしか認識してくれなかった(HogeDataの持つ変数は見られなかった)
・デバッガに認識させるために、何か特別な記述を加える労力は惜しまない
・クイックウォッチを使ってきちんと手動で型認識させてやれば見られたが、毎回手動はきつい(自動にできる方法があるならそれでもいいかも)
よろしくお願いします。
179:デフォルトの名無しさん
07/09/26 20:55:30
1行間違いです
>と、このように IData *pを派生先で共有したいと思っています。
↓
と、このように void *pを派生先で共有したいと思っています。
曖昧な表現でした
>pはあくまでvoid*型なのでそれ以上データを見ることはできません。
↓
つまり、変数ウインドウ上のpの頭のところに[+]記号が出てこないということです
180:デフォルトの名無しさん
07/09/26 21:08:24
>>178
仮にBaseはpを持っている必要がないとすれば、
BaseにIData* GetData() = 0;のようなメンバ関数を用意して、
個々の派生クラスで、メンバ変数pとpを返すGetDataを定義するという方法が思い付く。
派生クラス毎にpを持てば、HogeDataなど特化した型にできるだろう。
181:デフォルトの名無しさん
07/09/26 21:17:04
void pointer…(ゴクリ
182:デフォルトの名無しさん
07/09/26 21:22:40
>>180
お返事ありがとうございます。
派生クラス毎に持つという案は確かに考えたのですが、
Base <- Hoge <- HogeEx
とやったときに複数ポインタが存在することになってしまいます。
(Baseには無しとしても、Hoge分とHogeEx分)
IData* GetData() =0; の手法ですが、そのGetDataを呼び出す記述がソースに無い限り
いきなりブレイクして変数ウインドウを見ても表示されないのではないでしょうか。
一応今も非virtual なGetDataをそれぞれ持つようにさせ、クイックウォッチの時の記述が統一的になるようにはしています。
(ただ、それでもクイックウォッチ呼び出すのかなり面倒なのですよね…)
183:デフォルトの名無しさん
07/09/26 21:46:50
template <typename T> struct Holder : public IHolder {
Holder() : p(new T) { IHolder::p = p; }
T* p;
};
を作って
typedef Holder<HogeData> Hoge;
typedef Holder<MainData> Main;
みたいに使えばどうか?
見るだけならrelease時はT* p
を持たないバージョン作っといてそれを使うようにすればいいし
184:デフォルトの名無しさん
07/09/26 21:49:48
変数ウインドウで値みなきゃデバッグできないわけじゃないし
それだけのためにごちゃごちゃソースいじるのも頭わるすぎる
185:デフォルトの名無しさん
07/09/26 21:54:44
なるほど、テンプレートですか
実験してみようと思います。
しかし逆に考えると、テンプレート使うくらいしか方法が無いってことなんでしょうかね
私の妄想上の記述ですが
struct Base
{
void *p;
virtual ~Base(){}
};
struct Hoge : public Base
{
union
{
void *Base::p;
HogeData* pHogeData;
}
Hoge(){p = new HogeData;}
};
こんなことできないもんでしょうかね?
186:デフォルトの名無しさん
07/09/26 21:55:58
>>184
確かに正論だと思います。
なので「簡単に変数ウインドウで確認するための方法」があるなら知りたいわけです。
とてつもなくソースが難読になってしまうのなら、やらないだろうと思います。
187:デフォルトの名無しさん
07/09/26 22:15:32
もちろんできますお
でもこうすればIHolderがいらない子になってしまう
template <typename T> struct Holder
{
Holder() : derived(new T) {}
union {
IData* base;
T* derived;
};
};
HogeやMainもポインタや参照経由で多態性を持たせるなら
もっと面倒臭くなるし下手すりゃVC6ではコンパイルできなくなるかも
188:デフォルトの名無しさん
07/09/26 22:27:21
MFCのランタイムクラス情報を使っていれば、
自動で派生クラスの内容も表示できたりするけど、
今回はそれは無しだろうしなあ。
189:デフォルトの名無しさん
07/09/26 23:38:07
自分でautoexp.datを書くってのはどうだろう。
190:デフォルトの名無しさん
07/09/26 23:51:54
>>187
定義済みの変数を、unionで「こいつとも共用体ってことで」って後付けできないもんでしょうか
>>188
MFCはなしですね…。携帯電話用なもので
>>189
ぐぐってみましたがこれは面白そうですね。ちょっと調べてみます
191:デフォルトの名無しさん
07/09/27 00:38:43
autoexp.dat を使えばもしかしたらいけそう…。
と思うのですが、ポインタの型変換の書き方がわかりませんね…
Hoge=b=<((HogeData*)p)->b>
では認識してくれないようです。
どなたかautoexp.datについて分かるかたいらっしゃいませんでしょうか
もしくは詳しいページor書籍などを紹介していただけると嬉しいです
192:デフォルトの名無しさん
07/09/28 15:45:55
Visual Studio 2005 Standard Edition を購入しようとしています。
今2003版を持っているので、アップグレード版を買えばいいとは思うのですが、
2003のユーザー登録がしていなといけないとか、
同じパソコンにインストールしないといけないとか、
アップグレード版にはそういった制約があるのでしょうか?
教えて下さいませ
193:デフォルトの名無しさん
07/09/28 16:59:04
ない
194:192
07/09/28 17:14:14
>>193
ありがとうございます。
もし2003を持っていなくても、普通に動くという事?
195:デフォルトの名無しさん
07/09/28 22:34:58
インストール時に2003のディスクチェックくらいあるだろう
196:デフォルトの名無しさん
07/09/28 23:36:41
ディスクチェックもなければアクチもねえぞ
197:デフォルトの名無しさん
07/09/29 00:46:19
#include "gameframe.h"
void GameFrame::doMainLoop(){
ChangeWindowMode(TRUE);
if(DxLib_Init()==-1) return;
SetDrawScreen(DX_SCREEN_BACK);
while(ProcessMessage()==0&& CheckHitKey(KEY_INPUT_ESCAPE)==0){
ClsDrawScreen();
ScreenFlip();
}
DxLib_End();
とソースコードをコンパイルしようとしたら・・・
こんなエラーが出てきましたどうしたらいいでしょう??
↓↓
エラー E2090 型限定子 'GameFrame' がクラス名または名前空間名ではない
エラー E2040 宣言が正しく終了していない
198:デフォルトの名無しさん
07/09/29 01:32:11
エラーコードについて
msdn で調べてみるか
google 先生に聞いてみると良いよ。
199:デフォルトの名無しさん
07/09/29 05:28:42
教えるだけ無駄そうだな
C++勉強したことある?
200:デフォルトの名無しさん
07/09/29 07:24:53
今までVBばっかり使ってたのですが、
最近Visual C++に興味があります
何から始めたらいいでしょうか?
201:200
07/09/29 07:27:18
書き忘れました
VS2005です
202:デフォルトの名無しさん
07/09/29 08:58:17
C++やったことがないとVisual C++は無理
203:デフォルトの名無しさん
07/09/29 09:00:16
?
204:200
07/09/29 09:06:42
そうですか(><;
どうも
205:デフォルトの名無しさん
07/09/29 17:57:30
coutってなんて読むのでしょうか?
206:デフォルトの名無しさん
07/09/29 18:02:27
シーアウトかな
207:デフォルトの名無しさん
07/09/29 18:43:27
コウティー
208:デフォルトの名無しさん
07/09/29 19:37:55
>>207
無知乙wwwwwwww
209:デフォルトの名無しさん
07/09/29 20:33:05
コンソールアウト
210:デフォルトの名無しさん
07/09/29 22:47:53
コウト
211:デフォルトの名無しさん
07/09/29 23:07:02
の中では
212:デフォルトの名無しさん
07/09/29 23:07:44
兵器
213:デフォルトの名無しさん
07/09/30 06:32:20
な
214:デフォルトの名無しさん
07/09/30 08:06:32
const int const_cout_count = 0;
215:デフォルトの名無しさん
07/09/30 08:31:56
昔のVCのプロジェクトをビルドしようとしているんですが、
そのプロジェクトではnasmというコマンドを使ってアセンブラファイルをアセンブルしようとしていました。
そしてVC6ではnasmは見つからないらしく、コマンドが見つかりません、ってエラーになります。
nasmはVC6ではなくなってしまったのでしょうか?代替のアセンブラはありますか?
216:デフォルトの名無しさん
07/09/30 08:38:30
昔のVCにnasmついてたっけ?
自分で作ったプログラムかそれ?
217:デフォルトの名無しさん
07/09/30 08:45:18
プログラムはネットで拾ったものです。
218:デフォルトの名無しさん
07/09/30 08:51:23
ググれ。nasmならsourceforge.netで公開されている。
219:デフォルトの名無しさん
07/09/30 09:00:04
ありがとうございます。ググッて来ます
220:デフォルトの名無しさん
07/09/30 09:04:16
おかげさまで今アセンブルできました!!
ありがとうございましたm(_ _)m
221:デフォルトの名無しさん
07/09/30 13:12:49
nasmはintel表記に従っているから好き。
gasは独自表記に拘っているから嫌い。
222:デフォルトの名無しさん
07/09/30 22:17:09
リソースファイルで設定した製品バージョン
VALUE "ProductVersion", "0, 0, 0, 1"
をプログラム中から取得するにはどうすればよいのでしょうか?
223:デフォルトの名無しさん
07/09/30 22:58:03
>>222
GetFileVersionInfo + VerQueryValue
224:デフォルトの名無しさん
07/10/01 06:18:06
なるほど、一旦できた実行ファイルから取得するしかないんですね。
もっと静的にコンパイル時に取得できる物だと思っていました。
225:デフォルトの名無しさん
07/10/01 08:11:55
exeはコンパイルし直さない限り変らないから静的な情報だろ
226:デフォルトの名無しさん
07/10/01 08:16:41
>>225
それはそうなんだけど、コンパイル時に決定できるなら
よかったなぁ、と思って。マクロの中で使いたいから。
227:デフォルトの名無しさん
07/10/01 09:13:26
Resource.hあたりに、"0, 0, 0, 1"を適当にdefineして、
.rcと使いたいマクロ中でそれ使うようにすればいいだろ!!!
とか、言ってみる。
228:デフォルトの名無しさん
07/10/01 12:27:52
>>226
リソースはコンパイル時に確定していない情報なんだから当然、無理。
# リソースが確定するのはリンク時。
229:デフォルトの名無しさん
07/10/01 12:31:17
>>226
マクロの中で使う場合でも定数である必要はないんじゃないの?
取得用関数を1つ別に作って、マクロの中でその関数使えばすむ話だと思うけど
230:デフォルトの名無しさん
07/10/01 16:08:06
>>222
URLリンク(tgws.fromc.jp)
231:デフォルトの名無しさん
07/10/01 21:48:11
Win2k3 x64上で64ビットEXEから
32ビットのみ対応DLLを使いたいと思っております。
しかし、MSDNを見ると、上記は不可能であると知りました。
32ビットのみ対応DLLを64ビット対応にする、という方法以外で、
64ビットEXEから32ビットdllを使用できる方法、プロセス構成として
何が考えられますでしょうか?
なるべくパフォーマンスが落ちないような実装として何がありますでしょうか?
加えて、最も簡単な方法もありましたら教えていただきたいです。
232:デフォルトの名無しさん
07/10/01 21:54:53
32ビットDLLを呼ぶEXEを作って、それと64ビットEXEとでプロセス通信したらどうか。
COMで32ビットアウトプロセスサーバ作ってもいいだろうし。
いずれにせよ32ビットEXEを介すことに変わりはないが。
233:231
07/10/01 21:58:02
>232
ありがとうございます。
プロセス通信というと、Socket通信とかでしょうか?
メモリを共有することはできないんですよね。
もしできたとしてもコーディングが難しいのでしょうかね・・・?
234:デフォルトの名無しさん
07/10/01 22:09:33
ソケットもそうだし、ウィンドウメッセージ、メモリマップドファイル、パイプ、メールスロット、その他色々ある。
用途に合わせて好きなの選べ。
235:231
07/10/01 22:17:54
>>234
ありがとうございます。やはりプロセス間通信しかないですか・・・
dllには大きなデータを一度に渡すのですが、その場合に最も効率いいものはあるのでしょうか?ここからは自分で調べないといけないのかもですね。
236:デフォルトの名無しさん
07/10/01 22:36:27
Win32 and COM Development
- Development Guides
- 64-bit Windows Programming
- Running 32-bit Applications
- Interprocess Communications
速度的には共有メモリだろうけど、一時ファイルを介するのも一つの手かもな。
237:デフォルトの名無しさん
07/10/02 12:24:13
始めまして、質問させていただきます。
Microsoft Visual C++ 6.0で人が作ったアプリケーション拡張開こうとしてるのですが
開き方が分かりません。誰か教えてください。宜しくお願いします。
238:それが誰かは知りませんが
07/10/02 12:26:09
「人」に聞きなさい。
239:デフォルトの名無しさん
07/10/02 12:33:56
落ちてたものなので、人に聞くことも出来ないので、ここに聞くことに
したのですが、誰か教えてもらえませんか?宜しくお願いします。
240:デフォルトの名無しさん
07/10/02 13:50:34
アプリケーション拡張ってDLLのこと?
開くって何したいの?
241:デフォルトの名無しさん
07/10/02 14:03:24
>>240
開き方わかります?知ってたら教えてください
242:デフォルトの名無しさん
07/10/02 14:37:17
VC++ 2005 Express Editionで質問です。
VC++のヘルプをMSDN Express Libraryからmsdn2007年6月版に変更したいのですが
msdnから落として完全インストールでデフォルトのC:\Program Files\MSDNに入れました。
VC++でヘルプを開くとき新しく入れた2007年6月版が開くように設定するにはどうしたらいいですか?
243:デフォルトの名無しさん
07/10/02 15:45:10
>>241
釣り?
DLLは「開く」ものじゃないぞ?
244:デフォルトの名無しさん
07/10/02 16:04:13
そのまま VC++ に取り込んで改造できると思ってんのか
笑っちゃう
245:デフォルトの名無しさん
07/10/02 16:40:05
>240に対して>241の応答は酷すぎる。「言葉が通じない」の実例だ。
246:デフォルトの名無しさん
07/10/02 16:54:43
>>241
DLLを開きたいならCreateFileを使え
247:デフォルトの名無しさん
07/10/02 16:59:14
話をかき混ぜるようなこと書くなw
248:デフォルトの名無しさん
07/10/02 17:09:18
落ちてたものなのに「人」が作ったとなんで判ったんだろう。
249:デフォルトの名無しさん
07/10/02 17:24:52
人に聞けないってここの住人は…(以下略)
250:デフォルトの名無しさん
07/10/02 17:29:51
>>244
なんだ改造できないのか、残念
251:デフォルトの名無しさん
07/10/02 18:03:06
>>248
人が作ったのでなければ何だね。
自動コーディングスクリプトかね。
まさか神が造ったなどと言うつもりではあるまい。
252:デフォルトの名無しさん
07/10/02 18:27:12
落としたつもりは無いんだけど
253:デフォルトの名無しさん
07/10/03 00:14:18
何このカオス
254:デフォルトの名無しさん
07/10/03 21:02:00
URLリンク(www.microsoft.com)
で、プログラムフォルダ以下のファイルを編集するときに、変更を保存できないんですが
どうすればいいのでしょうか?
255:デフォルトの名無しさん
07/10/03 21:31:17
そこらへんのディレクトリ・ファイルは、管理者権限持ったユーザにしか
書き込み系のアクセス権限がないはず。
管理者権限持って出直してこい。
256:デフォルトの名無しさん
07/10/03 22:19:29
管理者権限持っているんだが、どうもおかしいな
257:デフォルトの名無しさん
07/10/03 22:23:16
でもね、昨日の「-1」は、まじでわかっていた
信じて
258:デフォルトの名無しさん
07/10/03 22:56:29
Vista+UAC
259:デフォルトの名無しさん
07/10/04 15:54:21
すみません VC6.0 初心者です。
ATLでNTサービスプログラムを作っています。
デバッグ用にメッセージボックスが出せると便利なのになぁと
思うんですけど、MessageBoxを使うと「ボン」と音がするだけで、
見えるところに出てきません。
(処理はそこで止まるので、出てはいるようです)
やむなく LogEvent 関数でログを吐き、
イベントビューアで見てますが、NTサービスでは
メッセージボックスを出せないものなんでしょうか?
260:デフォルトの名無しさん
07/10/04 16:29:02
>>259
デスクトップとの対話をサービスに許可
というオプションは試した?
261:デフォルトの名無しさん
07/10/04 18:18:07
>>260
対話を許可にしたらできました。
どうもありがとうございました(´・ω・`)
262:グリッドとか、グリッドの間隔とか
07/10/05 14:33:03
Visualstudio 2003 C++で、ダイアログプログラムを作っているのですが
ダイアログを編集しているときにグリッドを表示させているのですが、
標準ではグリッドの表示がされていないので、
書式-ガイドの設定-グリッドをチェック
グリッドの間隔はデフォルトで6になっているのを3にしてOKボタンを押すのですが
VC2003が覚えてくれません。これはやっぱり仕様なのでしょうか?
どこかにデフォルトの設定を変えて通常グリッドON、間隔3にできないものでしょうか?
ご教示ください、よろしくお願いします。
263:デフォルトの名無しさん
07/10/09 22:30:41
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
と、表示されるのですが…どうしたらよいのでしょうか…
文は「試しにこれをコンパイルしてみよう」みたいなのを何度も見直したんで大丈夫なはずなのですが…
264:デフォルトの名無しさん
07/10/09 22:45:28
'#include "stdafx.h"' をソースに追加しましたか?
265:デフォルトの名無しさん
07/10/09 22:53:07
それがイマイチわからなかったので追加しない方法もあったようで
そっちでやったらコンパイルできました…
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4931日前に更新/165 KB
担当:undef