■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

VisualC++相談室 【7】
251 名前:デフォルトの名無しさん :02/04/19 18:25
VBプログラマのためのVC++って本読んでVBで使えるATL COMをC++で作ってみました。
VBで走らせてみると、”ActiveXはオブジェクトが作れません”とかなんとかいわれる。
仕方ないから本のサンプルコードコピって試しても同じだった。

状況;
本の環境:NT,
自分環境:98
レジストリ登録は行われてる。
VBのオブジェクトブラウザでも見れる。
VB上でのオブジェクトの宣言は問題ない。
メソッドやプロパティにアクセスすると上記のエラーが出る。

って感じなんです。散々調べたんですがもうギブです。
誰か原因&解決法教えて下さい。

252 名前:デフォルトの名無しさん :02/04/20 00:20
誰か助けて下さい。
関数から抜ける時に _BLOCK_TYPE_IS_VALID っていうアサートが出ます。
ランタイムの delete 演算子が多重 delete 等の時に発している警告のようなのですが、
何故でるのかがわからないのです。
「関数から抜ける時」に発生するので、auto 変数だと思うのですが(ちなみに auto_ptr などは一切使っていません。)

これはどういう状況の時発生するのでしょうか?
指針のような物でもよいのでアドバイスを頂けないでしょうか?
よろしくお願いいたします。



253 名前:デフォルトの名無しさん :02/04/20 00:44
>>252
メモリリークかアクセスしてはいけないメモリ(確保したメモリの外部)にアクセスしてる可能性
コードとにらめっこしませう


254 名前:252 :02/04/20 00:45
事故レスです。
やっぱりただの勘違い( delete したポインタを NULL クリアし忘れ…)
という凡ミスでした。

大変お騒がせしました。

255 名前:252 :02/04/20 00:48
あう、丁度レスを頂いた所だったのですね。
>>253
レスありがとうございます。
「そろそろ C++ も解ってきたな。」などと増長している所で
それ以前のレベルの間違いをしてしまいました^^;
精進したいと思います。
ありがとうございました。

256 名前:デフォルトの名無しさん :02/04/20 00:49
char *p;

p = new char [4];
p[0] = 'a'; // OK
p[1] = 'b'; // OK
p[2] = 'c'; // OK
p[3] = 'd'; // OK
p[4] = 'e'; // アサート発生要因!!


257 名前:デフォルトの名無しさん :02/04/20 00:52
>>やっぱりただの勘違い( delete したポインタを NULL クリアし忘れ…)
正確にはそれが要因ではなくて
解放したあとの変数にアクセスしてるのが問題ですかね・・・


258 名前:デフォルトの名無しさん :02/04/20 01:49
CFileDialogについて質問があります。

CFileDialog dlg(FALSE, NULL, strPath,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"テキスト|*.txt|html|*.html|log|*.log||");

みたいなファイルダイアログを作成したとします。
リストボックスでテキスト、html、logと
フィルタの拡張子を選ぶと、自動的にその拡張子を
つけるようにするにはどうすればいいでしょうか?



259 名前:デフォルトの名無しさん :02/04/20 09:44
>>254 >>257
もっと正確にいうと、「手動でdeleteしてNULLクリアする」という
クラス設計がおかしいんだけどね。
auto_ptrも「使ってない」って言ってるけど、「使いこなせない」の
間違いのような気がする。
252は「C++を極めるまで後5歩くらい」って感じてるんだろうけど、
少なくともあと100歩は進まないといかんぞ。「少なくとも」、だ。

260 名前:デフォルトの名無しさん :02/04/20 09:54
今年から授業でVC++使うことになりました
まだ皆さんがなにいってるかわかりませんがついてけるようにがんばります。

261 名前:デフォルトの名無しさん :02/04/20 16:37
MFCのSDIプログラムを起動するとタイトルに
「無題 - XXX」みたいに勝手に表示されてしまいますが
これを好きな文字列にするにはどのタイミングでSetWindowTextしたらいいですか?
OnCreate でやっても反映されません。
教えて!


262 名前:デフォルトの名無しさん :02/04/20 16:41
FlexGridでセルに直接入力する技を教えてくれ。

263 名前:デフォルトの名無しさん :02/04/20 17:54
>>261
PreCreateWindowで
cs.style &= ~(FWS_PREFIXTITLE | FWS_ADDTOTITLE);


264 名前:デフォルトの名無しさん :02/04/20 19:02
>>263

ありがとう!!

265 名前:デフォルトの名無しさん :02/04/21 03:01
エクスプローラで「?」マーク入りのファイルを作ろうとすると
「次の文字は使えません。」ってメッセージが出ますがその真似をするにはどうしたらいいですか?
ファイル管理ソフトでユーザーが入力したファイル名に不正な文字が含まれているかチェックするAPIは?
自分で1文字ずつ調べるしかないですか?


266 名前:デフォルトの名無しさん :02/04/21 03:13
MFCならCString::SpanExcludingで
SpanExcluding(_T("\/:,;"));
みたいな感じでいっぺんに調べられるけど...


267 名前:デフォルトの名無しさん :02/04/21 03:22
MoveFileEx()のエラーを調べる、つうのはどうよ。
適当なので無視してOK。

268 名前:デフォルトの名無しさん :02/04/21 03:55
shlwapiの
UINT PathGetCharType(TUCHAR ch);
が使えるっぽい。
98or2000以上だけど。

269 名前:デフォルトの名無しさん :02/04/21 16:23
VCで今からプログラムを書きはじめようかというところなんですが、
ソースファイルをフォルダ分けしようとしているんですが、
ヘッダーファイルをインクルードするときに
#include "../Control/Scene.h"みたいになり、ややこしくなります。
なにかいい方法はないでしょうか?

270 名前:デフォルトの名無しさん :02/04/21 16:40
>>269
プロジェクトの設定をしましょう。
インクルードパスの設定できますよ。


271 名前:デフォルトの名無しさん :02/04/21 17:53
>>270
ありがとう。おかげさまでインクルードすんの楽になったよ。

272 名前:デフォルトの名無しさん :02/04/22 04:25
>>251
VB側でCreateObjectでロードしたのか
コントロールとして読みこんだのか
どっちなんでしょう?
コントロールなら適切なインターフェイスが実装されてないとか・・・


273 名前:チビちゃん :02/04/22 11:31
age

274 名前:ちびちゃん :02/04/23 00:24
age

275 名前:ちびっちゃった :02/04/23 00:55
age

276 名前:チビちゃん :02/04/23 11:20
あげ。
だれも書き込まない。
VCもすっかり下火ですね…

277 名前:デフォルトの名無しさん :02/04/23 14:03
VC使ってるやつはそれなりにスキルあるからぶび厨みたいに
なんでも人に聞かないで自分で解決できるからだと思われ。

278 名前:デフォルトの名無しさん :02/04/23 16:15
つか、C++、MFC、Win32APIのスレでだめなら(以下略)

279 名前:デフォルトの名無しさん :02/04/23 17:14
リストボックスのスクロール幅は、
CListBox::SetHorizontalExtent()(LB_SETHORIZONTALEXTENT)で設定しますが、
これをリストボックス中の項目の長さに合わせて増減させるには、どのような
インプリメントをすれば良いですか?
//要は、エディットコントロールの水平オートスクロールみたいなのをやりたい

280 名前:デフォルトの名無しさん :02/04/23 19:38
msdev が自動生成するクラス情報ファイル(拡張子 .ncb) を
自分で作れるツールってどこかに出てますか?


281 名前:デフォルトの名無しさん :02/04/23 20:45
.NETが出たので、VB同様MFCも逝ってよしですか?

age

282 名前:デフォルトの名無しさん :02/04/23 20:46
>>281
ふざけるな

sage

283 名前:デフォルトの名無しさん :02/04/24 00:27
>>280
作れば?

VCのマイナーバージョンが変わるたびに書式が変わるかも知れない
データファイルを自分で作ろうというのなら誰も止めはしないよ。


284 名前:デフォルトの名無しさん :02/04/24 01:05
True DB Gridのコントロール、無理矢理使って成功した人、います?

285 名前:デフォルトの名無しさん :02/04/24 02:02
GetProfileInt()が
ChogeApp::Initinstance()内で
必ず失敗します。
なんででしょうか?


286 名前:デフォルトの名無しさん :02/04/24 02:11
>>285
SetRegistryKey()をコールする前に使用している。


287 名前:デフォルトの名無しさん :02/04/24 10:08
>>286
>Thx!ソース確認します

288 名前:デフォルトの名無しさん :02/04/24 11:20
>>286
まんまでした。あはずかちい。。。

289 名前:デフォルトの名無しさん :02/04/24 17:03
学校でC++をやっているから、家で補習でもしようかなと思いVisual Studio.netを買ったんだけど、
「プロジェクト : error PRJ0016 : このユーザーのセキュリティ設定が原因で、プロセスを作成できません。これらの設定はビルドで必要です。」
とまあ、こんなエラーがでてビルドが出来ないんですが、どうやったらいいんですか?

290 名前:デフォルトの名無しさん :02/04/24 17:10
>>289 MSで検索して。出てる。

291 名前:デフォルトの名無しさん :02/04/24 17:10
>>289
割れだろ

292 名前:デフォルトの名無しさん :02/04/24 17:11
もうFAQ化してそう。


293 名前:デフォルトの名無しさん :02/04/24 17:15
>>291
正解。
入手経緯や動機をいちいち書いてくるのはやましいことがある証拠

294 名前:デフォルトの名無しさん :02/04/24 17:38
>>293
言われて読み直してみると面白いなぁ。
確かに>>289はいらない情報ばっかで、不自然にみえてきた。

295 名前::02/04/24 17:40
いま始めたばかりで、HelloWorldの
表示とメニューバー押すとメッセージでハローワールド
って簡単なやつ作りました。

そんで、実際のプログラムはデバックフォルダにある「hello」の1個だけなんだよね。150kくらい。
コレ単体で動くんだよね。たとえばフロッピーにいれて他のパソコンに
コレだけもっていってもうごく?

あと、その他の8メガとかある大量のデータは作る工程のもので実際は関係ない?

296 名前:デフォルトの名無しさん :02/04/24 17:57
リリース版を作りなさい。

297 名前:デフォルトの名無しさん :02/04/24 19:29
>>290とか
KBで検索しろとか言うレスよく出てるけど、
MSのサイトで目的の情報探すのって結構難しくない?


298 名前:デフォルトの名無しさん :02/04/24 20:11
「KBを検索すれば見つかる」のがわかっただけでもありがたいが。

299 名前:かみ :02/04/24 20:38
ねーこの8メガってなんなの?

300 名前:デフォルトの名無しさん :02/04/24 21:05
>>299
神と言うよりはお上。
コンパイラにもいろいろ都合があるんだよ(リンクとか)。


301 名前:デフォルトの名無しさん :02/04/25 03:21
8MBっていうと、プリコンパイルヘッダーのことか?略してプリコ・・・なんて言わねーよ

302 名前:デフォルトの名無しさん :02/04/25 04:17
プリコンヘ

303 名前::02/04/25 16:06
質問。

VCでwindowsのスタートボタンみたいなコントロールを使いたいんだけど、
(リストの1個を選択する子リストが表示されるやつ)
あれって、何ていうこんとろーるなんでしょうか?
教えてください。
標準のコントロールでなくActiveXですかね?




304 名前:日下部圭子 ◆Z/ID97yU :02/04/25 16:10
>>303
普通のメニューを使えばサブメニューも使えるけど、
それではなくて?

305 名前:303 :02/04/25 16:15
>304
回答ありがとうございます。
メニューでなく、見た目的にコンボボックスとか、
スタートボタンみたいに押下するとリストが出る感じのものがほしいのです。
メニューって、フレームにしかつかないですよね?



306 名前: :02/04/25 16:31
>>305
ボタン押下時にポップアップメニュー出せばいいじゃん

307 名前:プロジェクトマネージャー :02/04/25 16:56
あのー質問なんだけど
とりあえず今はメモ丁みたいな、なんもないスケルトン作って
そこに線や円を書かせたりしている、よくVC++の本に
のってるようなことやってるんだけど、

座標x,0で for文でxにx++してって、例えば「●」を、
ヨコにスルーっと動いていくアニメを作りたいんだけど、
一瞬で処理してしまって、アニメどころじゃないです。
そんでベーシックでいうwait50 みたいなスローにさせる
プロフラムってあるの?

308 名前:日下部圭子 ◆Z/ID97yU :02/04/25 17:02
>>307
そういうのはタイマーイベントを使って処理するのが普通です。
(Sleep()でウエイトを入れてもいいけど)

309 名前:プロジェクトマネージャー :02/04/25 17:04
タイマーイベント?

Sleep(30);

って1文いれると遅くなる?

310 名前:308ではないが :02/04/25 17:20
>>309
タイマーイベントについては、SetTimer()とWM_TIMERを参照。
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_settimer.htm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/htm/_wcesdk_win32_wm_timer.asp
MFCならCWnd::SetTimer()とCWnd::OnTimer()。
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cwnd.3a3a.settimer.htm
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cwnd.3a3a.ontimer.htm

Sleep()は指定されたミリ秒だけ実行を中断する。
http://www.microsoft.com/JAPAN/developer/library/jpwinpf/_win32_sleep.htm

311 名前:310 :02/04/25 17:22
>>310
WM_TIMERはこっちの方がいいか。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/CommCtls/winui/timers_1w6q.asp

312 名前:プロジェクトマネージャー :02/04/25 17:23
>>310
おーどのライブラリCDいちいちいれないと見れないとおもってたら
ネットでみれるんだ。ドーモ。!

313 名前::02/04/25 17:40
>304
>306
ありがとうございました。
ポップアップメニューの存在を知りませんでした。
早速サンプル作って持っていったら...
SE:「そんなんじゃなくコンボボックスから子リストでるやつないの?」
呪まーす。



314 名前:デフォルトの名無しさん :02/04/25 23:36
NULL文字セパレータ、ダブル NULLターミネートな文字列を扱うのに適した
クラスみたいなのってある?

315 名前:デフォルトの名無しさん :02/04/25 23:40
>>314
扱うってどういう風に?


316 名前:314 :02/04/26 00:12
失礼。ostrstream で解決しますた。

317 名前:デフォルトの名無しさん :02/04/26 02:21
>>313
ムダ飯喰らいのSEだな。
「本当のコンボボックスとはこれのことなのです。」とかなんとか
テキトーなことでも言っちまえ。


318 名前:デフォルトの名無しさん :02/04/26 20:27
吃驚した!
VisualC++って
stdio.hを読み込めないの!?!?

これはC++だから読めないの?

319 名前:デフォルトの名無しさん :02/04/26 20:33
んなわけねー。

320 名前:デフォルトの名無しさん :02/04/26 20:37
よみこめたけど
"StdAfx.h"を読み込んで、
StdAfx.hファイル内で、stdio.hを読み出さないと、
「プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。」
こんなエラーがでる。
なんで??
厨な質問でごめん

321 名前:デフォルトの名無しさん :02/04/26 21:14
VCでWinsockを扱うプログラミングを紹介してるページない?
探し方が悪いのかグーグルでみつからん

322 名前:デフォルトの名無しさん :02/04/26 21:52
>>320
「プリコンパイルヘッダーを使う」という設定になってると、デフォルトで stdafx.h を読み込む
ようになってるよ。この設定のときに、stdafx.h をインクルードしていないと、
エラーになります。それが嫌なら、プリコンパイルヘッダーを使わないようにしよう。


323 名前:デフォルトの名無しさん :02/04/26 22:16
初心者ですみませんが
120、30、1200を各々五桁、4桁、10桁で表示するプログラムの作り方がわかりません
教えてください。

324 名前:デフォルトの名無しさん :02/04/26 22:25
>>321
あんまりネット上じゃ詳しく説明してるとこしらないなぁ
「WinSock2.0プログラミング」 翔泳社
読んだら為になるとおもうよ

325 名前:デフォルトの名無しさん :02/04/26 22:34
>323
printf("%5d, %4d, %10d", 120,30,1200);
ってことか?

326 名前:デフォルトの名無しさん :02/04/26 23:40
>>325
いや、120を五桁、三桁、10桁
30を五桁、4桁、10桁
1200を五桁、4桁、10桁
と表示したいのです。

327 名前:デフォルトの名無しさん :02/04/26 23:45
は?
120(三桁)を0埋めで五桁にしたいってこと?
printf("%.5d",120);
ってことかいな?
VCと関係ないけどまいっか

328 名前:デフォルトの名無しさん :02/04/26 23:48
>>326
日本語を勉強しましょう。

329 名前:デフォルトの名無しさん :02/04/26 23:49
>>327
てことは
printf("%5d\n",120);
printf("%3d\n",120);
〜〜〜
って9回やらなきゃだめなの?
三つぐらいにまとめれるかなと思ったんだど
まあいいやさんくす

330 名前:デフォルトの名無しさん :02/04/26 23:52
すまん。しくじった。
323で書いてるじゃん。
変数を勉強しなせ

331 名前:デフォルトの名無しさん :02/04/27 00:11
>329
"%3d\n"の所とかをsprintfとかで作るですよ。関数にでもすればすっきり。
void ketaput( int keta, int num )
{
char buf[16]; // 適当
sprintf( buf, "%%%dd\n", keta );
printf( buf, num );
}
んな感じで。宿題っぽい気がせんでもないなw

332 名前:デフォルトの名無しさん :02/04/27 00:22
>326
>いや、120を五桁、三桁、10桁
>30を五桁、4桁、10桁
>1200を五桁、4桁、10桁
if( strcmp( str, "120") == 0)
 return "五桁、三桁、10桁 ";
if( strcmp(str, "30") == 0 )
return "五桁、4桁、10桁";
if( strcmp(str, "120") == 0 )
return "五桁、4桁、10桁";

333 名前:デフォルトの名無しさん :02/04/27 00:31
新手の知恵試しか?

334 名前:デフォルトの名無しさん :02/04/27 00:39
五桁、4桁、三桁、10桁と、表記がバラバラなのには意味があるのだろう。

335 名前:デフォルトの名無しさん :02/04/27 00:48
struct {
 int val;
 int dig[3];
} tbl[] = {
 {120, {5,3,10}},
 {30, {5,4,10}},
 {1200, {5,4,10}},
};
int i, j;
for (i=0; i<3; i++)
 for (j=0; j<3; j++)
  printf("\"%*d\"\n", tbl[i].dig[j], tbl[i].val);
VC++ 全然関係ないな…スマソ

336 名前:デフォルトの名無しさん :02/04/27 01:51
>>331
majidewarata。

printfの%桁数指定で * が使えるぞ。
きちんと調べて見ろ。


337 名前:VB厨毒 :02/04/27 04:02
CHDocVwCtrl ってOCX?dll?
どこにあるんだ?
いろいろ参照しても
オブジェクトブラウザに出ないw
入ってないのかな?
…でも どんなもの?

338 名前:デフォルトの名無しさん :02/04/27 04:27
SHDocVw

339 名前:デフォルトの名無しさん :02/04/27 04:46
>>338それは WebBrowserコントロールの元じゃんw

うんとね
検索でたまたま 見つけたの
http://www.users.gr.jp/ml/archive/com/1978.asp
ここで言ってるCHDocVwCtrl って あるの?
だって オレだってVS6.0プロ入れてんだよ 一応 VBとInterDevしか使わないけどw
ほら あれが したいの 
WebBrowserコントロールのカスタマイズ!!
画像読まないとか、スクリプト実行させないとか なんとかインターフェイスいじるでんしょ
VBでできないかな?

みつかんないんだよね だまされたのかw

340 名前:デフォルトの名無しさん :02/04/27 05:05
>>321
WinSock生でそのまま使うの?それともMFC使うの?
ソケット周りだけはMFC使うと鼻汁出るほど便利。
生Socketはめんどい。

341 名前:デフォルトの名無しさん :02/04/27 10:06
>336
そんなのがあるのね・・・逝ってきまふ

342 名前:デフォルトの名無しさん :02/04/27 12:17
VC++6.0 Professional Edition
をインストールしようとすると

c:\WINDOWS\System32\MSJINT35.DLL
c:\WINDOWS\System32\VBAR332.DLL

がないって言われちゃうんですけど、
これは重大なことでしょうか?
無視しちゃっても問題ないでしょうか?

OS は XP を使ってます。

よろしくお願いします。

343 名前:デフォルトの名無しさん :02/04/27 17:09
今日パソコンショップに行ったら.NETが大々的に売り出されていました。
VCは「4月いっぱいで製造中止!お求めの方はお急ぎください。」という張り紙付きで隅っこのほうに置いてありました。
VCって死滅してしまうんですか?
VC使いは数年後には現在の「COBOLおじさん」みたいな扱いを受けるのでしょうか?
不安で夜も眠れません。
どうしましょう?


344 名前:デフォルトの名無しさん :02/04/27 17:11
VC++.netがあるが?

345 名前:デフォルトの名無しさん :02/04/27 17:13
>>343
数年後になってもVC(というかMFCorWINAPI)使いならばそういう扱いを受けるだろうね。
VCもできるし、.NETも出来るなら問題あるまい。

346 名前:デフォルトの名無しさん :02/04/27 17:14
>>343
それはないと思うが・・・

347 名前:デフォルトの名無しさん :02/04/27 19:32
通常の配列は、デバッグ時に全ての要素を
クイックウォッチで確認することができますが、
CArrayやCObArray系のクラスで作成した配列ではそれができません。
何か別に方法があるのでしょうか。
今はとりあえず、確認したい要素をintやCStringの変数に写していますが、
これはさすがに不便です。

あと配列ついでにもう1つ。
CArray、CObArray系で多次元配列って作れますか?

348 名前:デフォルトの名無しさん :02/04/27 20:00
>>347
矩形配列は無理だけどでこぼこ配列なら可能。

349 名前:デフォルトの名無しさん :02/04/27 20:12
>>340
MFCを使えば鼻汁出るほど便利なのか・・・
Cから生で使うには本買った方がいいかな・・・
本屋逝ったけど売ってなかった。
取り寄せしかないか
どなたかいい本してくれませんか
要求ばかりで申し訳ない。

350 名前:デフォルトの名無しさん :02/04/27 20:20
>>348
凸凹配列ってどんな配列ですか?
検索しても1件しかヒットせず……。

351 名前:デフォルトの名無しさん :02/04/27 20:22
その一件を読め

352 名前:デフォルトの名無しさん :02/04/27 20:40
>>351
まー、読んでみて。
ttp://www.kgk-kak.co.jp/seihin/pdf/KGK%20TankSystem.pdf

353 名前:デフォルトの名無しさん :02/04/27 22:28
>>349
たしかMAGURO Onlineあたりにサンプルがあったと思うんだが、今は休止中で
過去のコンテンツが見れないね。

とりあえず、TCPの簡単な流れだけ書いておくと、まず最初はWSAStartup()で
WinSockの初期化。これは必ず必要。終了時は同様にWSACleanup()。

■サーバ側
socket(AF_INET,SOCK_STREAM,0) ソケットハンドルを得る。引数はこんな感じで
bind() 通信に使用するポートを指定する。IPアドレスはINADDR_ANYでいい。
listen() クライアントからの接続を待つ。
accept() 接続を受理する。
send(),recv() データの送信、受信
closesocket() 通信終了

■クライアント側
socket(AF_INET,SOCK_STREAM,0) ソケットハンドルを得る。引数はこんな感じで
connect() サーバに接続する
send(),recv() データの送信、受信
closesocket() 通信終了

使用する関数と順番はこんな感じ。
ただし、send()やrecv()はデータが来てないときや送信できないときに呼ぶと
ブロックして戻ってこないから注意。select()でポーリングするか、WSAAsyncSelect()
でウィンドウメッセージで通知してもらうことで回避できる。

その他の便利な関数を挙げておくと
gethostbyname(),WSAAsyncGetHostByName() ホスト名からIPアドレスを取得
htonl() 32ビット値をネットワークオーダーに変換(エンディアンの変換)
ntohl() htonlの逆
inet_addr() ドット区切りのIPアドレス文字列から32ビット値に変換
inet_ntoa() inet_addrの逆

354 名前:悩みつづけて3ヶ月! :02/04/28 03:11
下のようなちょっと大きめの3次元配列の定義の仕方を教えてください。

double val[3][100][100];

出来ないはずはないと思ったのですが、いざ定義してみると
ビルドはできるのですが実行ができないのです。
Cマスターの方々、この理由と解決策を宜しくお願いします。


355 名前:デフォルトの名無しさん :02/04/28 03:15
static double val[・・・

356 名前:デフォルトの名無しさん :02/04/28 03:19
なんだマルチか

357 名前:デフォルトの名無しさん :02/04/28 03:33
vector<vector<vector<double> > >で解決だ!

358 名前:デフォルトの名無しさん :02/04/28 03:35
環境がおかしい。
double三万個(240KB)くらいではスタックは余裕。

359 名前:悩みつづけて3ヶ月! :02/04/28 03:35
vector???
なんですか?それ?
無知で申し訳ないです。

360 名前:デフォルトの名無しさん :02/04/28 04:20
>vector???
>なんですか?それ?
>Cマスターの方々、この理由と解決策を宜しくお願いします。
ここはCスレじゃなくて、C++スレだよ。

361 名前:デフォルトの名無しさん :02/04/28 04:35
>360
しばらくすると、そこには、「VisualC++(C言語限定)スレ」の文字が‥‥

362 名前:初心者 :02/04/28 10:50
VC++てなんて読むんですか?

363 名前:デフォルトの名無しさん :02/04/28 10:55
びじゅあるしーぷらすぷらすと読むも良し。
ぶいしーぷらぷらと読むも良し。
えむえすしーと読むも良し。
発音を拒否しても良し。
ご自由に。

364 名前:初心者 :02/04/28 10:58
ありがとう!

365 名前:デフォルトの名無しさん :02/04/28 11:01
>>354
コンパイラは何? 実はVC++ 1.0 とか、LSIC試食版ってオチはない?

366 名前:デフォルトの名無しさん :02/04/28 11:23
>>365
VC++ 1.0 はいいとして、LSI-C はねーだろ。スレ違いだ。
そもそも、こいつは...
http://pc.2ch.net/test/read.cgi/tech/1019372139/61- とマルチし
てる奴で、しかもそっちで解決してるから無視でいいよ。

367 名前:デフォルトの名無しさん :02/04/28 12:31
>>350
遅レスでスマソ。
矩形配列ってのは int array[2][2]; (Cの2次元配列)
でこぼこ配列ってのは int *array[2] = { new int[4], new int[1] };(配列の配列)

つまり、CArray自体を2次元として扱うことは出来ないけど、CArrayの中にCArrayを要素として持てば、それっぽいものは出来るってこと。


368 名前:デフォルトの名無しさん :02/04/28 14:35
>>367
で、それをどうやってデバッグするの?

369 名前:デフォルトの名無しさん :02/04/28 14:56
>>368
メモリウィンドウのアドレス欄に
CArray< CArray< int > > array ならば
array.m_pData[index].m_pData
と書けば array[index] の int 配列がみれる、もっとスマートな方法は、漏れは知らない。

370 名前:デフォルトの名無しさん :02/04/28 16:28
VC++から.netへ移行するならVC++.NET?C#.NET?

371 名前:デフォルトの名無しさん :02/04/28 16:30
>>370
VC++.NET

372 名前:デフォルトの名無しさん :02/04/28 17:00
>>370
MSの記事によると、VC++ Proからの移行はVS.NET Proだそうだ

373 名前:デフォルトの名無しさん :02/04/28 20:18
>>
回答どうもです。
そっかー、配列の中に配列を入れる、って手があったか。気づかなかった。
ありがとうでした。

374 名前: ◆nktTSMw2 :02/04/28 21:25
VC++であるソフトからある座標の色の情報を取りたいのですが、
VC++でそのような事は出来ますか?
また、出来るのならばそれを定期的に監視することは出来ますか?
これらの事が出来るのならば、VC++使い始めてどれぐらいで出来るようになりますか?

質問いっぱいですいませんが、そのやり方なども教えてくれると嬉しいです。
日本語下手ですんまそん

375 名前:デフォルトの名無しさん :02/04/28 21:35
>>374
自作する必要性があるから訊いているんだろうけど、その前に、
http://www.hikarun.com/w/
このソフトをDLして使いなされ。これを使った上で、自作する必要が
あるんなら、そのときまた改めて訊くべきことを訊きなよ。

376 名前: ◆nktTSMw2 :02/04/28 21:42
>>375
ありがとうございます
早速使って見ることにします


377 名前:デフォルトの名無しさん :02/04/30 16:40
「引数」 は「ひきすう」ですか? 「いんすう」ですか?

場違いですか?でも知りたいんです。
どうなんですか、みなさん?

378 名前:デフォルトの名無しさん :02/04/30 16:52
>>377
http://www.kumei.jp/c_lang/intro/no_03.htm
↑「ひきすう」らしい。

379 名前:デフォルトの名無しさん :02/04/30 17:01
そーだたんだ。
でもエキスパートはみな「あーぐめんと」ですか?

380 名前:デフォルトの名無しさん :02/04/30 17:22
あーぎゅめんとだな

381 名前:デフォルトの名無しさん :02/04/30 18:13
日本語化ソフトの作り方教えてくだされ。。。

382 名前:デフォルトの名無しさん :02/04/30 18:28
>>381
まず、どこまで日本語に対応するのか明確にせよ。(そもそもどういうソ
フトを組んでんだよ。)

383 名前:デフォルトの名無しさん :02/04/30 18:33
>>381
CreateFont〜系をフックして欧文フォントが選択されたら、
Unicodeフォントか日本語フォントをCreateして返し、
TextOut〜やExtTextOut〜系API等の文字列を受け取るAPIをフックして、
自動的にExciteなり自前なりで翻訳して、翻訳結果を画面に表示。
もちろん、lstrlenとかそういうのも全部フックしてくれ。

384 名前:381 :02/04/30 18:53
あんがと。けど俺には理解できんかった・・・。

385 名前:デフォルトの名無しさん :02/04/30 18:59
>>383
それ、絶対失敗する。なんか自信ある。

386 名前:デフォルトの名無しさん :02/04/30 19:02
>>385
ネタに突っ込むなよ。かっこ悪いぞ。

387 名前:デフォルトの名無しさん :02/04/30 19:27
>>381
少しは自分で調べろよ。その程度の努力もできない奴は
Hellow Would!!出力プログラムでも作ってろ。


388 名前:デフォルトの名無しさん :02/05/01 15:36
実数を一つ入力して(%lf)、全体の桁数を10桁として、それぞれ小数以下を
3桁、2桁、1桁で表示するプログラムを作りなさい。(%10.3f、***、***) ***
は各自決定せよ。
という問題があるのですが誰かわかりませんか?

389 名前:デフォルトの名無しさん :02/05/01 15:43
宿題スレにどうぞ。

390 名前:デフォルトの名無しさん :02/05/02 11:38
「VC++」
で処理をゆーっくりにするコードはなんですか?
たとえば、●を ツーっと横にアニメションで動かしたい。
この場合、ノーマルだと一瞬で絵画してしまい
単なる横棒になってしまう。
これをゆくり移動させるにはどしたらよいのか?
BESICでいうwaitってやつ。

また、このままだとよこに棒ができてしまう。
あくまでボールを動かしたい。
BASICでいうCLSにあたるものはなに?

なんだかソースを加えるだけでできるの?


391 名前:デフォルトの名無しさん :02/05/02 11:51
>>390
この前とおなじやつか?
あの説明でわからなかったら何度聞いても同じ。

392 名前:デフォルトの名無しさん :02/05/02 12:40
>>390
wait,clsつくるよろし。

393 名前:デフォルトの名無しさん :02/05/02 12:41
>>391-392
別のスレで同じ質問が出て回答もされてる。

394 名前:デフォルトの名無しさん :02/05/02 12:43
BESIC

395 名前:デフォルトの名無しさん :02/05/02 13:05
>>394
そこに突っ込むかい…
あっちのスレでもまんまコピペしてるから同じミスがあるなw

396 名前:ダルシム :02/05/02 21:13
VC++6.0やってるんだけど、

// CTestView クラスの描画

void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
int s;
s=10;
pDC->TextOut(200,6," 変数sを表示したいのだができない ");
pDC->TextOut(300,30,s);
}


なんだか、sは10と表示されず文字コード?みたいなので、謎の文字が出てしまいます。
どうしたらいいですか?



397 名前:デフォルトの名無しさん :02/05/02 21:15
まずCを勉強してください。

398 名前:デフォルトの名無しさん :02/05/02 21:24
まじでCからの勉強が必要です

399 名前:デフォルトの名無しさん :02/05/02 21:26
なにこのスレ・・面白すぎる。。

400 名前:デフォルトの名無しさん :02/05/02 21:28
CDC::TextOut() は、

virtual BOOL TextOut( int x, int y, LPCTSTR lpszString,
int nCount );
BOOL TextOut( int x, int y, const CString& str );

と言う風に定義されてるから、要は LPCTSTR (要するに char *、つまり
普通の文字列) か、CString (C++ の便利な文字列型) を受け取るわけ。
どうせ MFC 使うなら CString の方が便利だから、CString の勉強をし
よう。ヒントをあげとくと、CString::Format() あたりが近いと思う。

401 名前:ダルシム :02/05/02 21:31
なんだかもうわかんないです

402 名前:デフォルトの名無しさん :02/05/02 21:36
要するにTextOutではint型の変数は表示できません、てこと。


403 名前:デフォルトの名無しさん :02/05/02 21:37
VCをつかっててふとおもったのですが、
アウトプットウィンドウのようなウィンドウを作るにはどうしたらいいんでしょうか?
エディットボックスとかシェルまわりかと思ったのですが、情報不足でよくわかりませんでした。
ご存知の方がいらっしゃいましたらぜひ教えてもらえないでしょうか?


404 名前:デフォルトの名無しさん :02/05/02 21:38
2chで聞くより先にMSDN見れ。


405 名前:デフォルトの名無しさん :02/05/02 21:38
char* s = "10";

406 名前:デフォルトの名無しさん :02/05/02 21:46
CString s = "10";

or

CString s("10");

も可

407 名前:デフォルトの名無しさん :02/05/02 21:47
CString s = _T("10");//のほうが俺はうれしい。

408 名前:403 :02/05/02 23:36
> 404
どの辺りをみればいいかさえよく分からないのですけど・・・。
バカですみません。


409 名前:デフォルトの名無しさん :02/05/02 23:39
>>403
何を聞きたいのかあいまいすぎてわからん。
サイズ可変のドッキングバー -> CSizingControlBar でも検索するよろし。
編集不可能なエディット -> ReadOnly の CEdit の背景かえるだけでもよろし。
コンパイラとかの出力の取得 -> パイプを使えばよろし。(詳細忘れた)

410 名前:デフォルトの名無しさん :02/05/02 23:45
404です。
>>403,408
スマソ。カキコのタイミングが悪かった。
ダルシム宛なんで気にしないで下され。

ついでに。
アウトプットウィンドゥってVisualStudioのようなヤシが希望ですか?
とりあえずCEditでググってみれば?



411 名前:デフォルトの名無しさん :02/05/02 23:49
OutputDebugStringを受け取りたいんじゃないか?

412 名前:403 :02/05/03 00:16
一応、コンソールの出力を取得の仕方が知りたかったのですが、説明不足でしたね。
すみません。
どうもありがとうございました。


413 名前:_T("hoge") :02/05/03 00:38
UNICODE アプリ作ってる人って多いんですか?

414 名前:L"hoge" :02/05/03 01:38
おらは UNICODE 専用アプリしかつくらん。

415 名前:デフォルトの名無しさん :02/05/03 06:45
あの〜
”〜.lib 外部シンボル "_main_initialize" は未解決です”
って100万回くらい言われるんです。
どうしたら良いでしょうか?
やっぱり死んだほうがいいですかね。
というアフォな事は質問しても良いですか?

ライブラリは全てぶち込んであります。
VC++6.0です。

416 名前:デフォルトの名無しさん :02/05/03 06:51
本当に100万回だったら何かが壊れてる

417 名前:デフォルトの名無しさん :02/05/03 07:30
console/windowsのFAQ?

418 名前:415 :02/05/03 10:28
あ、えっと1回のコンパイルでじゃなくて
何回試しても、という意味です。
コンソールアプリの話です。
というか初心者です。

>>415のようなメッセージに対して
libの設定はあってる、となると
次に何を疑えばいいのかわからず
途方に暮れてる次第です。

419 名前:デフォルトの名無しさん :02/05/03 10:36
>>418
main_initialize() って関数か、main_initialize って変数 (だった
ら、命名の仕方を疑うが...。) がどっかで呼ばれてんじゃねーの ?
とりあえず、全ソースに対してファイルから検索かけたら ?

420 名前:415 :02/05/03 11:50
もうだめぽ。
諦めるYO。
外部シンボル恐怖症でつ。

えらーメッセージは
main.lib(pcacis.obj) : error LNK2001: 外部シンボル "_main_initialize" は未解決です
です。

>>419さんに従って検索しましたが
_main_initializeはmain.libにしかなく
main.libはちゃんと入ってます。

main.lib作った人にききましゅ。

421 名前:デフォルトの名無しさん :02/05/03 13:42
>>420
main.lib がCで作られていてC++のプログラムから使おうとしているなら
C++のプログラムで

extern "C" _main_initialize( 引数リスト )

で宣言しておかないとリンクに失敗するぞ。


422 名前:デフォルトの名無しさん :02/05/03 13:44
winsock のラッパーを書きたいんだが、
雛形とかどっかない?
使用を調べるの画面。


423 名前:415 :02/05/03 14:08
>>421
Thx!でもダメでした。メッセージ変わらず。ありがd!

424 名前:デフォルトの名無しさん :02/05/03 15:50
>>422
そんなプログラムWANに解放するなよ

425 名前:デフォルトの名無しさん :02/05/03 19:00
>>421
それ、反対。そのケースなら、

test.obj : error LNK2001: 外部シンボル ""void __cdecl
main_initialize(void)" (?main_initialize@@YAXXZ)" は未解決です

と言う風に言われる。

main.lib(pcacis.obj) : error LNK2001: 外部シンボル "_main_initialize"
は未解決です

と言うエラーメッセージは、main.lib を構成している pcacis.obj が、
main_initialize() と言うのを使ってて、それを誰も定義していないことを
示している。ありがちなのはそのライブラリ使う時は、main_initailize()
って言う関数を定義しておくと、最初に一回呼ぶから必要な初期化をしてね。
と言うようなケース。

> main.lib作った人にききましゅ。

と言うのが正解。

426 名前:デフォルトの名無しさん :02/05/03 23:57
typedef int MYINT;
struct C{
  template<typename T> void foo(T t){}
  void hoge(void){
    foo<MYINT>(10);
  }
};

VC6で上のコードが通らないんだけど、これはVCの制限だよね。
もしかして、VCってかなり糞?

427 名前:デフォルトの名無しさん :02/05/04 00:11
>>426こういう書き込みしたがる厨結構いるよなぁ

428 名前:貧乏人(^^) :02/05/04 00:35
gccじゃ金あんま稼げないみたいなんでVC++か.NET(アカデミ)どっち買うか
迷ってるんですけど,どうしたらいいんですかねー。
このスレの住人からみてVCってあと何年くらい持つとおもいます?

429 名前:デフォルトの名無しさん :02/05/04 00:37
>>427
だねぇ...。template 使ってて、struct C { だからねぇ...。まあ、
GW だからしょうがないかな。

>>426
なにしたいのか良くわからんけど、とりあえず直しといたからもう来る
なよ。

typedef int MYINT;

template<class T> class C {
private:
 void foo(T t){}
public:
 void hoge(void){
  foo(10);
 }
};

int main()
{
 C<MYINT> x;
 x.hoge();
 return 0;
}

430 名前:427 :02/05/04 00:43
>>429
いや、残念ながらそういう事じゃない。
VCの既知の制限をいちいち持ち出して糞呼ばわりする奴って事。
そんなこと言い出したら、Lokiが通らないbccだって糞だしな。


431 名前:426 :02/05/04 00:52
>>427
これって広く知られた制限だったのね。知らなかったよ。
メンバーテンプレートをはじめて書いて通らなかったんでおかしいなと思ったのよ。
まあたしかに糞は言い過ぎた。

>>429
GWだな

432 名前:デフォルトの名無しさん :02/05/04 01:18
広く知られたどころか、readmeに書いてあるよ。

433 名前:デフォルトの名無しさん :02/05/04 06:34
readmeなんか読んでられるか糞



というafoが多いのでこういうカキコがあるわけですね

434 名前:422 :02/05/04 07:57
>>424
しないよ。
単純にプロトコル解析したいだけ。
とある糞アプリをFreeBSDに移植したい。

ちゅーか誰も雛型があるところしらねーのか?
それとも、そんなもん公開してるやついないのか?


435 名前:デフォルトの名無しさん :02/05/04 08:44
雛型が必要なほどのものじゃないぞ?
っていうか聞く前に検索くらいしてみたら?
snifferとかmonitorとかcaptureとか適当な単語と組み合わせれば、
そういうソフトはいくらでもあるし、Cで解説してるページもいっぱいあるけど。

436 名前:デフォルトの名無しさん :02/05/04 12:50
WinMain
関数が WM_QUIT メッセージを受け取って終了したときは、
メッセージの wParam パラメータが持つ終了コードを返してください。
関数がメッセージループに入る前に終了したときは、0 を返してください。

ってあるのに、オープンソース眺めてみると、

int WinMain( 省略 )
{
  try
  {
    初期化();
    実行();
  }
  catch( 省略 )
  {
    例外処理();
  }

  return 0;
}

こんなのが非常に多い!
WinMain の戻り値って常に 0 でも問題ないの?



437 名前:デフォルトの名無しさん :02/05/04 12:54
PostQuitMessageで0しか返さないならそれでもいい

438 名前:デフォルトの名無しさん :02/05/04 13:01
まあ、火さえ噴かなきゃ何でもいいんじゃないの?

439 名前:436 :02/05/04 13:03
>>437
なるほど! ありがとうございます。

でも、そうすると、WinMain の戻り値って何の意味があるんでしょう?
何かを Windows に伝えることができるんでしょうか?


440 名前:デフォルトの名無しさん :02/05/04 13:05
OSにエラーコードを返すのが流儀だからだろ。
最近はエラーが起きたらエラーコードを返すんじゃなくて、
abort()で人間にその旨を伝えるのが普通だな

441 名前:436 :02/05/04 13:12
>>440
納得しました。
ありがとうございました。


442 名前:デフォルトの名無しさん :02/05/04 23:34
すいません。
WTLで教えてください。
WTL/ATLウイザードからプロジェクトを作ると
メインフレームクラスとして、
class CMainFrame : public CFrameWindowImpl<CMainFrame>〜 「MainFrm.h」
が生成されるんですけど、ヘッダファイルのみなんでCPPファイルを新たに自作すると
コンパイルが通らなくなります。
「error C2504: 'CFrameWindowImpl' : 定義されていない基本クラスが宣言されています。」
などと怒られてしまいます。
何が足りないのでしょうか?

443 名前:デフォルトの名無しさん :02/05/04 23:37
cppを作成って何だ?
空のcppをプロジェクトに追加するだけでエラーがでるのか?

444 名前:442 :02/05/04 23:54
>>443
「MainFrm.cpp」です。
中身はコレです。コレでアウトです。

// MainFrm.cpp : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MainFrm.h"

CMainFrame::CMainFrame()
{
}

445 名前:デフォルトの名無しさん :02/05/05 00:11
CFrameWindowImpl
がどこに定義されているのかよーく考えてみろ。


446 名前:442 :02/05/05 01:52
>>445
解決しました。ありがとうございました。
今回のトラブルの原因であり、
これは前々から思っていたことなんですが、
例えばあるヘッダファイル「A.h」があったとして
「A.h」は「B.h」を参照する仕様な場合、
#include <B.h>はどこに書くのが正しいんですか?
「A.h」を参照するのが、「C.cpp」ただ1つの場合
「C.cpp」に、
#include <B.h>
#include <A.h>
と書けばOKですよね。今回のWTLのソースもその方式でしたし。
でも他のファイルから「A.h」を参照したい場合これじゃダメですよね。
「A.h」の中で #include <B.h> を書かないと。
実際どっちが正しいんですか?





447 名前:デフォルトの名無しさん :02/05/05 02:00
少なくとも、VCに限っては一つのヘッダにごっそり
#includeを入れて、そのヘッダを各cppの先頭で#includeするのがいいとおもう。
もちろん、プリコンパイル済みヘッダを作って

448 名前:442 :02/05/05 02:14
>>447
なるほど、プリコンパイル済みヘッダってそういう
用途で使うもんなんですね。
自分は小規模なプログラムしか組んだ事が無いので
いままで気にしてませんでした。
勉強になりました。ありがとうございました。

449 名前:デフォルトの名無しさん :02/05/05 02:26
プログラム自体は小規模でも、
STLとか使うなら、プリコンパイルするだけで10倍近く早くなるケースも多いよ

450 名前:デフォルトの名無しさん :02/05/05 02:29
20〜30倍もザラですよ

451 名前:デフォルトの名無しさん :02/05/05 04:15
はずかしながら、nkf32.dllを、VC6の自作プログラムにどう組み込んでいいのかわからんです。
試した方法:

0.プロジェクトのライブラリにnkf32.libをおく。
1.#pragma comment(lib, "nkf32.lib")を使用するコードに入れる。
2.プロジェクト->設定->リンクにnkf32.libを追加

どうやってもLNK2001が消えないです・・・

452 名前:デフォルトの名無しさん :02/05/05 05:46
俺は自慢ぢゃないが
COMしか使ったことないから
生のDLLはサッパリだぜ!


453 名前:デフォルトの名無しさん :02/05/05 07:29
いさましいチビの女の子の元ネタって何?

454 名前:デフォルトの名無しさん :02/05/05 08:39
トースター。

455 名前:デフォルトの名無しさん :02/05/05 12:54
>>451
#pragma〜と書いたらプロジェクトの設定にはいらない。
libがある位置をよく確認

456 名前:デフォルトの名無しさん :02/05/05 18:14
>>455 どうもです。

夕べ寝る直前に気づいたんですが、自分はC++のコードを書いてるので、
extern "C"が必要だったんですね。

とおもってよく見たら、>>421に答えが書いてあったりして・・・
お騒がせでした。


457 名前:デフォルトの名無しさん :02/05/05 23:26
>>446

A.hがB.hを必要としているなら、
A.hでインクルードする。
(どのヘッダファイルを単独でインクルードしても
 コンパイルが通るようにする)

ただし、「全て」のヘッダファイルで2重インクルード抑止する。

というふうにしてます。




458 名前:デフォルトの名無しさん :02/05/06 19:02
初心者です。
VC++6.0使ってます。
よろしくお願いします。

Win32 Application ってプロジェクトで作ったやつをビルドすると

リンク中...
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です
Debug/WinMogu.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

って出ちゃうのですが、
コンパイルはできているってことですよね?
何がいけないのでしょうか?
よろしくお願いします。


459 名前:デフォルトの名無しさん :02/05/06 19:06
-MT
もしくはプロジェクト>なんか>ライブラリ(マルチスレッド)選択

460 名前:デフォルトの名無しさん :02/05/06 19:25
MFC使ってるのにプロジェクト設定でMFCを使わない設定にしてると
そのエラー出るね

461 名前:458 :02/05/06 19:27
>>459
レス、ありがとうございます。

MTオプションつけてビルドしてみたら
LNK4098 エラーが出ました。
(ライブラリが矛盾してるだとかなんだとか)
MSDN読んでもあんまりピンとこなくて、
とりあえず、
関係ありそうと思ったところで、リンクの設定で
「デフォルトライブラリをすべて無視」
ってのを選択して実行してみたら、エラーが120個出てきて、
で、リンクの設定を元に戻してまたビルドしてみたら、
実行できました。
う〜ん、解決したのだろうか・・・。

462 名前:デフォルトの名無しさん :02/05/06 19:30
>>461
コマンドラインなら-MT
統合環境なら プロジェクト>C/C++>カテゴリ[コード生成]>使用するランタイムライブラリ
を変更

463 名前:458 :02/05/06 19:39
460さんのおっしゃっている通り、
MFCを使わない設定になっていました・・・。
ただ、
461で書いた方法でビルドが完了したのが不思議なところですが。

お騒がせ致しました。

464 名前:デフォルトの名無しさん :02/05/06 21:36
別スレで質問したのですが
解決しなかったのでこちらでもう一度お願いします。
VC 6.0と.NETともにデバッグしようとすると
かなりの確立でVCがフリーズします。
Win2000,XP両方発生します。
具体的にはF5押すとエディタがデバッグの画面に切り替わり
その後直後フリーズします。その際他のウィンドウとかも
巻き込まれます。タスクマネージャーは立ち上がらないのですが
1分ほど時間が経ってから閉じるボタンを押すと
「応答がない」のダイアログがでて何とか終了できます。
終了すると他のウィンドウなどは元に戻ります。
調べられる限り調べたのですがだめでした。
ちなみにノートンは切ってありますし、
オーバークロックもしておらず
オプションのデバッグ項目はデフォルトで使用しています。
SBLive挿してるのが怪しいといわれましたが
今回は関係なかったようです。
ご存知の方おられましたら教えてもらえないでしょうか?
板違いだったら教えてください。
よろしくお願いします。

465 名前:デフォルトの名無しさん :02/05/06 22:33
タスクトレイに何にも表示しないようにしてみて。
(特にIME)

466 名前:464 :02/05/06 22:44
>>465
タスクバーから出してもだめでした。
ノートンアンチウィルスはオフじゃなくて
アンインストまで試した方がいいですかね?
同じ状況の人はオフでいけた例があるみたい
なのでオフで無理なら関係ないと思ってますが。
えっとまとめておくと
ノートンオフ、IMEもタスクバーの外の状態で
固まってしまいます。
デバッグできなくてさすがに辛いので
すこしでも情報あれば提供くだされば助かりますので
よろしくお願いします。

467 名前:デフォルトの名無しさん :02/05/06 22:53
>>464
あのさ、ここで解決しなければ今度はまた別のスレに貼るわけ?
いい加減にしてくれ。
どうしても解決が必要なら、MSにサポートしてもらえ(まぁ、解決するとは思えないけどな。
割れ厨だったらあきらめろ

468 名前:デフォルトの名無しさん :02/05/06 23:05
>>466

タスクトレイに何も表示しない...
ってことはタスク領域自体が無くなるはずなんだけど、
そうなってる?

469 名前:デフォルトの名無しさん :02/05/06 23:06
>>468

タスク領域=タスクトレイ領域

470 名前:デフォルトの名無しさん :02/05/06 23:52
他のアプリ全部切った上で、
「デバッグ」メニューからの「デバッグ開始」は試したのなら、もう、手の打ちようが無いと思われ。

471 名前:デフォルトの名無しさん :02/05/07 00:23
DirectInputでJoystick入力をさせるためにクラス化しようとしました
コールバック関数はクラスの中に置くことができないので
http://kobe.cool.ne.jp/solo2000/CInputControl.h
http://kobe.cool.ne.jp/solo2000/CInputControl.cpp
このようにしたのですが、当然これではlpInputとlpDeviceにアクセスできません。
このコールバック関数からlpInputとlpDeviceにアクセスすることはできないでしょうか?

472 名前:デフォルトの名無しさん :02/05/07 00:26
>>471 超FAQ
hr = lpInput->EnumDevices( DI8DEVCLASS_GAMECTRL, EnumDevicesCallback, (void*)this, DIEDFL_ATTACHEDONLY );

BOOL CALLBACK EnumDevicesCallback( const DIDEVICEINSTANCE* pdidInstance, LPVOID pContext )
{
CInputControl* pThis = reinterpret_cast<CInputControl*>(pContext);

473 名前:デフォルトの名無しさん :02/05/07 00:26
Set,Get系関数は無いのか?

474 名前:デフォルトの名無しさん :02/05/07 00:56
>>472
ありがとうございます、早速調べてみます
>>473
初期化でこけているのでそこまで製作しておりません

thisポインタは関数を呼び出したオブジェクトへのポインタ
reinterpret_cast演算子はポインタ型に変換

まだVisualC++の知識は未熟なので詳しいこと輪分からないのですが
つまり(void*)thisはvoid形のポインタ
CInputControl* pThis = reinterpret_cast<CInputControl*>(pContext);は

CInputControlのポインタpThisにvoid型のポインタpContextが保持するアドレスを
変換して代入するということだと私は解釈しました。
そしてCreateDeviceと同じ内容の関数をCInputControlクラスに含ませておき
CInputControlのポインタpThisからそれを呼び出せばいいということだと判断した私は
このように改良しました。

http://kobe.cool.ne.jp/solo2000/CInputControl2.h
http://kobe.cool.ne.jp/solo2000/CInputControl2.cpp

実行してみたところエラーも出ず初期化は成功したと思います
本当にありがとうございました。

475 名前:デフォルトの名無しさん :02/05/07 01:31
>>474
外人?

476 名前:464 :02/05/07 01:33
アドバイスありがとうございます。
467<<
えっと聞こえの悪い書き方してしまいました。
微妙に板違いだったのでこっちの方が的確な
アドバイスもらえると思って書き込みました。
すみません、MSのサポートは
467さんの想像通りで(笑)
いくつかドライバー関連の不具合(?),アプリの競合などなど
アドバイスもらったんですが特に当てはまらなかったので
諦めてしまいました。
468>>
残ってるのは
・アンチウィルスのアイコン(無効になってます)
・ボリューム調整するやつ。
のふたつです。
ノートンのやつ消すにはアンインストですね。
関係ないと判断してしてませんでした。
明日にでもさっそくアドバイス通り
やってみたいと思ってます。
470>>
もうひとがんばりしてみたいと思います。
せっかくMFC覚えたんですし。。
ながながすみません、また明日にでも報告いたします。

477 名前:デフォルトの名無しさん :02/05/07 01:42
>>476
基本だが、VC自体の再インストールはしたのだろうな?
ノートンはダイアログボックスからプロセスそのものを切ってみたか?
そしてリブートはしたか?

478 名前:デフォルトの名無しさん :02/05/07 01:45
>>472
void*への変換はC形式、戻すときはC++形式のキャストを使ってるのは何か理由が?

479 名前:デフォルトの名無しさん :02/05/07 01:55
>>478
それ以前に、任意のポインタ型から void* へは暗黙のキャストで済むような気が。

480 名前:デフォルトの名無しさん :02/05/07 02:37
>>478
あ、ミスだ(藁
長いからC形式になおして、callback側で直し忘れただけ

481 名前:デフォルトの名無しさん :02/05/07 03:11
正直static_castはうざいだけと感じるんだけど、皆さん使ってます?

482 名前:デフォルトの名無しさん :02/05/07 03:30
つかってる。

必要な場所ってそれほどないと思うが?

483 名前:デフォルトの名無しさん :02/05/07 03:31
>>476
その現象は私の持っているThinkPadでもよく起こります
VisualStdioとDX8Librayのみをインストールしても起こりました
これは困りますよね

>>475
日本人です、思ったことを文章にするのが非常に苦手なのです

これで落ち着きました
http://kobe.cool.ne.jp/solo2000/CInputControl.h
http://kobe.cool.ne.jp/solo2000/CInputControl.cpp

484 名前:デフォルトの名無しさん :02/05/07 03:35
んー、reinterpret_castとconst_castしかつかわねー

485 名前:デフォルトの名無しさん :02/05/07 03:39
double->intみたいのに使う。


486 名前:デフォルトの名無しさん :02/05/07 03:48
int*とchar*の変換なんかのときはstatic_castとreinterpret_castのどっちが良いんだろう。
int*とchar*の内部形式が同じとは限らないからstatic_castのほうが無難?
いまさらそんなこと気にせずreinterpret_castで行くほうがいい?

・・・スレ違いか・・・。

487 名前:デフォルトの名無しさん :02/05/07 03:58
>>486
内部形式が同じとは限らないからreinterpret_castを使うべきだろ。
ポインタはvoid*との交換の時だけじゃないか?<static_cast


488 名前:デフォルトの名無しさん :02/05/07 04:03
>>487
内部形式が違うならreinterpret_castはまずいのではないでしょうか?

489 名前:デフォルトの名無しさん :02/05/07 04:26
内部形式が違う=変換不可能であればコンパイル時エラーになる。
だからこそreinterpret_castでよいのだ。


490 名前:デフォルトの名無しさん :02/05/07 04:32
>>489
なろほど。
内部形式が違う==コンパイラが変換を行う。
という状況を想定していたけど、
そういう場合ならばstatic_castのほうが適切?

491 名前:デフォルトの名無しさん :02/05/07 05:00
static_castは暗黙の変換が存在する場合にだけ有効じゃなかったっけ。


492 名前:デフォルトの名無しさん :02/05/07 10:03
reinterpretはビットパターンを操作しないと理解している。
とりあえず、484は逝ってよい。

493 名前:デフォルトの名無しさん :02/05/07 12:18
ダイアログ上のエディットボックスをサブクラス化しているんですが
エンターキーを WM_KEYDOWN で検出したいんですがデフォルトのボタンがある場合などは
どっかでメッセージが処理されてエディットに WM_KEYDOWN が来てくれません。
サブクラス化しているエディットにフォーカスがある場合はデフォルトのボタンなどに関係無しに
エディットがすべてのキー入力(WM_KEYDOWN)を受信できるようにするにはどうしたらいいですか?

余談ですが今月中に.Netを購入しようしようと思うのですが
どれを購入するのがいいですか?
個人的に使用するだけだけなのでC#、VC、VBの単体パッケージのどれかを購入する予定です。
Win32アプリを作るならVC++6.0で十分ですよね?
C#が妥当ですかね?


494 名前:デフォルトの名無しさん :02/05/07 14:29
CSVファイルで保存したデータを自己参照構造体に読み込む方法は
ありますか?

495 名前:デフォルトの名無しさん :02/05/07 15:50
あるます。

496 名前:デフォルトの名無しさん :02/05/07 16:06
494
面倒ならCListかvectorでも使え

497 名前:デフォルトの名無しさん :02/05/07 16:41
すみません、質問です。
VisualC++は0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみにプログラムは殆どやったことがないのですが。

498 名前:デフォルトの名無しさん :02/05/07 16:48
個人差があるが、
そんなことから人に聞いているようじゃ10年たっても無理

499 名前:デフォルトの名無しさん :02/05/07 19:17
同意

500 名前:デフォルトの名無しさん :02/05/07 19:18
すみません、質問です。
株取引は0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみに買い物は殆どやったことがないのですが。

とおなじくらいバカ。



■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.