★初心者にVisual C++を教えるスレ★ Part27at TECH
★初心者にVisual C++を教えるスレ★ Part27 - 暇つぶし2ch175:デフォルトの名無しさん
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
それがイマイチわからなかったので追加しない方法もあったようで
そっちでやったらコンパイルできました…

266:デフォルトの名無しさん
07/10/10 01:50:25
タイトルバーを持つけどドラッグできないウインドって作成できますか?
ウインドを移動させたくないんです。


267:デフォルトの名無しさん
07/10/10 01:54:30
WM_MOVING をのっとって見るとか?

268:デフォルトの名無しさん
07/10/10 01:59:19
>>267
こんばんは。早速試してみましがダメでした。:-)


269:デフォルトの名無しさん
07/10/10 02:22:19
WM_WINDOWPOSCHANGING

270:デフォルトの名無しさん
07/10/10 02:32:24
>>269
ありがとうございます。しかしそのメッセージを処理させないようにしたら
ウインドの初期化処理でシステムから利用されているらしく、ウインドが表示されなくなってしまいました。

ウインドをドラッグしようとすると枠だけが移動するヤツありますよね?
ドラッグを終えたときだけウインドが一瞬で移動するやつです。
あんな風にドラッグ操作だけは受け付けるけど、放したときに結局元の位置に戻っちゃう、
みたいなのでもいいです。

クレクレですみませんがよろしくお願いしま~す



271:デフォルトの名無しさん
07/10/10 02:45:28
>そのメッセージを処理させないようにしたら
どっちも現在の位置を入れるんだよ

272:266
07/10/10 02:56:36
こんばんは。皆さん、遅くまでありがとうございます。

いろいろ試してみたのですが、上手くいかないみたいです。
海外のサイトをあさっていて上手く行く方法を見つけました。

HMENU hMenu = GetSystemMenu(mhWnd, FALSE);
::DeleteMenu(hMenu, SC_MOVE,MF_BYCOMMAND);

でメニューから「移動」を取ってしまう方法のようです。

お騒がせしました。(^0^)/



273:デフォルトの名無しさん
07/10/10 11:22:33
【政治】政府、"お金をつくる"造幣局や印刷局など独立法人20以上を民営化へ-機密性の保持も絡み様々な意見も★


スレリンク(newsplus板)

【民営化】造幣局・印刷局など、独立行政法人20以上を民営化へ:政府方針 [07/10/07]
スレリンク(bizplus板)


政府は6日、現在進めている独立行政法人(独法)の整理合理化に関連し、
101ある独法のうち、予算に占める国からの財政支出の割合(財政依存度)が低い
20法人以上の民営化を目指す方針を固めた。

2007年末に整理合理化計画を策定し、閣議決定する予定だ。
民営化の対象には、造幣局や国立印刷局、日本万国博覧会記念機構などがあがっている。
今後、独法の民営化推進を目指す渡辺行政改革相らの方針に対し、
事業の公共性の高さなどを主張する関係省庁の巻き返しが本格化しそうだ。

貨幣や紙幣を造る造幣局や国立印刷局については、機密性の保持なども絡み、
是非をめぐって様々な意見が出そうだ。

URLリンク(headlines.yahoo.co.jp)

274:デフォルトの名無しさん
07/10/10 11:30:28
>>272
試してみたら本当に動かないな。なんて怪しい仕様なんだ……

275:デフォルトの名無しさん
07/10/10 16:22:12
日付の取得方法を教えて下さい

276:デフォルトの名無しさん
07/10/10 16:59:13
カレンダーを見る

277:デフォルトの名無しさん
07/10/10 18:45:09
本に書いてない?
MSDNにもサンプルコードのってたような気がする

278:デフォルトの名無しさん
07/10/10 20:21:56
VC2005を使っています。
Bitmapクラスを使って、ビットマップデータを、ファイルではなく、指定したメモリに格納したいと思っています。
ファイル保存しかできないでしょうか?
できるのなら、例を教えていただけるとありがたいです。

279:デフォルトの名無しさん
07/10/10 21:03:09
ファイルとして保存する所までできてたらメモリでもいっしょだろ

280:デフォルトの名無しさん
07/10/10 21:07:48
つ System.IO.UnmanagedMemoryStream

281:デフォルトの名無しさん
07/10/10 22:35:15
サンプルコードではなく、実用的なアプリケーションのソースを公開してるとこありませんか?
MFCでもSDKでOK

wwwを検索すると、Viewに”hello world”とTextOutしていかにも、C++/VC++/MFC使えますみたいな
のばっか、そんなの誰でもできるっちゅうねんw

282:デフォルトの名無しさん
07/10/10 22:37:44
OSS

283:デフォルトの名無しさん
07/10/10 22:38:30
探せばいくらでも見つかるはずだけど
馬鹿には見つからないんだな

284:デフォルトの名無しさん
07/10/10 22:41:17
>>281
実用的なアプリケーションのソースくらいお前以外誰でも書けるっちゅうねんw

285:デフォルトの名無しさん
07/10/10 22:43:43
MFC、SDK ぐらいしか検索ワード知らないんだから
そういうサイトしかヒットしないのは当たり前

286:デフォルトの名無しさん
07/10/10 22:44:38
ネットで言語の勉強してたら自然とそういう情報に当たるか見つけ方自ずと分かるっちゅうねんw

287:デフォルトの名無しさん
07/10/10 22:46:21
あらあらあおりと取られちゃったのかしらんw
次元ひくっ

288:デフォルトの名無しさん
07/10/10 22:49:15
質問の次元が高すぎるっちゅうねんw

289:デフォルトの名無しさん
07/10/10 22:49:39
あらあらあおりと取っちゃったのかしらんw
次元ひくっ

290:デフォルトの名無しさん
07/10/10 22:50:46
質問の次元が高すぎるっちゅうねんw

291:デフォルトの名無しさん
07/10/10 22:51:07
>>281
実用的なアプリケーションのソースが理解できないから
お前のレベルに見合ったhello worldしか目に付かないのだっちゅうねんw

292:デフォルトの名無しさん
07/10/10 22:55:08
逆にどういうキーワードで検索してるのか気になるっちゅうねんw

293:デフォルトの名無しさん
07/10/10 22:56:34
しかし、>>281が言ってることも的を射てるよ

webでプログラミング情報を公開してる奴って結構多いが
どれも、同じようなことしか書いていない

彼は恐らく日本語のページしかみてないんじゃないかな?


294:デフォルトの名無しさん
07/10/10 22:59:43
ぜんぜんプログラミングの知識のないやつとかが、
どっかで拾って来たソースのビルドの仕方聞くことが結構あるから
まったく見つけられないやつはかなり特殊

295:デフォルトの名無しさん
07/10/10 23:01:48
どれも、hello worldしか書いていないページを是非紹介して貰いたい

296:デフォルトの名無しさん
07/10/10 23:10:47
Visual Studio 2002 C++で開発しております。

現在、ディスプレイの主電源が入っているか確認するプログラムを
作成しているのですが、主電源の状態を取得する事ができておりません。

SC_MONITORPOWERで情報がとれないかなとも試してみたのですが
主電源情報となると取れないようでした。

お手数ではございますが、ご教授のほど、よろしくお願い致します。

297:デフォルトの名無しさん
07/10/10 23:22:05
>296
そのプログラム考えたやつに聞けば?
できる前提じゃないとそういう細かい要求でないと思う

298:296
07/10/10 23:37:51
>>297
考えたのは自分なので、聞くことはできないです。

その為、主電源情報を取得する方法ご存知の方が
いらっしゃるのではないかと思い、質問させて頂きました。

299:278
07/10/10 23:38:55
>>279 280
ありがとうございます。bitmapクラスのSaveでファイル保存をしていました。
このメソッドはファイル保存しかできないように見えます。保存先をメモリにしたいです。
UnmanagedMemoryStreamをMSDNで見ましたが、どのようにこの問題の解決のために使うのかわかりません。
サンプルを教えていただけないでしょうか?もしくはBitMapクラスでメモリ保存できるAPIはあるのでしょうか?

300:デフォルトの名無しさん
07/10/10 23:51:03
うちのモニタは主電源は入りっぱなしだけど
パソコン立ち上げた時にモニタのスイッチ押さないとモニタ写らない。
パソコン立ち上げた時にモニタが自動で写るようにしてほしいな

301:デフォルトの名無しさん
07/10/10 23:54:38
自分ですればいいじゃん

302:デフォルトの名無しさん
07/10/10 23:59:10
>>299
Stream に保存できるだろ

303:デフォルトの名無しさん
07/10/11 00:14:19
>>299
ぐぐった先頭にあるMSDNのページにサンプルあるんだけどそれではダメなの?
もしかして、サンプルに書いてあるコメントが読めないとか?

304:デフォルトの名無しさん
07/10/11 09:19:32
仕様勉強するにはやっぱり
なんか1冊本を買ってきて最初から読むのがいいですかね

305:デフォルトの名無しさん
07/10/11 09:28:22
人それぞれ

306:デフォルトの名無しさん
07/10/11 17:58:45
>>299
そもそも、そのBitmapはネイティブ、マネージのどっちだ?

ネイティブのgdiplus::Bitmapなら、IStream*を引数に取るSaveを使え。
IStreamは自分で実装してもいいし、CreateStreamOnHGlobalを使ってもいい。

マネージのSystem::Drawing::Bitmapなら、Stream^を引数に取るSaveを使え。
渡すStreamは、System::IOのMemoryStreamでいいだろうが、
場合によってはUnmanagedMemoryStreamが適する場合もあるかもしれない。

307:デフォルトの名無しさん
07/10/11 19:05:33
マルチスレッドを実現するためにスレッド作成をしたいと思ってます。

以下はスレッドを作成するクラスのソースです。
このように、staticをつけないとコンパイルエラーになります。

スレッド関数は、必ずStaticにしなければならないのでしょうか?
Staticを使わずにスレッド生成を実現したいと思っております。
というのも、Static内の関数を全てStaticにしないといけなくなるので
・・・

スレッド生成でStaticを使わない実現方法があったら教えていただきたいです。
実際、みなさんはどのような方法でスレッド生成を実現しているのでしょうか?

class TestThread{
// コンストラクタ、デストラクタは省略
public:void Function()
{
// スレッド作成
Thread^ main= gcnew Thread(gcnew ThreadStart(ThreadProc));
}

private:static void ThreadProc() // staticをつけないとエラー
{// 処理 }
};

308:デフォルトの名無しさん
07/10/11 19:33:23
gcnew ThreadStart(this, &TestThread::ThreadProc)かな。

309:デフォルトの名無しさん
07/10/11 19:41:06
>>308
レス感謝です。しかしコンパイルエラーになりました。
deligate引数が無効と出ました。

310:デフォルトの名無しさん
07/10/11 21:18:49
>>309
ああごめん。>>308の方法は、値クラスか参照クラスにしか使えない。

もし、ネイティブクラスの非静的メンバ関数を別スレッドで実行したければ、
マネージクラスでラップするか、CRTの_beginthreadexを使う必要がある。

311:307
07/10/11 21:54:57
>>310
マネージクラスでラップ(クラスにrefをつけた)ら、
コンパイルが通り、正常に動作しました。

beginthreadexについては調べてみます。
ありがとうございました。


312:デフォルトの名無しさん
07/10/11 23:19:26
マネージドとか、最近妙なモンが出てきやがって。。

313:デフォルトの名無しさん
07/10/11 23:21:23
もう最近でもないような。

314:デフォルトの名無しさん
07/10/11 23:21:37
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..
:::: :::::::::.....:☆彡::::    //[||    」  ||] :: ::::::::::::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..:
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:....
:.... .... ..:.... .... ..... .... .. .:.... .... .. .... . .... . ..... .... .. ..... ............. .. 
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ デテキヤガッテ・・・.
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ...................
..   三  |   三  |   三  |   三 |
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪

315:デフォルトの名無しさん
07/10/11 23:40:59
おまえらあんなC++もどき使うのやめちまいな!

316:デフォルトの名無しさん
07/10/11 23:53:51
誰も使ってないような。

317:デフォルトの名無しさん
07/10/12 00:16:45
C#やVBなんかよりは全然いいがなw

318:デフォルトの名無しさん
07/10/12 09:42:10
リストビューで選択されているすべての項目のインデックスをしらべるにはどうしたらいいんですかね?

なんか
GetFirstなんたらの後に、GetNextなんたらをやってもうまくいかなかったのですが…

319:デフォルトの名無しさん
07/10/12 09:46:09
LVIS_SELECTED

320:デフォルトの名無しさん
07/10/12 09:48:08
>>318
じゃあお前にはムリだ。

321:デフォルトの名無しさん
07/10/12 16:24:12
>>318
CListCtrl::GetFirstSelectedItemPositionのサンプルコードをよく見直せ。
それでも判らないならコードupしる。

322:デフォルトの名無しさん
07/10/12 18:53:49
コンストラクタはオブジェクトの初期化処理を行い
デストラクタはオブジェクトの終了処理を行う
というのは、どういった場面で使われるのですか?
いまいち理解出来ないです

323:デフォルトの名無しさん
07/10/12 19:04:54
コンストラクタは最初に呼ばれて、デストラクタは最後に呼ばれるだけ
利用方法がわからなかったら無理に使わなくてもかまわない

324:デフォルトの名無しさん
07/10/12 19:34:34
>>322
デストラクタは、freeのような使い終わった後に呼ばないといけない解放処理を書く。
例えばstd::auto_ptrが内部に保持しているポインタをdeleteしたり、
ATL::CHandleはCloseHandleしたりなどという具合。

コードがスッキリするし、例外が投げられたときでも確実に資源が解放されるのがいい。

325:デフォルトの名無しさん
07/10/13 09:06:01
>>322
オブジェクトを作るときに
メンバ変数の値を動的に初期化するときとかにコンストラクタを使う
たとえばある時はメンバ変数をAで初期化したいけど
別の時にはBで初期化したいようなとき。
っていうのがまだまだ初心者な俺の理解です。
たとえば

class obj {
  char test;
public:
  obj(char ch) { test = ch; }
};

obj testobj('A');

っていう感じかなぁ
あとは動的にメモリを確保する必要があるときとか。
クラスのこともっと勉強していけばわかってくるよ。

326:デフォルトの名無しさん
07/10/13 09:28:46
コンストラクタ=母
デストラクタ=嫁

327:デフォルトの名無しさん
07/10/14 12:45:49
環境XP professional SP2
Microsoft Visual C++ 2005 Express Edition(MSからダウンロードしてます)
SDKインストールすみ(MSからダウンロードしてます)

cppファイルとdefファイルをビルトしたいのですが
以下のメッセージがでてビルトできません。


------ ビルド開始: プロジェクト: aaaaaa32, 構成: Debug Win32 ------
コンパイルしています...
aaaaaa.cpp
c:\documents and settings\administrator\my documents\visual studio 2005\projects\123ler\aaaaaa.cpp(1) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
ビルドログは "file:\\c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\123ler\Debug\BuildLog.htm" に保存されました。
aaaaaa32 - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

というメッセージがでて ビルドできません

どうも設定の段階でつまずいているようなのですが
また、ここに参考になりそうなコメントをみつけたのですが
どこの設定がまちがえているのかが よくわかりませんでした。
URLリンク(forums.microsoft.com)

どなたかエラーを解決する方法をおしえていただけないでしょうか?
よろしくお願いします。

328:デフォルトの名無しさん
07/10/14 12:59:49
>>327
想像だが、標準ファイル名をダブルクォーテーションで囲んでいるのではないか?
×#include "windows.h"
○#include <windows.h>

329:デフォルトの名無しさん
07/10/14 13:18:33
Expressの場合は何かのファイルを自分で編集しなきゃいけなかったような

330:デフォルトの名無しさん
07/10/14 13:21:03
URLリンク(www.microsoft.com)
とりあえず、手順3は済んだの?

331:デフォルトの名無しさん
07/10/14 22:27:56
327です

328さん、329さん、330さん ご返事ありがとうございます。
手順3というのが よくわからなくて、
(いきなり オプションとかかれても 初心者にはどこにあるかすぐには
 わかりませんでした)(メニューから オプションとかいてくれるといいかも)

いろいろと 試行錯誤して やっと意味がわかりました
Executable ファイル
Include ファイル
Library ファイル
のボタンが 右側上に あるのが やっとわかりました。

あと当方のバージョンでは そこも日本語に翻訳されており(カタカナもあり)
それで 上からそれぞれのパスを設定したら うまくいきました。

フォルダをクリックしパスの本文をダイレクトに入力するんですね(^ ^;)
(アイコンの意味も、私には わかりにくかったです)

この理解のために、Visual C# 2005の本(秀O)も買ったのですが
少しバージョンが違うようですね。(2006年8月第1版)

ここでのつまずきに かなりの時間をついやしました。
ほんとにありがとうございました。(^ ^)

このあと、日付を変更して、別なテスト(実験)をやっていたら
Microsoft Visual C++ 2005 Express Editionがうごかなくなってしまいました
(今朝インストールしなおしたばかりなのに)
(これも承認しないといけないんですね)

332:デフォルトの名無しさん
07/10/14 22:38:37
あほすぎ
C++とC#は別物
オプションなんてたいていツール→オプション(設定)でどのソフトも同じ
Windowsは初めて?
その程度の知識でプログラムを作る側のアプリを触るのはやめて下さい。

333:デフォルトの名無しさん
07/10/14 22:40:33
どうい

334:デフォルトの名無しさん
07/10/14 23:07:08
ずぶの素人に本気になって相手できるお前らがうらやましい。
まるで泣いている赤ん坊に「日本語しゃべれねぇヤツは日本人じゃねぇよ!」
ってマジ切れしてる大人のようであります。

335:デフォルトの名無しさん
07/10/14 23:09:33
やれやれ
どこに本気になっている人がいるんでしょうか?
赤ん坊に自分の見合った事をやりなさいと諭してるだけでしょ。

336:デフォルトの名無しさん
07/10/14 23:46:23
> どこに本気になっている人がいるんでしょうか?

いないなら問題ないです^^

337:デフォルトの名無しさん
07/10/14 23:49:35
VC2005EE+SDKを最初に手に取った赤ん坊には拍手を送りたい。
VC#と間違ってVC落としたのなら別だけど...

338:デフォルトの名無しさん
07/10/15 03:44:06
#と++を見間違えたのだろうか。
それとも本当にばかなんだろうか。

339:デフォルトの名無しさん
07/10/15 06:14:13
初心者のちょっとしたあやまちだろう。
おまえらが、パソコンに初めて触ったときのことをよく
思いだして見ろよ、ハゲ。

340:デフォルトの名無しさん
07/10/15 06:51:30
思い出した!うーんそんな間違いはしなかったなぁ。うん。

341:デフォルトの名無しさん
07/10/15 08:10:33
HOW MANY PAGES の意味が解りませんでした(><)

342:デフォルトの名無しさん
07/10/16 17:28:52
How many files(0-15)?がどうかしたって?

343:デフォルトの名無しさん
07/10/16 17:30:51
VC++はcl.exeとデバッガだけ使うようにしてさ
エディタはemacsとかvim使おうぜ
その辺の初心者の10倍の速度で上達するよ☆(ある意味で)

344:デフォルトの名無しさん
07/10/16 17:38:20
たまに現れるけど何がしたいの

345:デフォルトの名無しさん
07/10/16 18:26:42
Vimと言えば、初心者向けに操作方法を説明しているサイトは多いが、
始めにQuickFixコマンドの説明を含めている所は見たことが無いな。
名前付きバッファなんざ覚える暇があったら、:cwだけでも覚えるべきだ。

346:デフォルトの名無しさん
07/10/16 22:10:04
もぅ…訳がわからん
MFC使うためにオブジェクト指向プログラミングを勉強してるが、
静的メンバ変数とか、メンバイニシャライザだとか、訳がわからなくなってきた、

347:デフォルトの名無しさん
07/10/16 22:13:53
今時MFC使うなんてバカじゃねぇのw

348:デフォルトの名無しさん
07/10/16 22:18:53
>>347
今は何を使うんですか?

349:デフォルトの名無しさん
07/10/16 22:19:30
ナウなヤングに今のトレンドを教えてください。

350:デフォルトの名無しさん
07/10/16 22:24:59
.NET?
だけど俺はあえてATL/WTLを選ぶぜ!!

351:デフォルトの名無しさん
07/10/16 23:02:35
>>346
MFCには魔物が潜んでいる。
ヤツは必ずキミを破滅に導いてくれる。
もはやマイクロ・ソフトさえ見捨てたMFCを、なぜ今更?

352:デフォルトの名無しさん
07/10/16 23:18:53
Googleさんが言うには

vc mfc の検索結果 約 1,950,000 件中 1 - 10 件目 (0.06 秒) 
vc wtl の検索結果 約 225,000 件中 1 - 10 件目 (0.05 秒) 
vc c++/cli の検索結果 約 1,510,000 件中 1 - 10 件目 (0.13 秒) 

C++/CLIが意外と多いのに驚いた。

353:デフォルトの名無しさん
07/10/16 23:23:29
それ、vcとc++とcliで検索がかかってないの?

354:デフォルトの名無しさん
07/10/16 23:26:01
>>353
ぐぐれwww

355:デフォルトの名無しさん
07/10/16 23:29:52
MFCってさ、文字列だはSTLに比べて格段に扱いやすいんだよな。
ただそれだけ。それだけなの。
深みにハマれば人生を棒に振るだけだから、絶対に近づかないほうがいい。
廃人になって捨てられる悲しい人生が待っている。
「MFCやめますか?それとも人間やめますか?」

そもそも 「DLL HELL」 とい言葉はMFCから生まれたもの。
意味はDLL地獄。DLLという単語とHELL=地獄をかけてある。
ようこそMFC地獄へ!


356:デフォルトの名無しさん
07/10/16 23:35:03
std::basic_stringてSTLの問題児のひとつじゃないかw

357:デフォルトの名無しさん
07/10/16 23:37:48
そう。だからだよ、MFCの方が使いやすい。文字列だけはな。
でも、コレに騙されてはイカン!

358:デフォルトの名無しさん
07/10/16 23:50:17
すんごい同意☆
MFCはCStringだけが取り柄w
あとちょっとしたアプリはDialogベースアプリで書けるのがメリットかな。
だから俺はいつもMFCのDialogベース。
皆はなに使ってるの?Win32?

359:デフォルトの名無しさん
07/10/16 23:58:44
うん

360:デフォルトの名無しさん
07/10/17 00:07:34
MFCはAPIのラッパークラスだし何でSTLが比較対象に上がるのか理解に苦しむ。

361:デフォルトの名無しさん
07/10/17 00:51:28
>>360
初心者にはそこが分からない。
間違った方向へ進もうとしている初心者を正しく導くのが、
このスレの住人に課せられた使命。

362:デフォルトの名無しさん
07/10/17 01:22:06
MFCにはCStringがある。だからSTLと比較される。

363:デフォルトの名無しさん
07/10/17 01:44:23
MFCは CString 以外は使うな。人間性を失いたくなければ。

364:デフォルトの名無しさん
07/10/17 14:18:04
ダイアログベースのアプリならMFCが楽でいいよ。
そっから先は無理だけど。
作るもの全てがダイアログベースのアプリになってしまう。
俺がいい例。

365:デフォルトの名無しさん
07/10/17 14:50:39
たまにはドキュメントビューアーキテクチャのことも思い出してあげてください

366:デフォルトの名無しさん
07/10/17 16:23:14
>>342
青春時代を思い出して泣いた。

367:デフォルトの名無しさん
07/10/17 17:49:02
VC6.0でWindowsサービスを作っています。
作ったサービスはXPでは動作するのですが、
2003 Server ではサービスとしての起動ができません。
(正確にはWindows Server 2003 R2 Standard Edition です)

サービスマネージャで「サービスの開始」をクリックすると、
プログレスバーが出てしばらく後
「ローカルコンピュータのxxxx(サービス名)サービスを開始できません。
エラー1053:そのサービスは指定時間内に開始要求または
制御要求に応答しませんでした。」となります。

根本的に、2003 Server 向けのサービスをVC6で作ることはできないのでしょうか。
ご存知の方おしえてください

368:デフォルトの名無しさん
07/10/17 18:04:46
>>365
つーかMFCはそれがメインだと思うんだが、使いこなせない人多いんかな。

369:デフォルトの名無しさん
07/10/17 18:21:47
C++作成支援プログラムって存在しますか?
たとえばHTMLならPOWERPOINTで画像やボタンの配置などが簡単にできますがC++でも同じようなことができる
プログラムってありますでしょうか。

370:デフォルトの名無しさん
07/10/17 18:25:26
スレが違うと思われ

371:デフォルトの名無しさん
07/10/17 18:28:24
Visual C++は、まさにそういう類いのソフトウェア。

ところで、PowerPointはただの釣針だよね?

372:デフォルトの名無しさん
07/10/17 18:41:59
>>371
powerpointじゃなかったpublisherだった。
ありです。

373:デフォルトの名無しさん
07/10/17 18:49:46
>>369
GUIツールキットとかGUIビルダーとかかな・・・
スレッドあるからそこで雰囲気見てみるといいよ。

374:デフォルトの名無しさん
07/10/17 18:53:16
VC++初めて使おうと思ってるんですけどVBのプログラミング言語のところだけC++になったもの、と考えてあってますか?
もしVBのようにGUIが作れるのであれば本格的に勉強しようと思ってるんですが・・・

375:デフォルトの名無しさん
07/10/17 19:05:41
VBと違って簡単なプログラムでも大量のコードが必要

376:デフォルトの名無しさん
07/10/17 19:37:37
待て、Publisherも名前からして違う。
MS OfficeならFrontPageだろ。
まあこれも別製品に後継を譲る立場だが。

377:デフォルトの名無しさん
07/10/17 21:29:08
>>374
Standard以上のVCにはいくつかのライブラリが付いてくるんだけど
.Netを使うならVB.NetのようにGUIを作れる。ただ言語は純粋なC++じゃなく
C++/CLIになる。ライブラリ使わないなら375の言うようなことになる。

C++のライブラリもあるんだけど、必ず変なのが来て暴れるので説明省略。

378:デフォルトの名無しさん
07/10/18 03:05:31
VC++ってもしかしてCopyFile(○○,××,FALSE)に対応してない?
どなたか解決方法教えてください

379:デフォルトの名無しさん
07/10/18 03:36:31
たぶん原因が<windows.h>をインクルードしてないからなんだと思うのですが、#include文を入れると
大量にエラーが増えてしまいます・・・
どうすればいいのでしょうか

380:デフォルトの名無しさん
07/10/18 03:58:37
>どうすればいいのでしょうか
コンパイラが教えてくれるだろ。

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

381:デフォルトの名無しさん
07/10/18 12:38:16
VC2005 Proを使ってます。

クラスライブラリのヘッダにて、abstract sealedの
クラス内にtypedefとtemplateを使った定義をしました。
しかし、そのヘッダ内では使えるものの、そのほかのクラスでは使用
できません。コンパイルエラーになります(定義されていないとのこと)
(staticのメンバ関数などはOK)。
どうしたら、他クラスで使用できるのでしょうか?また、templateや
typedefをクラスライブラリで定義する場合はこの方法しかないのでしょうか?

// typedefを使用したクラス(例)
public ref class TYPES abstract sealed{
public:
typedef short test16;
typedef unsigned short utest16;};
// templateを使用したクラス(例)
public ref class METHODS abstract sealed{
public:
template <typename T1>
static T1 TEMPTEST (const T1& t1)
{return t1;}
// このメンバ関数は他クラスでも使用可能
static void TEST(int num){int i = 3;}
};


382:デフォルトの名無しさん
07/10/18 13:45:36
スレ違い?
クラスライブラリで template、typedef 使うなよ

383:デフォルトの名無しさん
07/10/18 18:56:16
>>381
いつものC++みたいに、ヘッダファイルも一緒に配ればOK。

384:デフォルトの名無しさん
07/10/18 23:02:47
STLとMFCだと、プログラミングの技術に差は出ますかね?

385:デフォルトの名無しさん
07/10/18 23:09:18
使い道が全然違う

386:デフォルトの名無しさん
07/10/18 23:15:55
MFCって次期VSから無くなるんじゃなかったっけ?
もうどうでもいいよ

387:デフォルトの名無しさん
07/10/18 23:28:16
>>386
確かMSDNにMFCに関するQ&Aがあって「MFCはなくなりませんか?」みたいなQに対して、「永久になくなりません。」ってAがあった。
ホントかよっ!と思いつつ読んでいたが、無くなるのか。。


388:デフォルトの名無しさん
07/10/18 23:28:40
今から勉強するならSTLですかね?
参考書籍等が書店に見当たらないのですが、ほとんどがMFCを説明している本でして、

389:デフォルトの名無しさん
07/10/18 23:30:38
>>364
ダイアログベースなら他のツール使えば?
ダイアログベースのアプリなんて使ったこと無い


390:デフォルトの名無しさん
07/10/18 23:34:55
>>388
MFCとSTLは全く別物
どちらもやってもよい

391:デフォルトの名無しさん
07/10/18 23:58:28
>>386-387
URLリンク(blogs.msdn.com)

どうみてもやる気満々なのだが。

392:デフォルトの名無しさん
07/10/18 23:59:39
簡単なGUIアプリケーションを作りたいと思っています。
一応、C,C++は基本的なことは理解しているつもりです。
検索したらMFCや.NET Framework、Win32APIがあったのですが。
違いもいまいちわからないのですが、どれを使ったらいいのでしょうか?
宜しくお願いします。

393:デフォルトの名無しさん
07/10/19 00:00:01
とりあえず2008ではなくならない
むしろ拡張されてる

394:デフォルトの名無しさん
07/10/19 00:03:26
けど、あいかわらずグリッド系は自前で作るしかないのね

395:デフォルトの名無しさん
07/10/19 01:14:27
Visual Basic2005とVisual studio2005って何が違うのか何方か教えてください

396:デフォルトの名無しさん
07/10/19 01:23:32
わらた

397:デフォルトの名無しさん
07/10/19 01:27:45
>>389
いまのアプリケーション開発(Win)ってトレンドってなんだろう?
Win32だとGUIを作るのが大変そうだし。
視覚的にGUIが作れるのってダイアログベースアプリくらいしか思いつかない。
あとはVBかC#。
C#も作ったコントロールやウインドがやたら画面の端に引っ付いたりして気に食うものがなかなか出来ない(と個人的に思う)



398:デフォルトの名無しさん
07/10/19 03:24:51
VC++のフォームを使ってボタンを押すと特定のファイルを移動するプログラムを作りたいんですが、
copyfile の identifier が見つかりませんでした、とビルドエラーがでます。助けてください

399:デフォルトの名無しさん
07/10/19 07:27:53
全ソースupしたら助けてやらないことも無い。

400:デフォルトの名無しさん
07/10/19 07:39:39
WinAPIのCopyFileなら
必要なヘッダ(windows.h)をincludeしてない
CopyFileなのにCopyfileやcopyfileにしてる

401:デフォルトの名無しさん
07/10/19 09:43:51
どなたか>>392お願いします。
スレ違いだったら言ってください。

402:デフォルトの名無しさん
07/10/19 09:53:57
どれでも好きなの使ったらええやん
向き不向きがあるだろ

403:デフォルトの名無しさん
07/10/19 10:59:48
C++/CLIでWindows.Formsがトレンドなんじゃないの?
とC#を使いながら言ってみる。

404:デフォルトの名無しさん
07/10/19 15:19:15
>>389
>ダイアログベースなら他のツール使えば?
ツール???何の?
ツールの話なんて誰がしてたの?

405:デフォルトの名無しさん
07/10/20 00:51:50
ソースファイルはあるのだがどうにもコンパイル出来ない・・。
替わりに俺がやってやるぜ!なんて素敵な方、いませんか?

g++とsqliteのライブラリ・ヘッダがあれば良いらしいのですが。
欲しいバイナリはwin32用です。

406:デフォルトの名無しさん
07/10/20 00:52:43
壱千万で引き受けます。

407:デフォルトの名無しさん
07/10/20 00:55:14
それ・・は・・むり・・。orz

408:デフォルトの名無しさん
07/10/20 03:28:28
おいおい、NTTデータなら800億円で受注する仕事だぜ?安いもんさ。

409:デフォルトの名無しさん
07/10/20 11:01:54
VC++2005EEを使っています。
コマンドラインからclでコンパイルのみを行ってからlinkを使った場合、
CRTやkernel32.libは指定しなくても自動的にリンクされるようですが、
デフォルトでリンクされるライブラリファイルはどこで定義されているのでしょうか?

410:デフォルトの名無しさん
07/10/20 12:54:14
Windows2000でVC++2002でアプリケーションを作成したのですが
"read" になることはできませんでしたのエラーがでても動いているので
そのまま稼動させて大丈夫でしょうか?
readってことは参照しかしてないってことですよね?

411:デフォルトの名無しさん
07/10/20 12:55:59
だめだよ

412:デフォルトの名無しさん
07/10/20 13:00:38
なぜですか?

413:デフォルトの名無しさん
07/10/20 13:12:59
>409
lib

414:デフォルトの名無しさん
07/10/20 13:16:14
>>410
コード晒してくだちゃい><

415:デフォルトの名無しさん
07/10/20 13:19:19
1万7千行ありますが

416:デフォルトの名無しさん
07/10/20 13:26:47
何でその程度で触ってんの?
一人で使うなら問題ない
それが君の力量だから

417:デフォルトの名無しさん
07/10/20 13:38:21
一人では使いませんが一人で作っています

418:409
07/10/20 13:40:40
>>413
それはライブラリファイルがある場所を示してくださっていると解釈してよろしいですか?

ライブラリがある場所ではなく、デフォルトでリンクされるライブラリファイルが
どこでどのように設定されているのかを知りたいのです。
例えばkernel32.libやCRTはデフォルトでリンクするが、
user32.libは指定しないとリンクされない…とか。

corewin_express.vspropsで設定されているライブラリファイルは
コマンドラインでのリンクには影響を与えないことを確認しました。

419:デフォルトの名無しさん
07/10/20 14:17:07
hBitmap=LoadImage(hInstance,MAKEINTRESOURCE("IDB_CHAR"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);

if (hBitmap == NULL)
{
MessageBox(hWnd,"BitMap Load Error", "エラー",MB_OK);
return 0;
}

これでリソースからビットマップを読んでるつもりなんですが
何故、メッセージが出るんでしょうか?
#include "resource.h" も付けています。

MAKEINTRESOURCE("IDB_CHAR") の部分に
ビットマップのパスを入れても同じです。

420:デフォルトの名無しさん
07/10/20 14:26:50
GetLastError()

421:デフォルトの名無しさん
07/10/20 14:43:49
>>419
MAKEINTRESOURCE(゚⊿゚)イラネ
このマクロは、LPCTSTRにWORD型のIDを突っ込むために使う。

422:デフォルトの名無しさん
07/10/20 20:42:10
>>410
ポインタの使い方間違ってるんじゃないの?

423:デフォルトの名無しさん
07/10/20 23:41:40
「猫でも~」で、C++でもGDI+が使えることを知りました。
さっそく画像表示プログラムつくってみたんですけど、パスに漢字がはいると
表示できません。これはなぜでしょうか?


424:デフォルトの名無しさん
07/10/20 23:57:46
VC++6.0でOutlook2007と携帯W54Tのスケジュールとタスクの同期プログラム作りたいんだけど。
まずは、bluetoothの制御方法から教えてくれ。
サンプル世路


425:デフォルトの名無しさん
07/10/21 00:08:14
そのようなことができる方は初心者とは言いません。




426:デフォルトの名無しさん
07/10/21 00:26:14
初心者とは、初心の心を持っている者のことである。

427:デフォルトの名無しさん
07/10/21 00:34:12
うるせぇ!オレ様は初心者だぞ。おまいら初心者を差別するつもりか?
初心者には知る権利がある。質問する権利がある。違うか?
オレの言ってる事が間違っているなら、筋道立てて理路整然と反論してみろや!

428:デフォルトの名無しさん
07/10/21 01:12:58
俺は小心者ですが何か?

429:398
07/10/21 02:09:50
#include <windows.h>
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace testfile {
public ref class form : public System::Windows::Forms::Form
{
public:
form(void)
{
InitializeComponent();
}

protected:
~form()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private:
System::ComponentModel::Container ^components;

続く

430:デフォルトの名無しさん
07/10/21 02:11:36
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();

this->button1->Location = System::Drawing::Point(58, 130);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(163, 74);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &form::button1_Click);

this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->button1);
this->Name = L"form";
this->Text = L"form";
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{CopyFile("\\files\\readme.txt","C:\\program files\\testprogram\\readme.txt",FALSE);
}
};
}
長いですけどフォームつかったら自動的にいろいろ追加されてこんなふうになってしまいました。ボタンを押すとファイルを書き換えるだけなんですけど・・・
とりあえずボタン押して

431:398
07/10/21 02:17:02
そしてビルドしたときのエラー
1>------ ビルド開始: プロジェクト: testfile, 構成: Debug Win32 ------
1>コンパイルしています...
1>form.cpp
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(1) : error C2001: newline in constant
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(1) : error C2059: syntax error : 'string'
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(88) : error C2065: 'FALSE' : undeclared identifier
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(88) : error C3861: 'CopyFile': identifier not found
1>ビルドログは "file://c:\Documents and Settings\○\My Documents\Visual Studio 2008\Projects\Project1\testfile\testfile\Debug\BuildLog.htm" に保存されました。
1>testfile - エラー 4、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

432:デフォルトの名無しさん
07/10/21 02:39:43
CopyFile で右クリックして「定義へ移動」すると勉強になると思う。

433:デフォルトの名無しさん
07/10/21 09:06:43
CLR-Windowsフォームアプリケーション で新規作成、
ボタン配置してハンドラを同じように書いてみたけど、
文字列がUnicodeでないと文句言われただけで、後は問題無かった。
form.h(1)の謎のエラーが後に影響しているのかもしれんね。
そのエラーだと、ヘッダをインクルードしているソース側に問題がある可能性もあるから、
#include "form.h" より前の部分もチェックした方が良いな。

434:デフォルトの名無しさん
07/10/21 10:03:42
現在,
Visual C++ 6.0 → .netの2005
Windows2000 → WindowsXP SP2
へようやく以降したのですが,分からぬエラーが.

6.0 + 2000 = 問題ない
6.0 + XP = 問題ない
2005+ 2000 = 問題ない
2005+ XP = 問題あり

何が問題か,ですが
テキストファイルを読み込むと終了時にアクセス違反
というエラーがでます.
テキストファイルを読み込まなければエラーは起きません.

何かXPと2005の組み合わせで気をつけなければ
ならないことあるのでしょうか?

435:409
07/10/21 10:21:58
>>409 >>418
どなたかご存知の方がおられましたら、教えてください。

436:デフォルトの名無しさん
07/10/21 12:43:51
>>421
hBitmap=LoadImage(hInstance,"C:\\test.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
なら、その後Bitbltで描けるようですが、
hBitmap=LoadImage(hInstance,MAKEINTRESOURCE("IDB_NULL"),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
これだと駄目です。MAKEINTRESOURCEを取っても駄目です。

パスで指定 → OK
リソースから → 駄目

もう、どうしたらいいか・・・

437:デフォルトの名無しさん
07/10/21 12:48:21
>>436
GetLastError()で見たのかよ低脳
""取ってみ
MAKEINTRESOURCE("IDB_NULL")→MAKEINTRESOURCE(IDB_NULL)


438:デフォルトの名無しさん
07/10/21 12:51:43
>>434
自分の2005+XP SP2では問題は発生しない。
2000->XP SP2 はもちろんクリーンインストールだよな。

>>435
コンパイラの既定CRTライブラリは/MTなので、
出力されたオブジェクトファイルにlibcmt.libのリンク指示が含められている。
で、リンク時にCRTライブラリによってエントリポイントが解決された結果、
それが依存するライブラリもリンクされている。

CRT内部で何をしているか調べるのは正直骨だし、
とりあえず宣言しとけばいいんじゃね?被っても問題無いし。

ちなみに、エントリポイントを自分のコードで解決してCRTを一切リンクしなかった時は
kernel32.libすらリンクされなかったので、あくまで依存関係に従っていると考えて良さそう。

>>436
リソースの識別には、16ビットIDと文字列を対応付ける二つの方法がある。
"IDB_NULL"という文字列を対応付けているなら "IDB_NULL" で良いが、
resource.hのIDB_NULLのID定義を介しているなら、MAKEINTRESOURCE(IDB_NULL)だ。

439:デフォルトの名無しさん
07/10/21 12:58:40
画像はウィンドウクラスでカーソルとアイコンの登録しかやったことないけど
メニューの指定でもいろいろ悩んだなぁ・・・。

とりあえずわかったことは
引数として文字列(のポインタ)が要求されるのに
resource.h でリソース名に定数振られてて
そのせいでうまくいかないっぽいってことはわかった。
画像とかの ID とかを "" で囲んで
resource.h から #define の定義を消すとうまくいってた。

正当なやり方はよくわかってない。

440:デフォルトの名無しさん
07/10/21 13:05:00
よくわかってない奴は黙ってろや
あほが余計悩むだろ

441:デフォルトの名無しさん
07/10/21 13:10:39
>>437,438,439
" を外しても同じです。
エラーなどは出ません。

一応、使ってるのがVC5なんですよ。これって関係あるんかな?


GetLastErrorも調べてみます。

442:デフォルトの名無しさん
07/10/21 13:17:43
たまに、resource.hに使われなくなったIDが残ったりするから、それかもしれないな。
.rcファイルとresource.hを目視で確認してみ。

443:デフォルトの名無しさん
07/10/21 13:21:34
何か理由があってVC5なんて使ってるの?
新しいのに移行する時に余分に時間が掛かるだけだし情報も少ないよ

444:デフォルトの名無しさん
07/10/21 13:27:34
リソースビューでその画像が "IDB_NULL" ってなってるんじゃないの?
"" とって IDB_NULL にしてみたら?

445:デフォルトの名無しさん
07/10/21 13:33:21
>>444
画像名はリソースビューで見ても IDB_NULL で
"" は付いていません。

本当に謎だ・・・

446:デフォルトの名無しさん
07/10/21 13:37:03
>>445
今手元に環境あるの?

447:409
07/10/21 13:57:16
>>438
オブジェクトファイルにコンパイラからのリンク指示が含まれているということなので、
dumpbinを使ってオブジェクトファイルの内容を調べてみたところ、libcmt.libのリンクを
指示するリンカオプションが含まれていました。

また同様に、libcmt.libをdumpbinで調べてみたところ、kernel32.libへのリンクが
指示されていました。


おかげで疑問が解決しました。ありがとうございました。

448:デフォルトの名無しさん
07/10/21 14:59:09
OS:XP Pro sp2で下記URL先のWindows アプリケーションがアクティブにならない状態です。
解決策はあるのでしょうか?
URLリンク(forums.microsoft.com)

449:デフォルトの名無しさん
07/10/21 15:04:10
解決してんじゃん
いろいろやってみろよ
お前には無理だけど

450:434
07/10/21 15:22:29
>>438
クリーンインストールです.

サブPCが2000のままだったのでVC++6.0を入れて
メインPC(XP)の.netの2005とモニタ並べて
まったく同じ処理をやってもメインPCの方だけアクセス違反が….
2005では文字コードをUnicode→マルチバイトへの変更が差分です.

451:デフォルトの名無しさん
07/10/21 15:29:12
同じじゃないじゃん

452:デフォルトの名無しさん
07/10/21 16:36:59
>>446
あります。

一応、LoadImage後に
if (hBitmap == NULL)
{
MessageBox(hWnd,"BitMap Load Error", "エラー",MB_OK);
return 0;
}
で調べてみると メッセージが出ます。

453:デフォルトの名無しさん
07/10/21 16:41:48
あるのに遅すぎんだよ

454:デフォルトの名無しさん
07/10/21 17:56:53
LoadImageで読み込めないフォーマットのビットマップの可能性もあるから、
まずは、FindResourceでリソースを見つけられているかどうか確認した方が良いな。
生成された実行ファイルをIDEで開けばリソースを覗けるはずだから、
IDが正しく対応しているかの確認も。

455:デフォルトの名無しさん
07/10/21 18:00:58
LoadImageで読み込めてるって書いてある

456:434 450
07/10/21 18:06:57
>>451
①windowsXP (.NETの2005)で文字コードをマルチバイト,
②windows2000(.NETの2005)で文字コードをマルチバイト,
同じ条件で①では終了時エラー,②では正常終了です.
まったく同じ条件です.

XPのSP2で何か気をつけるべきことがあるのかと考えていますが,
まだ原因が特定できません.

457:デフォルトの名無しさん
07/10/21 18:12:33
今まで問題のあるコードがたまたま動いていただけなんじゃねぇの。

458:434 450 456
07/10/21 18:22:27
>>457
うーん,その可能性も否定できないんですが
実際に複数台のPCで1日中ずっと処理を走らせて,
3年間,エラーが起きることはなありませんでした.

エラーが起きる部分(ファイル読込)は少なく見積もって
数万回は走っているはずです.
終了時にエラー(アクセス違反)は一度も出ていません.

現在調べている時は余計な部分を削除していき,
ファイル読込部分しか書いていないです.

459:デフォルトの名無しさん
07/10/21 18:33:12
自分は絶対間違ってないという前提なら
ここで質問されても答えようがないから
マイクロソフトに直接聞け

460:デフォルトの名無しさん
07/10/21 18:34:41
短いならコード出すべし。

461:デフォルトの名無しさん
07/10/21 18:36:08
Unicodeなら問題ないの?

462:デフォルトの名無しさん
07/10/21 18:42:48
どうせバッファオーバーフローとかだろ

463:デフォルトの名無しさん
07/10/21 19:14:49
どうしてデバッガで追うとかしないの?

464:自作ブラウザ
07/10/22 17:48:37
VC++ 6.0 で htmlview を基本クラスにして、ブラウザを作成した時には
マウスによるクリック処理をプログラマがコードを追加して実装しなくても、
左ボタン処理等が実装されていますが、これをカスタマイズしたい時には
どうすればよいのでしょうか?

465:デフォルトの名無しさん
07/10/22 17:52:14
>>464
つ[JavaScript]

466:デフォルトの名無しさん
07/10/23 16:00:19
windows フォームアプリケーションを使ってるんですがC++と少し違いを感じました。
messagebox.showをmessagebox::showと書いたり
messagebox以外にもいろんな機能を使いたいんですがなんと入力すればいいのかわかりません。
ファイルを特定フォルダに作成したり、特定なファイルを上書きしたり、別ウィンドウを開いたりしたいんですが
誰か教えてください

467:デフォルトの名無しさん
07/10/23 17:20:25
C++出来るんならMFCなりapiたたいたりapiクラス化するなりで良いじゃん


468:デフォルトの名無しさん
07/10/23 21:30:31
>>466 がやっているのは、C++/CLI だ。
というわけで .NET Framework のリファレンスを見れ。

もっとも、.NET 触るんであれば、俺は C# をお勧めする。

469:デフォルトの名無しさん
07/10/24 05:26:09
>>468
だな。VSC++はネーテブコード吐き出すためのツールだと知れ>>466

470:デフォルトの名無しさん
07/10/24 05:31:13
VS2003.NET→VS2005に環境を移行しました。
が、VS2003.NETでは警告、エラーともにでなかったソースでもVS2005だと警告が出ます。
調べたところ、文字コードがUNICODEではないため警告が出ているようです。

そこで、文字コードを一括(プロジェクト内のソースすべて)をUNICODEに変更するにはどうすればよいのでしょうか?

471:デフォルトの名無しさん
07/10/24 05:37:28
めんどくさいぞ
それよりプロジェクトのプロパティで以前の文字コードに設定したらどや

472:デフォルトの名無しさん
07/10/24 05:46:34
>>471
ありがとうございます。
プロジェクトのプロパティはVS2005の設定項目のどこを変更すればよいのでしょうか?

質問ばかりですいません・・・・

473:デフォルトの名無しさん
07/10/24 05:57:41
左側のソリューションエクスプローラのプロジェクトファイルのアイコンを右クリック→プロパティ
全般のページが開いてると思うから真ん中当たりに文字セットがある
2005からデフォルトでUNICODEになった

474:デフォルトの名無しさん
07/10/24 06:15:14
VS2003.NETで作成したプロジェクトをVS2005で開き、>>473の部分を確認したのですが、
すでに「マルチバイト文字セットを利用する」となっていました。

warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。

出てくる警告は上記のものです。これは気にしなくてもよいのでしょうか・・・

475:デフォルトの名無しさん
07/10/24 06:17:54
何やそれかw
ファイル→保存オプションの詳細設定でUnicodeで保存し直したら消えるんちゃう?

476:デフォルトの名無しさん
07/10/24 06:40:16
これでいけそうですね。
ただ、ファイルが十数ファイルあるので一括変換できればうれしかったのですが・・・残念です。

早朝からありがとうございました。

477:デフォルトの名無しさん
07/10/24 11:49:14
>>476
せっかくVC++使ってるんだから
一括変換のプログラム書けばいいだろう

478:デフォルトの名無しさん
07/10/24 12:54:31
>>467-469
ありです。やってみます

479:デフォルトの名無しさん
07/10/25 21:59:36
超初心者で申し訳ないのですが、質問があります。

VC++ 2005で、
URLリンク(tserve01.aid.design.kyushu-u.ac.jp)
を参考にペイントツールを作成していたのですが、
ツールバーのボタンが押されたときに呼び出される関数を設定する所で詰まってしまいました。
ClassWizardのない2005では、この部分をどう作ったら良いのでしょうか?

480:デフォルトの名無しさん
07/10/25 22:17:38
ツールバーのボタンを押す

481:デフォルトの名無しさん
07/10/25 22:20:29
最初メニューにコマンド追加して
それをツールバーにも設定

482:479
07/10/25 22:40:56
>>481
クリアしました。
啓蒙ありがとうございました。

483:デフォルトの名無しさん
07/10/26 06:53:45
オブジェクト指向プログラミングを大きく分けてみたんですが、
カプセル化、抽象化、階層化で合ってますか?

484:デフォルトの名無しさん
07/10/26 10:16:05
質問ですが、フォルダをウィンドウから開きたい場合はどうしたらよいのでしょうか?
例えばですが、
 ウィンドウにマイコンピュータの画像を貼り付け、そこをクリックしたらマイコンのフォルダが開く。と
と、したいのですが、色々調べていてやり方がさっぱり分かりません。

分かるかた是非教えて下さい。また、参考サイト等ありましたら合わせて教えて下さい。お願いします。


485:デフォルトの名無しさん
07/10/26 10:34:18
system("explorer.exe C:\\");

486:デフォルトの名無しさん
07/10/26 10:41:15
>>485
レスありがとうございます。
書いて頂いたのは、プロンプトが一回開いてしまうんですが、そのまま直にフォルダを開く事はできませんか?

私が今まで書いていたものは、
 ShellExecute(hWnd, "oepn", "パス", NULL, NULL, SW_SHOWNORMAL);
なんですが、この方法ではうまくいきませんでした。無理なのであればsystem()でやろうかと思います。

また、マイコンピュータを開く場合、ファイルパスがうまく指定できないのですが、何故でしょうか・・
C:\Documents and Settings\ユーザ名\Favorites\My Computerではフォルダがないと言われるんですが、違うのでしょうか。

度々ですが、宜しくお願いします。


487:デフォルトの名無しさん
07/10/26 10:44:12
質問小出し野郎はスルーするのが吉

488:デフォルトの名無しさん
07/10/26 11:01:22
"oepn"ではフォルダはオープンしないと思う。せいぜいできるとしてもオエプンくらいかな。

489:デフォルトの名無しさん
07/10/26 11:14:04
ShellExecute(hWnd, "open", "explorer.exe", "パス", NULL, SW_SHOWNORMAL);
でいいのかな。

参考サイト:URLリンク(www.google.co.jp)
つかいかた:テキストボックスに [ShellExecute explorer.exe] と入れて [google検索]ボタンを押す

490:デフォルトの名無しさん
07/10/26 11:20:18
ホームラン級の馬鹿ですね

491:デフォルトの名無しさん
07/10/26 11:26:08
つか、ここに書いてあるやん。
URLリンク(msdn.microsoft.com)

main()
{
ShellExecute(NULL, "open", "C:\\Documents and Settings\\NEC-PCuser\\Favorites"
, NULL, NULL, SW_SHOWNORMAL);
}


492:デフォルトの名無しさん
07/10/26 11:30:25
>>489
ShellExecute(hWnd, "explore", "パス", NULL, NULL, SW_SHOWNORMAL);
だね

493:デフォルトの名無しさん
07/10/26 12:17:05
で、マイコンピュータのパスの調べた方も教えてやれよ

494:デフォルトの名無しさん
07/10/26 12:19:47
「教えてやれよ」 とは何だよ。
人にモノを尋ねるときは、「教えてください」 だろ

495:デフォルトの名無しさん
07/10/26 12:40:10
なんとなく教えてくれてるっぽい人どうも

全部自分でなんとかなりました。

496:デフォルトの名無しさん
07/10/26 14:30:27
マイコンピュータをユーザー名だけで決めうちはどうかと

497:デフォルトの名無しさん
07/10/26 14:39:24
気になるから便乗するけどマイコンピュータのパス(?)は環境変数
USERPROFILEでいいんですか?

498:デフォルトの名無しさん
07/10/26 15:59:07
調べたけど、マイコン他特殊フォルダはパスじゃない。
レジストリのIDみたいなの

499:デフォルトの名無しさん
07/10/26 17:52:11
おまいら降参か?ホレ

ShellExecute(NULL, "explore", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", NULL
, NULL, SW_SHOWNORMAL);


500:デフォルトの名無しさん
07/10/26 18:40:24
降参も何も、ほぼ答え出た時点で終ってるのに

501:デフォルトの名無しさん
07/10/26 18:43:59
「おまいら降参か?ホレ」 とは何だよ。
「ググりました。これで合っていますか?」 だろ

502:デフォルトの名無しさん
07/10/26 18:54:41
その長ったらしいのいちいち憶えてるわけにいかないから
特殊フォルダ id でぐぐったら出てくることだけ知ってれば十分

503:デフォルトの名無しさん
07/10/26 19:03:58
clsidの前の::もいるんですか?

504:デフォルトの名無しさん
07/10/26 19:06:35
「ググれ」で済むならこのスレいらんだろ。

505:デフォルトの名無しさん
07/10/26 19:09:29
ググれで済むよ。ググる能力もない奴はプログラムやる資格ない

506:デフォルトの名無しさん
07/10/26 19:10:58
答え丸写ししなきゃできないならプログラミングは無理だから土方でもやったほうがいい

507:デフォルトの名無しさん
07/10/26 19:11:53
「ググれ」で済む程度の問題でこのスレに来るな

508:デフォルトの名無しさん
07/10/26 19:13:14
>>504
子供かよ

509:デフォルトの名無しさん
07/10/26 19:13:46
ありがとうございます

510:デフォルトの名無しさん
07/10/26 19:20:59
>>500-502
おまいら、何も泣く事は無いだろ。
ここは初心者スレなんだから、知らなくても恥にはならないぞ。

511:デフォルトの名無しさん
07/10/26 19:24:00
>510は >498に答え書いてあるのに気がつかない初心者

512:デフォルトの名無しさん
07/10/26 19:25:48
>>510
ここは初心者スレだけど初心者のお前が威張れる場所じゃない。

513:デフォルトの名無しさん
07/10/26 19:27:53
>>509
どういたしまして^^

514:デフォルトの名無しさん
07/10/26 19:43:06
>>511
ば~か、>>498 は無視されてるのに気づかないの?

515:デフォルトの名無しさん
07/10/26 20:14:44
とりあえずage厨の子供が一人いたということでFA?

516:デフォルトの名無しさん
07/10/26 23:25:56
なんでいつまでたってもSHGetSpecialFolderPathとか出てこないの

517:デフォルトの名無しさん
07/10/26 23:28:58
既に解決済みだから

518:デフォルトの名無しさん
07/10/26 23:32:14
>487

519:デフォルトの名無しさん
07/10/26 23:34:19
まだやってるのかよ、しつこいな。

520:デフォルトの名無しさん
07/10/26 23:38:56
>487

521:デフォルトの名無しさん
07/10/26 23:42:58
clsid直書きで解決ってどんだけー

522:デフォルトの名無しさん
07/10/26 23:45:47
馬鹿は心の隅で笑うのが鉄則
下手に指摘しても知恵を付けさすだけ

523:デフォルトの名無しさん
07/10/28 23:35:34
VS2005 Pro.を使用しています。
プロジェクトにクラスの追加を行う方法について困ったことがあります。
あるヘッダファイルに書かれているクラスをProjectに追加するにはどうすればいいでしょうか?普通はどのように追加するものでしょうか?
以下のようにするとコンパイルエラーになります。
1. ソリューションの作成
2. ソリューションにProject Aをクラスライブラリとして追加
3. Project Aにあるheader ”Common.hとします” を#includeで追加
4. ソリューションにProject Bをクラスライブラリとして追加し、同じようにCommon.hを#include
5. Main ProjectにProject AとProject Bを「プロジェクト」
-「参照の追加」で追加 ビルド
→Common.hで定義された型が再定義されました。というエラー。


524:デフォルトの名無しさん
07/10/29 02:33:01
ソリューションエクスプローラを開いて
「ヘッダー ファイル」 フォルダ を右クリックして「追加」->「既存の項目」でヘッダーを入れて
「ソース ファイル」 フォルダ を右クリックして「追加」->「既存の項目」でソースを入れて
クラスが必要なソースからヘッダーを include すればいい

525:デフォルトの名無しさん
07/10/29 02:36:03
アイタタタタタ・・・

526:523
07/10/30 00:39:16
返事が遅くなってすいません。調べてみると、public, privateが決まってくる
ような気がしました。
Main, ClassLibA, ClassLibBでヘッダファイルに書かれたClassZを
includeしたいと思います。ClassLibA, ClassLibB, ClassZはPublic ref
のクラスです。
ClassLibA, ClassLibBはクラスライブラリとして追加したものです。

Main Class・・・ClassLibA, ClassLibB
ClassLibA・・・ClassZ(includeで追加)
ClassLibB・・・ClassZ(includeで追加)

Main Class, ClassLibA, ClassLibBそれぞれでClassZで定義された
メンバを使いたいと思ってます。
ただし、上記でコンパイルすると、再定義警告となってしまいます。
ClassZをprivateにして、Main, ClassLibA, ClassLibBのClassで
includeするしかないでしょうか?
ClassZはClassLibA, ClassLibBを参照した場合にしか使わないので、
なるべくincludeという形で別includeにしたくないと思っております。

上記のように2つのdllから共通のクラスを使い、その2つのdllを使う
クラスがある場合はどのようなクラス構成、設定にするべきでしょうか?
長々と書いてしまってすいません。

527:デフォルトの名無しさん
07/10/30 01:00:03
.net かよ...

528:デフォルトの名無しさん
07/10/30 01:58:49
>>526
C++/CLIはスレ違いだよね
ClassZもdllにしたら?

とりあえず.netについて分かってない気が

529:デフォルトの名無しさん
07/10/30 19:38:00
VS2005でファイル操作をするためにfstream.hをインクルードしたいのですが、
ファイルを開けないと出るのですが、fstream.h以外に何かありますでしょうか?

530:デフォルトの名無しさん
07/10/30 19:44:11
fstream

531:デフォルトの名無しさん
07/10/30 19:58:49
#include <iostream>
#include <fstream>

void main(){
char buf[512];

// ifstreamのインスタンスを作る
// C言語のfopenと同じ
ifstream ifs("input.txt") ;

// ofstreamのインスタンスを作る
// C言語のfopenと同じ
ofstream ofs("output.txt") ;

// ifstreamのインスタンス(ifs)から1行読み込みbufに入れる。
while( ifs.getline( buf, sizeof(buf) ))
// ofstreamのインスタンス(ofs)を利用して読み込んだ内容を書き込む
ofs << buf << endl;
}
コンパイルエラーになるんですが、なぜですか?

532:デフォルトの名無しさん
07/10/30 20:20:16
バカじゃねぇの
using namespace std;

533:デフォルトの名無しさん
07/10/30 20:24:42
#include <iostream>
#include <fstream>
using namespace std;

void main(){
char buf[512];

// ifstreamのインスタンスを作る
// C言語のfopenと同じ
fstream ifs("input.txt" ,ios::in) ;

// ofstreamのインスタンスを作る
// C言語のfopenと同じ
fstream ofs("output.txt",ios::out) ;

// ifstreamのインスタンス(ifs)から1行読み込みbufに入れる。
while( ifs.getline( buf, sizeof(buf) ))
// ofstreamのインスタンス(ofs)を利用して読み込んだ内容を書き込む
ofs << buf << endl;
}

534:デフォルトの名無しさん
07/10/30 20:35:10
ありがとうございます。

535:デフォルトの名無しさん
07/10/30 20:50:33
>>532は無知の知を知らぬ無知

536:デフォルトの名無しさん
07/10/30 20:54:45
ググれば分かるレベルだろ
答えもしてない分際で答えた者をバカにするな

537:デフォルトの名無しさん
07/10/30 20:58:57
( ´,_ゝ`)プッ
たかが2chで簡単な答えを書いただけの癖に随分と偉そうですなあ

538:デフォルトの名無しさん
07/10/30 21:05:22
( ´,_ゝ`)プッ
たかが2chで簡単な質問を書いただけの癖に随分と偉そうですなあ

539:デフォルトの名無しさん
07/10/30 21:54:39
>>536
先に答えが出たので答えなかっただけ。
たまたま自分が答えを知っていたというだけで質問者を愚弄する者こそ愚者と知るべし。

540:デフォルトの名無しさん
07/10/30 22:06:49
たまたまってレベルじゃねぇぞ
お前どんだけレベル低いんだ

541:デフォルトの名無しさん
07/10/30 22:08:39
>>539
>答えもしてない分際で答えた者をバカにするな
日本語読める?

542:デフォルトの名無しさん
07/10/30 22:40:20
Q&A系スレッドを勝負に例えるなら
答えた者が勝ち。
答えられなかった者は負け。

答えられなかったのに捨てゼリフ吐くのはみっともない。
亀田3兄弟よりみっともない。

543:デフォルトの名無しさん
07/10/30 22:52:30
ここC++スレじゃないし

544:デフォルトの名無しさん
07/10/30 23:00:49

亀田3兄弟よりみっともない男

545:デフォルトの名無しさん
07/10/30 23:20:50
スレ違いは犯則負け

546:535
07/10/31 00:10:22
>>540
>質問者を愚弄する者こそ愚者と知るべし
 ~~~~~~
勝ち負けの問題じゃない。君こそ日本語を読め。
しかも、俺じゃない奴(>>543)すら攻撃するし。
自分以外は全員敵かよw

547:デフォルトの名無しさん
07/10/31 00:17:30
レス番間違ってるし
同一人物だと思ってるし
自分以外は全員敵かよw

548:デフォルトの名無しさん
07/10/31 00:27:48
( ´,_ゝ`)プッ
なら口ださなきゃいいのに>>547


549:デフォルトの名無しさん
07/10/31 02:53:50
picutureBox1とpicutureBox2があって、
picutureBox1 Clickの処理をpicutureBox2 Clickにも同じくさせたいんですが、
どうのようにすればいいでしょうか?


550:デフォルトの名無しさん
07/10/31 08:01:23
自分の使ってる物も分からんのか
スレ違いだ馬鹿野郎

551:デフォルトの名無しさん
07/10/31 08:39:39
C++/CLIはOKだろ。

>>549
PictureBoxの派生クラスを書けばいい。
追加 - クラス - C++クラス で作成、
ビルドした時点でツールボックスに追加されるので、
後は普通のPictureBoxと同じように配置すればいい。

552:デフォルトの名無しさん
07/10/31 08:43:14
専用スレがあるのにもったいない

553:デフォルトの名無しさん
07/10/31 09:28:52
VisualC++6.0ではMSDN入れないと型情報自動表示機能は使えないのでしょうか?

554:デフォルトの名無しさん
07/10/31 09:39:26
MSDNなんか参照しないよ

555:デフォルトの名無しさん
07/10/31 11:58:43
LRESULT から intに正しく変換する方法を教えてください

556:デフォルトの名無しさん
07/10/31 12:28:14
intでキャスト

557:デフォルトの名無しさん
07/10/31 16:25:21
Windows XP sp2
Visual C++ 6.0

フォームの中のボタンを押すとWindowsキーを押したようにしたいと思っています。
フックして仮想キーコードを取得するところまででき,Windowsキーのコードは確認できたのですが,
そこからWindowsキーを押したように見せる方法がわかりません。
どうすれば,Windowsキーを発行することができるんのでしょうか。


558:デフォルトの名無しさん
07/10/31 16:36:42
WM_LBUTTONDOWNでも送りつけてみたら?

559:デフォルトの名無しさん
07/10/31 17:00:16
>>558さん
お返事ありがとうございます。

>WM_LBUTTONDOWNでも送りつけてみたら?
実際にはどのような関数を使えばいいのでしょうか。

560:558じゃない人
07/10/31 17:14:36
うーん。PostMessage()で、WM_KEYDOWN(WM_SYSKEYDOWN?)を送るというアイデアぐらいしか
思いつかない。

561:デフォルトの名無しさん
07/10/31 17:20:40
>>559
>実際にはどのような関数を使えばいいのでしょうか。
PostMessage()

562:557
07/10/31 17:29:05
>>560さん,>>561さん
ありがとうございます。
WM_KEYDOWN(WM_SYSKEYDOWN?)とPostMessage()
の使い方がわからないので探してみます。

名前さえもわからない状態だったので,とてもうれしいです。
うまくできたら,ご報告させて頂きます。



563:デフォルトの名無しさん
07/11/01 08:43:17
文字コードがバラバラのファイルを
同じ文字コードに統一したいのですが、
どのように処理したらいいのでしょうか?

ちなみに、VC2005です。

564:デフォルトの名無しさん
07/11/01 08:50:42
文字コード判別→変換

565:563
07/11/01 08:53:17
>>564 すばやい回答ありがとうございます。
文字コード判別になにを使えばいいでしょうか?

566:デフォルトの名無しさん
07/11/01 08:57:40
Windows的にはMLang。
だけどnkf使った方が楽。

567:563
07/11/01 09:05:27
.NET の方にはなにかないですか?

568:デフォルトの名無しさん
07/11/01 10:39:24
スレ違い

569:デフォルトの名無しさん
07/11/01 11:13:48
>>567
死ね

570:デフォルトの名無しさん
07/11/01 13:32:02
>>567
死ね

571:デフォルトの名無しさん
07/11/01 14:09:14
>>567
死ね

572:デフォルトの名無しさん
07/11/01 14:38:35
>>567
生きろ

573:デフォルトの名無しさん
07/11/01 18:31:21
>>567
C++なんだから、そこだけネイティブで>>566とすればいいじゃない。

574:デフォルトの名無しさん
07/11/02 09:24:11
WM_CREATEの中でBeginPaintって出来ませんか?
WM_PAINTじゃなく、CREATEの中でLineToとか一度だけの表示をしてしまいたいんですが・・

575:デフォルトの名無しさん
07/11/02 10:27:48
いちいち聞かなくても好きなところで書けばいいよ
自分でやってみればわかるから

576:デフォルトの名無しさん
07/11/02 16:09:17
ウィンドウを常に画面の右上に固定や左下に固定で表示させるのはどうしたらいいでしょうか?
CreateWindow内で座標を指定するのではなく、どのPCで開いてもちゃんと画面左上などの位置にぴったり表示させたいんです。
分かる方お願いします。

577:デフォルトの名無しさん
07/11/02 16:13:46
座標を指定する

578:デフォルトの名無しさん
07/11/02 16:20:15
その座標を指定するというのはディスプレイサイズが分かる関数があるんでしょうか?

579:デフォルトの名無しさん
07/11/02 16:53:56
VC++って何?ってところから勉強したいんですけど、オススメの書籍ありますか?
C#は1年くらいやったんですが、VC++は初めてで・・・

580:デフォルトの名無しさん
07/11/02 19:25:33
VC++って何?という状況だと勧められるものはない

581:デフォルトの名無しさん
07/11/02 21:40:14
>>574-575
これくらいは、実験するよりも仕様を確認するほうがいいと思う。
URLリンク(msdn2.microsoft.com)

582:デフォルトの名無しさん
07/11/02 21:45:32
>>578
GetMonitorInfoとかそこら辺を使う

583:デフォルトの名無しさん
07/11/02 22:47:14
GetWindowRect で十分な気がする

584:デフォルトの名無しさん
07/11/02 23:18:39
初心者スレでいきなり敷居の高い話をし始める>>582


585:デフォルトの名無しさん
07/11/03 07:52:54
MonitorFromWindowで自分のいるモニタのハンドルとって、
GetMonitorInfoでそのモニタの作業領域を取得するだけ。
簡単だろ。

586:デフォルトの名無しさん
07/11/03 09:20:02
GetWindowRect一回呼ぶだけ

587:デフォルトの名無しさん
07/11/03 12:32:56
GetWindowRectのウィンドウハンドルには、何を指定すればいいのですか?

588:デフォルトの名無しさん
07/11/03 13:54:10
RECT rect;
GetWindowRect(GetDesktopWindow(), &rect);

589:デフォルトの名無しさん
07/11/04 02:31:20
Visual C++6.0でSTL(mapやset)を使ったコードをデバッグ情報を生成する
オプションを指定してコンパイルすると、鬼のように長くてたくさんの
警告が出ます。警告の内容は、"デバッグ情報で識別子が255 文字に切り
捨てられました(warning C4786)"というものです。

この問題を回避するには次の選択肢の中から選ぶしかないのでしょうか?

(1) 警告を表示しないようにする → 他の便利な警告を受け取ることができない。
(2) デバッグ情報を生成しない。→ デバッガが使えない。
(3) 死ぬほどたくさんの警告メッセージを我慢。→ 非常につらい。
(4) STLを使わない。→ それは無理。


590:デフォルトの名無しさん
07/11/04 02:36:06
#pragma warning (disable: 4786)

が常套手段

591:589
07/11/04 03:54:29
>>590
うまくいきました。感謝します。

592:デフォルトの名無しさん
07/11/05 16:44:09
URLリンク(tserve01.aid.design.kyushu-u.ac.jp)
のお絵かきソフトを作るページを参考にしてるんですが
「ToolBar」の「IDR_MAINFRAME」のボタンとIDを書き換えても
ページに書かれているようなIDに対応するような関数が作られず
ボタンも描いたように表示されず灰色の使用不可のような状態
になってしまいます。
VS2005stdです。
どなたか、わかるかた、VS2005ではどうしたらよいか教えていただけないでしょうか。
お願いします。

593:デフォルトの名無しさん
07/11/05 16:50:01
>>592
マルチ死ね

594:592
07/11/05 16:56:38
マルチしてすみません。
ただ「くだすれVisualC++(超初心者用)」のほうが1000レスいったので
こちらでも質問ささしてもらいました。
すいませんが教えてください。

595:デフォルトの名無しさん
07/11/05 17:34:30
ツールバーにハンドラ追加する方法なら少し前に誰かに教えたから過去ログ見ればいい
ウイザードから追加する方法は知らん

596:デフォルトの名無しさん
07/11/05 19:09:58
メモ帳で[F5]を押すと日付と時刻がペーストされますが、
Visual C++のエディタでも同じことができるでしょうか?
できるなら方法を教えてください。

597:デフォルトの名無しさん
07/11/05 19:32:57
自分で[F5]を押せば分かるだろ?

598:デフォルトの名無しさん
07/11/05 19:59:39
Std以上のVCならマクロで簡単に出来るよ。もちろんキーボード割り当ても可能。

599:デフォルトの名無しさん
07/11/05 20:40:23
unicodeにすると
char→CStringをどうやって渡すのかわからないです。
ヒントでいいから教えていただければ、、つД`)

600:デフォルトの名無しさん
07/11/05 20:46:28
CStringのコンストラクタ

601:デフォルトの名無しさん
07/11/05 21:21:27
CString は TCHAR データ型をもとにしています。
プログラムでシンボル _UNICODE が定義されたときは、
TCHAR 型は 16 ビット文字型の wchar_t 型として定義されます。
それ以外は、通常の 8 ビット文字型 char で定義されます。
Unicode 環境下では、CString オブジェクトは 16 ビットの文字で構成されます。
Unicode 環境以外では、CString オブジェクトは 8 ビットの文字で構成されます

602:599
07/11/05 22:46:31
>600
>601
ありがとう。
ちょいとそれを頭に入れてググル先生に聞いてみます。

603:デフォルトの名無しさん
07/11/05 23:04:43
初心者は黙ってVC++でMFCでウィザードでサクサクやるのがいいですよね?


604:デフォルトの名無しさん
07/11/06 00:14:49
いい
というのは何を根拠として良いと判断するんですか?>>603


605:デフォルトの名無しさん
07/11/06 00:17:45
VC++がどーだ、MFCはあーだこーだ言ってないで、
サクサク作れるんだから作った方が勉強になるという意味で、
いいと思いますが。


606:デフォルトの名無しさん
07/11/06 00:26:12
サクサク作れない

607:デフォルトの名無しさん
07/11/06 00:32:03
MFCウイザードでさくさく作れる香具師は、
MFCウイザードがなくたってサクサク作れる。

608:デフォルトの名無しさん
07/11/06 07:54:50
MFCキライなヤツが増えたな。

609:デフォルトの名無しさん
07/11/06 18:13:37
ダメ!
MFCで人生を棒に振った悲しいプログラマが、いったい何人いることやら。
MFC犠牲者慰霊の塔の下に眠っている幾千幾万のプログラマたちが
成仏できずに毎晩、悲痛なうめき声をあげて助けを求めているというのに。
マイクロソフト社さえ見放した禁断の果実MFCを、なぜ今更?
もうこれ以上、犠牲者が増えるのを善良な市民として見ていられない。
忘れなさい。MFCの事は忘れなさい。記憶の底から消し去るのです。
MFCなんて見なかった。聞かなかった。この世に存在しなかった。
いいですね?わかりましたね?


610:デフォルトの名無しさん
07/11/06 21:54:51
ダメ! 
.NET で人生を棒に振った悲しいプログラマが、いったい何人いることやら。
(ry

611:デフォルトの名無しさん
07/11/06 22:13:12
VC++でWin32アプリならいい?

612:デフォルトの名無しさん
07/11/06 23:47:36
VisualC++6 と VisualC++.NET の差がわかりません
差はないのでしょうか?
今から始めるならVC.netでいいんでしょうか?
VCに興味を持っている理由は .NET Frameworkとかの
ランタイムのインストールをしなくても動くEXEが作れるらしいから、と
DirectXでゲーム作ろうとしてもC++の参考書しかないから、なのですが
VC.NETで作ったEXEは .NET Frameworkがないと動かないものになるのですか?


613:デフォルトの名無しさん
07/11/06 23:56:01
Visual C++ .NET 2002はVisual C++ 7.0、.NET 2003は7.1相当。
.NET抜きにして、C++コンパイラとしても開発環境としても機能は上がっている。

.NET Framework使うプロジェクトを作らなければ、
Visual C++ .NET 2002/2003でも.NETなしのネイティブプログラムが作れる。

ちなみに、現在の最新版は2005 (8.0)。ただ、上に書いたような事情は変わらず。

614:デフォルトの名無しさん
07/11/07 00:11:39
>>613
ありなとうございまつ
早速VC++2005EEをインスコしますた

しかしネットだと.NET Framework使うプロジェクトか
HalloWorldみたいなウインドウすら出てこないのの解説ばかりでつなorz
猫でもわかるプログラミングでも観ることにするでつよ

615:デフォルトの名無しさん
07/11/07 00:15:34
>HalloWorld
早くもオリジナルな要素を取り入れてるのか

616:デフォルトの名無しさん
07/11/07 00:24:29
>>614
SDK入れなウィンドウの表示なんてできへんで~

617:デフォルトの名無しさん
07/11/07 00:59:03
すみませんが質問です。

大量のログをとれるようなDOSプロンプトというか、コンソールエミュレータと
いうようなものを作る場合、リッチエディットコントロールを使うのがよいので
しょうか?

それともwin32アプリにしてしまって、入出力をリダイレクトするのが良いので
しょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch