■過去ログ置き場に戻る■
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.