■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
★初心者にVisual C++を教えるスレ★ Part7
501
名前:
デフォルトの名無しさん
:03/07/29 20:23
500とられた(T_T)
502
名前:
デフォルトの名無しさん
:03/07/29 20:25
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安! スピード発送! 商品豊富!
★☆
http://www.get-dvd.com
☆★ 激安DVDショップ 「GETDVDドットコム」
★☆
http://www.get-dvd.com
☆★ 今すぐアクセス Let’s Go! 急げ!
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
503
名前:
デフォルトの名無しさん
:03/07/29 21:31
自分で作ったのクラスからビュークラスの関数呼ぶって事は普通しないんすか・・・?
やり方わからん
504
名前:
デフォルトの名無しさん
:03/07/29 21:56
20分前〜俺は〜馬鹿だった〜
・・・あほなこと言ってごめんなさい
505
名前:
デフォルトの名無しさん
:03/07/30 09:25
>>495
どうもです。やはりその方法しかなさそうですね…
sedで置換してみます。
ありがとうございました。
506
名前:
デフォルトの名無しさん
:03/07/30 13:34
Enemy *pEnemy;
pEnemy = new Zako;
クラスへのポインタ宣言をしておいて、
あとからnewでオブジェクトを作ろうとすると、
error C2061: 構文エラー : 識別子 'Zako';
と出てしまいます。どうしてエラーなのでしょうか?
507
名前:
デフォルトの名無しさん
:03/07/30 13:53
>>506
includeしてないだけじゃ?
#include "Zako.h"
508
名前:
デフォルトの名無しさん
:03/07/30 14:58
今、学校でVC++6を弄んでるんですが、入門書のおすすめなどありましたら教授ください。
学校なので、MFCライブラリリファレンスの類は、全種あるのですが、なにぶん内容が難しすぎて…(汁)
今現在、参考にしてるのは、「独習C++」、「新VisualC++6.0入門(ビギナー編)」です。
やはり次に進むべき道は、「新VisualC++6.0入門(シニア編)」でしょうか…?
しかし通販じゃないと近所にはなさげな悪寒…
自分の知識としては、Cの基礎を一通り学んだ程度です。
509
名前:
デフォルトの名無しさん
:03/07/30 15:26
猫でもわかる、でいいじゃん。
本がいいと言うなら、いちおう本にもなってたはず。
内容が優れてるかと言われれば疑問だが、入門には良いと思われ。
林晴比古も悪くないけどね。
学校でとりあえず必要としてるだけならいきなりMFCでもいいけど、
まともに覚えたいんなら、まずはSDKオンリーで仕組みから理解していくべきだと思う。
510
名前:
デフォルトの名無しさん
:03/07/30 15:39
だから、本はスレ違いなんだよ
511
名前:
デフォルトの名無しさん
:03/07/30 16:08
C++はCをマスターしてから勉強したほうがいいですか?
512
名前:
sage
:03/07/30 16:08
初心者に教えるスレだからいいと思うけどね。
自分は林晴比古の新VisualC++6.0入門シリーズで勉強した。
がんばってくれ。
513
名前:
508
:03/07/30 16:21
>>509
なるほど…猫わかもたしか本になってたんですよね…一度調べてみます。
(やっぱり本がいいです;)
>>510
すいません、スレを検索した限り、他に適当なスレが見当たらなかったのでここで質問させてもらいました。
くだ質とかの方がよかったですかね…?
>>512
このシリーズで攻め続けようか、他に乗り換えようか、少し悩んでます…<林先生の本
514
名前:
デフォルトの名無しさん
:03/07/30 16:58
初心者に推薦図書スレを教えるのが筋だと思うが・・・
515
名前:
デフォルトの名無しさん
:03/07/30 18:44
http://aiton21.tripod.co.jp/a.JPG
OKとキャンセルボタンいっこずつしかおいてないのに
リビルドしてもこんなんに表示されちゃうのなんでですか??
516
名前:
デフォルトの名無しさん
:03/07/30 18:45
てか三回くらい作り直しました。。。
ありえねえええ
517
名前:
デフォルトの名無しさん
:03/07/30 18:51
ああきにしないで
518
名前:
デフォルトの名無しさん
:03/07/30 20:54
教えてください。
いま自分のViewにCListCtrl m_listがあるとします。
ここでこのm_listにアイテムを追加するときにSetItemDataで構造体アドレスをセットしたいです。
この構造体はそのアイテムに関連する情報を保持しており、リストにアイテムを挿入するときにnewします。
問題なのはこのViewがDistructされるときにこのm_listがデストラクトされてもnewした構造体は自動では解放されません。
あるいはDeleteAllItemsなどを呼び出したときとか。
Viewのデストラクタでdelete m_list.GetItemData(i);などとしても
もしリストにSetItemDataしてなければ変なアドレスでdeleteしそうです。
こういうケースではどういう対処が良いですか?
CListCtrlを派生してInsertやDeleteItem系のメソッドを絞って提供し
アイテムの追加や削除を全部管理しないと無理ですか?
519
名前:
デフォルトの名無しさん
:03/07/30 21:04
>>513
最初は林の本でも大丈夫だと思うけどね。
ちょっと実力がついてきたなと思ったら用途に合わせたものを買えばいい。
520
名前:
デフォルトの名無しさん
:03/07/30 21:23
>>518
うん。
521
名前:
518
:03/07/30 22:08
そうなんですか。そこを何とか。どなたか良いお知恵を。
もしくは普通こうやる、とか。
お願いします。
522
名前:
:03/07/30 23:04
>>518
仮想リストにすれば?
523
名前:
:03/07/30 23:06
>>521
SetItemData してなければ、GetItemData では 0 が帰って来る。と思う。
もし違ってたらゴメン。で、LVN_DELETEITEM だかなんだかの通知を受けて
0 じゃなければ、delete する。
あるいは new したものは View のメンバ変数 CTypedPtrList<hoge> m_items;
とかに全部入れといて、view のデストラクタで全て delete する。
524
名前:
デフォルトの名無しさん
:03/07/30 23:07
VC++6.0でmakeファイル使ってる人っています?
VCってmake使えるの?
525
名前:
デフォルトの名無しさん
:03/07/30 23:09
>524
nmakeってあるはずだよ。
さがしてみそ
526
名前:
デフォルトの名無しさん
:03/07/30 23:14
>>525
確かにありますね。
nmakeってコマンドラインから使うんですか?
IDEからは使えないんですか?
527
名前:
デフォルトの名無しさん
:03/07/30 23:14
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安! スピード発送! 商品豊富!
★☆
http://www.get-dvd.com
☆★ 激安DVDショップ 「GETDVDドットコム」
★☆
http://www.get-dvd.com
☆★ 今すぐアクセス Let’s Go! 急げ!
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
528
名前:
名無し@沢村
:03/07/30 23:16
学校のおじさんのつくったVisualC++真面目に勉強している、へたれたちのいるスレはここですか?
529
名前:
518
:03/07/30 23:24
みなさま。ありがとうございます。
よくかんがえたらViewのデストラクタより先にm_listがなくなっていそうです。
そこでいちばん簡単な方法としてm_listにSetItemDataしたものを別個にリストにして
保持しておくことにします。なんか無駄な気もしますが。
530
名前:
518
:03/07/30 23:27
>>522
仮想リストとは何ですか?
531
名前:
デフォルトの名無しさん
:03/07/31 00:06
すみません。文字列をdouble型に変換したいのですが、
CString str = 2.5584;
double don = atof(str);
とした時、donの値が"2.5583999999…"になってしまいます。
この原因が全く判らないで困っています。
どなたか解決策をご教授してください。
532
名前:
デフォルトの名無しさん
:03/07/31 00:07
1/3 = 0.3333333....
533
名前:
デフォルトの名無しさん
:03/07/31 00:34
>>531
double型は2進数であらわされます。
ですので、10進数小数を2進数に直すと丸め誤差が生じます。
つまり、double型では、正確に2.5584を表すことは原理的にできないのです。
別に実害はないので気にせず行くのがよいでしょう。
534
名前:
デフォルトの名無しさん
:03/07/31 01:22
>>531
有限小数、無限小数などで検索汁
535
名前:
デフォルトの名無しさん
:03/07/31 02:23
>>530
仮想リストビューで検索しなさい
536
名前:
デフォルトの名無しさん
:03/07/31 08:52
CObjectの派生クラスで、リソースに登録してあるアイコンのハンドルを取得するには
どうすればいい?ロードアイコンとかセットアイコンとかいっぱい試したけど
自分じゃむりだった・・。
537
名前:
531
:03/07/31 08:56
>>533
そうだったんですか。ありがとうございました。
でも、こっちでは、どうしても文字列"2.5584"を
正確な数値でdouble型に変換したいのですが、
良い方法はないでしょうか?
538
名前:
デフォルトの名無しさん
:03/07/31 09:24
>>536
そういうときは、まずはキーワード羅列して検索
ttp://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=%83A%83C%83R%83%93+%83n%83%93%83h%83%8b+%83%8a%83%5c%81%5b%83X
539
名前:
デフォルトの名無しさん
:03/07/31 09:31
>>537
double型では、正確に2.5584を表すことは原理的にできないのです。
~~~~~~~
540
名前:
デフォルトの名無しさん
:03/07/31 09:49
>>537
計算するときに小数点第5位以下を四捨五入すると貸して自分で工夫するしかねーよ。
小数を正確に表すことは出来ん。あきらめな。
541
名前:
デフォルトの名無しさん
:03/07/31 09:50
>537
doubleでは不可能。
誤差が嫌なら小数部と整数部に分けてintに格納とか。
演算出来ないけど。
542
名前:
531
:03/07/31 13:35
>>539-541
そうですか。わかりました。
どうもありがとうございました。
543
名前:
デフォルトの名無しさん
:03/07/31 14:25
ピクチャボックス、またはエディットボックス上に
bold表示で文字を表示させたいんですけど
どういう関数を使えばいいんでしょうか
544
名前:
デフォルトの名無しさん
:03/07/31 14:31
エディトボックスについては、SetFontすればよろし。
545
名前:
デフォルトの名無しさん
:03/07/31 15:25
>>538
しました。そこも見たとおもいます。
アプリケーションクラスでロードアイコンすると、
Debug Assertion Failed!が出て、ビルド自体できないんすよね。
ちなみに出てるファイルはafxwin.inlのline26です。コードは
HICON hIcon = NULL;
hIcon = LoadIcon(IDR_MAINFRAME);
if (hIcon == NULL)AfxMessageBox (_T("アイコンがロードできません"));
でappクラスのコンストラクタに入れてます
って書いて、まさかと思って違う関数に入れたら通ったヽ(´∀`)/
546
名前:
デフォルトの名無しさん
:03/07/31 15:52
Appクラスのコンストラクタってあんた・・・
547
名前:
デフォルトの名無しさん
:03/07/31 16:18
いや、とりあえずどこでもいいからつっこんでコンパイラ通したかったんすよ笑
てかCImageListのadd関数にハンドル渡すとまたDebug Assertion Failed!が
でるうううう!また俺馬鹿なことやってんだろうなぁ。。。泣
548
名前:
デフォルトの名無しさん
:03/07/31 16:32
人間は生まれながらにして自由だが一方で鉄の鎖に繋がれている。
ルソーの社会契約論にそうある。
人間が家畜化してるらしいよ。
549
名前:
デフォルトの名無しさん
:03/07/31 16:59
ままままじでわからんです!
appのInitInstanceの最後に
HICON hIcon = NULL;
hIcon = LoadIcon(IDR_MAINFRAME);
if (hIcon == NULL)AfxMessageBox (_T("アイコンがロードできません"));
data.Treeimage.Add(hIcon);
TreeimageはCImageListです。この状態でリビルドしてもエラーでないんすけど
ブレークポイントで調べると四行目のAdd関数の時にDebug Assertion Failed!
がでます。なんか悪い事してる・・・?
550
名前:
デフォルトの名無しさん
:03/07/31 17:40
>>549
せっかくアサーションが発生しているなら、
CImageListのソースを見てみろよ。
551
名前:
デフォルトの名無しさん
:03/07/31 18:05
>>550
エラーのとこに出てるフォルダ名vs70buildsで検索かけたけどでない。
インクルードフォルダもみたんですけど・・・。
ソースどこにあるんすか??
ソース見ろってことは俺悪い事してるのか
552
名前:
デフォルトの名無しさん
:03/07/31 18:10
>>551
インストール時にMFCのソースも入れましたか?
553
名前:
デフォルトの名無しさん
:03/07/31 18:22
あった!!!!けど、意味不明・・・。
BOOL Arrange(UINT nCode);
でエラーなんですけど、うぅ〜
554
名前:
デフォルトの名無しさん
:03/07/31 18:24
{ ASSERT(m_hImageList != NULL); return ImageList_AddIcon(m_hImageList, hIcon); }
こっちでした。あ”ぁ〜・・・・・・・
555
名前:
デフォルトの名無しさん
:03/07/31 18:25
>>553
それってCListCtrlじゃないの?
556
名前:
デフォルトの名無しさん
:03/07/31 18:26
>>554
Create()してないでしょ。予想通りだけど。
557
名前:
デフォルトの名無しさん
:03/07/31 18:35
笑っちゃうくらい凄いっすね。。。
まじ尊敬しちゃう・・・。ありがとうございました!!
558
名前:
デフォルトの名無しさん
:03/07/31 20:05
>556
>>appのInitInstanceの最後に
だからね。Create()が通ってるわけもない。
559
名前:
デフォルトの名無しさん
:03/07/31 20:17
え、普通にCreateしたらできましたよ。
てか、今度はプログラム自体のアイコンが変わっちまいました・・・。
もう一時間格闘したよ・・・
560
名前:
デフォルトの名無しさん
:03/07/31 22:16
すいません。メモリ確保について質問です。
int x = 160;
int y = 30000
int *image = (int *)malloc( sizeof(int) * x * y );
for(i = 0 ; i < x * y; i ++)
image[i] = 0;
としたのです。このとき、i = 0でなぜかエラーになってしまいます。
デバッグするとimage[0]にメモリが確保されていないように思います。
これはどういう対処をすればいいのでしょうか?
561
名前:
デフォルトの名無しさん
:03/07/31 22:21
>>560
callocを調べてみると幸せになれるかも。
562
名前:
デフォルトの名無しさん
:03/07/31 22:44
覗いたが価値!ウキウキしますよ♪
http://angely.h.fc2.com/page004.html
563
名前:
デフォルトの名無しさん
:03/08/01 00:01
>>558
意味わかんねー
564
名前:
デフォルトの名無しさん
:03/08/01 00:19
最小化をするとタスクバーにアイコン化されるようにする
コードを教えて下さい
565
名前:
_
:03/08/01 00:19
http://homepage.mac.com/hiroyuki44/hankaku09.html
566
名前:
559
:03/08/01 00:41
たのむ・・・。もう・・・つかれた・・・。お、おしえてくんなまし
567
名前:
名無し@沢村
:03/08/01 00:47
>>564
WS_EX_APPWINDOW
568
名前:
デフォルトの名無しさん
:03/08/01 01:04
プログラムが分かる先輩が辞めてしまいいきなりC言語を見てくれって言われたんで
すけど全く分かりません!
LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
byrhkprt.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exeの実行エラー
とエラーが発生するのですが何が原因なのでしょうか?
過去レスで
プロジェクトー設定-リンク で設定とあったのですがそのプロジェクトが見当たりま
せん。
使っているのはc++4.0です。
バージョンが古いのでしょうか?
教えてください。
569
名前:
デフォルトの名無しさん
:03/08/01 10:41
AdjustWindowRectで、メニューバーが複数行になる場合でも1行分のサイズしか返さないんですが
正しい値を得る方法はありませんか。
というかこれできないとこの関数の存在意義ないじゃないですか!おかしいですよ!
570
名前:
559
:03/08/01 12:35
アイコンのIDをIDRにしてた・・・。ごめん俺・・・俺・・・逝ってくるわ・・・
571
名前:
デフォルトの名無しさん
:03/08/01 17:33
激しく厨な質問で申し訳ないのですが、
Platform SDK でHeader: 〜〜.idl
と書かれているものはどのようにして呼び出せばいいのでしょうか?
どうやら、COMみたいなのですが、Prog id もCLSIDもわからず…
572
名前:
571
:03/08/01 20:08
詳しく言うとIStaticPortMappingインターフェイスを取得したいんですが…
573
名前:
デフォルトの名無しさん
:03/08/01 22:37
idl自体はmidlでコンパイルすればいいが、
PlatformSDKなら、コンパイル済みな、同名.hが付属しているはず。
574
名前:
デフォルトの名無しさん
:03/08/01 23:13
OfficeXPとかSleipnirみたいに、ツールバーとかメニューを
かっこよくするにはどうすれば??
575
名前:
571
:03/08/01 23:13
NATUPnP.hだけでなくNATUPnP.idlすらありませんでした(汗
576
名前:
デフォルトの名無しさん
:03/08/01 23:24
どこを探した?
577
名前:
571
:03/08/01 23:31
HDの中すべて探したんだけど(検索した)
SDKを落としなおすしか…
578
名前:
デフォルトの名無しさん
:03/08/01 23:37
ふーむ。
C:\Microsoft SDK\Include のディレクトリ
2001/05/30 18:20 67,477 natupnp.h
2001/06/03 22:49 10,086 natupnp.idl
579
名前:
571
:03/08/02 00:09
そもそもPlathome SDKがはいってなかった予感
インスコ中でし
580
名前:
デフォルトの名無しさん
:03/08/02 01:20
>>574
自作。
まあ、冗談はともかくとして、Sleipnirはこれ。
http://www.bcgsoft.com/
フリーでなんとかしたかったら、CodeGuruとかCodeProjectとかviksoe.dk
あたりから拾ってくるとか。
581
名前:
山崎 渉
:03/08/02 02:06
(^^)
582
名前:
デフォルトの名無しさん
:03/08/02 06:20
>>560
iはちゃんと定義されているのか?
583
名前:
デフォルトの名無しさん
:03/08/02 07:09
VS.NETのMFCで拡張子を追加したくて、ファイルの種類エディタを開きたいんですが
表示メニューにエディタがなくてできないんですがどうすればいい??
584
名前:
デフォルトの名無しさん
:03/08/02 11:33
VS.NETのWindows Installer作成機能で、
インストールの最後に「Windowsを再起動しますか(Y/N)」
というダイアログを出して再起動するようなものを作りたいんですが、
標準の機能だけでは無理なんでしょうか。
カスタム動作用のプログラムを作る必要がありますか。
でもその再起動用プログラムまでインストールする必要がありそう
なのが気になります。
585
名前:
_
:03/08/02 11:38
http://homepage.mac.com/hiroyuki44/
586
名前:
無料動画直リン
:03/08/02 11:38
http://homepage.mac.com/miku24/
587
名前:
デフォルトの名無しさん
:03/08/02 11:42
インストールが必要な再起動プログラムってどんなだよw
588
名前:
デフォルトの名無しさん
:03/08/02 14:22
>>587
おまえ、メジャーリーグ級の馬鹿だな。
カスタム動作用のdllもインストーラに含めるって意味に決まってるだろ。
589
名前:
デフォルトの名無しさん
:03/08/02 15:30
猫でもわかるプログラミングのSDK編
第6章 簡単なメニューのところでお聞きしたいことがあるのですが、
Visual C++ .NET だとリソースエディタを使ってメニューを作成すればいい
というのは分かったので、実際にメニューを作ったのですが、
メニューバーそのもののIDの設定の仕方が分かりません。
メニューバー上で右クリックしても設定できないようですし・・・。
それと、IDが設定できれば
myProg.lpszMenuName = "メニューバーそのもののID";
とすれば良いと認識しているのですが、間違っているでしょうか?
590
名前:
583
:03/08/02 15:33
めんどいから素直にMFC組みなおすわ
591
名前:
デフォルトの名無しさん
:03/08/02 15:52
>>589
Resource View内の項目を右クリープロパティ
592
名前:
デフォルトの名無しさん
:03/08/02 19:57
>>591
Menuが空じゃないと設定できなくない??
593
名前:
デフォルトの名無しさん
:03/08/02 22:35
>>584
この順序でやってみよう。
(1)本当にOSの再起動が必要かどうか見直す。
アプリの作りを変えられないだろうか。
(2)InstallShieldかなにかを買う予算がないか交渉してみる。
(3)あきらめられないかどうか検討する。
(4)もしも、どーーーーしてもVS.NETでやらなくてはならいならば…
まずWindows Installer SDK(Platform SDKの一部)のドキュメントを熟読する。
orcaとmsi編集ツールを駆使するのだ!
594
名前:
593
:03/08/02 22:39
>593
に追加。
(4)は結局はmsiのプロパティをちょこっと変更すればいいだけなんだけど。
VisualStudioのビルドに組み込むのが大変だし管理しづらくなるので
全然お勧めしない。
595
名前:
583
:03/08/03 13:31
つりーで苦戦してる。MFCでエクスプローラースタイルでつくって
GetTreeCtrl()でアイテム追加してるんだけど、
ttp://aiton21.tripod.co.jp/a.JPG
みたいになって、TVI_ROOT指定でもこれの上にアイテムが追加できない。
このもう一個上にアイテム追加するにはどうすれば?
596
名前:
595
:03/08/03 14:33
上ってのは階層の話です。。。
597
名前:
デフォルトの名無しさん
:03/08/03 14:45
>>595
これは全部ルートになってる
先にルート作って、そのときに返ってくるHTREEITEMを使って子を作る
598
名前:
595
:03/08/03 15:01
TVS_LINESATROOT指定してたあああああああ!!
597さんまじすいません。。。
つくづく自分はばかだなぁと・・・・
599
名前:
デフォルトの名無しさん
:03/08/03 18:42
CString iconname;
Treename = "icon";
HICON iconname;
間接操作のレベルが異なるって出るんだけど、
どうすればCStringの文字列でHICONを作れる??
600
名前:
デフォルトの名無しさん
:03/08/03 18:42
あれ。。。
CString iconname;
iconname = "icon";
HICON iconname;
だよ
601
名前:
デフォルトの名無しさん
:03/08/03 18:50
きのせいだよ
602
名前:
デフォルトの名無しさん
:03/08/03 19:17
もうめちゃくちゃだな
603
名前:
584
:03/08/03 22:29
>>593
解説ありがとうございます。
(1)は仕組み的にだめだったので、いまは(3)でやっています。
#やっているというかなにもしていないというかw
VS.NETのインストーラ作成機能はしょぼいんですね。
SDKのドキュメントにはいろいろ書いてあるっぽいのに
なぜできないんだろうと思っていました。
(4)はおすすめでないとのことなので、(3)を検討してみようと思います。
しかし8万か22万ですか...。
とはいえ、SDKのドキュメントを理解するのは大変そうですし。
604
名前:
デフォルトの名無しさん
:03/08/04 18:26
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=81
に貼ってあるリングバッファのソースなのですが、
何処が悪くてコンパイルが通らないのか皆目検討がつきません。
どなたかご教授お願いします。
605
名前:
デフォルトの名無しさん
:03/08/04 18:49
>>604
に書いてある質問なのですが、
どういうエラーが出てコンパイルが通らないのか皆目検討がつきません。
どなたかご教授お願いします。
606
名前:
デフォルトの名無しさん
:03/08/05 08:15
>>605
コンパイルとおったのですか?
下のはVCが吐いたエラーログです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/999294620_82/CRINGBUFF.plg
ちなみにコードは書くだけかいてあるんですが、何で見っけてくれないのでしょう??
環境はVC6sp5です。どなたかご存知ありませんか??
607
名前:
デフォルトの名無しさん
:03/08/05 11:28
>>606
簡単に言うと、おまいが test.cpp から呼び出した
int CRingBuff::Out
bool CRingBuff::In
CRingBuff::CRingBuff
は実体がねぇぞってコンパイラ様がお怒りに
なってるってこった。
608
名前:
604&606
:03/08/05 19:07
書いてあるのだけど、何で見つけてくれないんだろ・・・。
うーん。
もうちょっと考えてみます。
#今見て気づいたけど、エラーログとIDEのエラー表示が若干違うな・・・。
>605
&607
レスThx!
609
名前:
デフォルトの名無しさん
:03/08/07 00:49
もまいら教えてくさい!!
VS6.0なのですが、上書きのときのエディタの
キャレットが通常のときと一緒なのですがVS.NETの
ように上書きのとき幅広にしてわかるようにできないものでしょうか?
610
名前:
デフォルトの名無しさん
:03/08/07 01:52
DLLプロジェクトからLIBファイルを作成するにはどう
すればいいのでしょうか?
611
名前:
デフォルトの名無しさん
:03/08/07 03:48
Cを知らないとC++を習得するのは無理ですか?
612
名前:
デフォルトの名無しさん
:03/08/07 03:52
>>611
んなこたぁない。
613
名前:
_
:03/08/07 04:01
http://homepage.mac.com/hiroyuki45
614
名前:
デフォルトの名無しさん
:03/08/07 10:40
>>611
C++はCの拡張規格であるから、
C++でCの基本的な書式や関数はだいたいそのまま使える。
だから書式がC++より単純なCの方からやり始めた方が、
プログラミングの勉強がしやすい。
いきなりクラスとかコンストラクタとか聞かれてもわけ分からんでしょ?
615
名前:
デフォルトの名無しさん
:03/08/07 10:59
いきなりポインタとか聞かれてもわけ分からんと思うが
616
名前:
デフォルトの名無しさん
:03/08/07 11:28
なんで初心者用のguiを主体にしたC++のプログラム勉強のページとか本とかないんですか?(あってもちょっとしか載ってない)
魔法の文いっぱいでも良いから、誰か作ってよ!
exeファイルにならないとおもしろくないよぉ!
617
名前:
デフォルトの名無しさん
:03/08/07 11:46
>>616
面倒でも最初はコンソールで
しこしこやったほうがいいだろうねぇ
どうしてもやりたいなら簡単なダイアログベースで
やればいいと思われ。
618
名前:
デフォルトの名無しさん
:03/08/07 11:52
そこでBCBなんですっ!!
GUI主体のC++だから初心者でも安心
MFCと同じ、なんて考えてる人は一度触ってごらんよ
世界が変わるよ
619
名前:
デフォルトの名無しさん
:03/08/07 11:58
>>616
そりゃ、VC++ は基本的に“GUI を主体にしていない”からですよ。
620
名前:
デフォルトの名無しさん
:03/08/07 12:09
ウインドウズ同士の(移動、サイズ変更時の)当たり判定って簡単にやれる方法(APIとかで・・・)ないっすか?
一応チャイルドウインドウ限定ということで・・・。
spy++見ても、あるウインドウがWM_SIZINGとか来てるときに他のウインドウに重なっても、
重なられたウインドウってメッセージとかきてないみたいなんですよね。
やはり古典的な方法でやるしかないのでしょうか?
621
名前:
620
:03/08/07 12:10
すいません、win32apiのみで、MFCは使用してないっす。
622
名前:
デフォルトの名無しさん
:03/08/07 13:10
>>610
libファイルってDLLと同じ場所に勝手にできるんじゃなかたっけ?
>>620
SDK32:重なったウィンドウの表示されている部分を調べる
ttp://support.microsoft.com/default.aspx?scid=kb;ja;75236
「古典的な方法」って IntersectRect()を使うことかな?
623
名前:
620
:03/08/07 13:44
>>622
ありがとうっす。なんとかなるかな?
古典的な方法・・・ゲームみたいにそれぞれ個別に自前でチェック・・・。
624
名前:
620
:03/08/07 14:25
>>622
なんとかうまくいきそうです。ほんとありがとうございました。
625
名前:
610
:03/08/07 16:12
>>622
>libファイルってDLLと同じ場所に勝手にできるんじゃなかたっけ?
すんません。クラスをエクスポートしていませんでした。
全く何もエクスポートしないとlibはできないんですね。
626
名前:
デフォルトの名無しさん
:03/08/07 16:40
初心者用HP参考にしてなんとかやってる者でつが、
DirectInputの初期化で手間どってます
// DirectInput の初期化
ShowWindow(SW_SHOW);
167res = DirectInputCreate(AfxGetInstanceHandle(), DIRECTINPUT_VERSION, &m_pDInput, NULL);
if( res != DI_OK )
{
170res = DirectInputCreate( AfxGetInstanceHandle(), 0x0300, &m_pDInput, NULL);
if( res != DI_OK )return 1;
}
res = m_pDInput->CreateDevice( GUID_SysKeyboard, &m_pDInputDev, NULL);
res = m_pDInputDev->SetDataFormat(&c_dfDIKeyboard);
res = m_pDInputDev->SetCooperativeLevel( AfxGetMainWnd()->m_hWnd, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND);
m_pDInputDev->Acquire();
上をビルトすると
c:\Download\Lv2_Src\MainFrm.cpp(167): error C2065: 'DirectInputCreate' : 定義されていない識別子です。
c:\Download\Lv2_Src\MainFrm.cpp(167): error C2440: '=' : ''unknown-type'' から 'HRESULT' に変換できません。
c:\Download\Lv2_Src\MainFrm.cpp(170): error C2440: '=' : ''unknown-type'' から 'HRESULT' に変換できません。
こんなエラーが出てきます。解決策教えて下され
627
名前:
デフォルトの名無しさん
:03/08/07 20:26
>>626
鬱だ氏のう DirectX (Part 9)
http://pc2.2ch.net/test/read.cgi/tech/1054553472/
628
名前:
悩み常駐
:03/08/07 20:43
winapiで、フォーカスのない時でも、キーイベントを監視したい、つまり、
常駐プロがラムを作成したい、誰か、教えてください。help help help
629
名前:
デフォルトの名無しさん
:03/08/07 21:04
>>628
> 常駐プロがラムを作成したい
ごめん、少しワロタ
630
名前:
フック船長
:03/08/07 21:53
>>628
SetWindowsHookとかそのあたりを使おう。
631
名前:
デフォルトの名無しさん
:03/08/08 06:36
何気にMSDNライブラリを見るやつでwebみたらタブブラワザなんじゃ、、
632
名前:
デフォルトの名無しさん
:03/08/08 12:37
外のフォルダにあるアイコンファイルを、現在のプロジェクトに
追加したいのですが、リソースビューで
「リソースの追加」→「インポート」として、他フォルダのアイコンファイルを
選択して「開く」としても何も起こらないのです。
「リソースの追加」の「インポート」ってどの様にして使うのですか?
全く何も起こらないのですが
633
名前:
デフォルトの名無しさん
:03/08/08 13:28
>>632
パスに日本語を含むフォルダからはリソースがインポートできない。
VS.NETのバグと思われ。これVS.NET2003では直ってますか?
634
名前:
デフォルトの名無しさん
:03/08/08 14:04
>633
どうもありがとうございます。
しかしVC.NETのバグだったとは・・・。
そういうバグ情報ってどこから仕入れているのですか?
635
名前:
デフォルトの名無しさん
:03/08/09 06:21
SDIでリストコントロールとかツリーコントロールを作って、OnCrickのメッセージを
拾い選択されているアイテムの情報を得ようとしても、一回目のクリックは前回クリック
した位置のアイテム情報を拾ってしまうんですが、これを回避する手段はありますか?
UpdateDataをしてみたり2回GetSelectedItemをしてみても最初のクリックで拾うのは
無効なデータ(戻り値が0x00000000)になってしまいます
VC6SP5 Win98SEです。
636
名前:
デフォルトの名無しさん
:03/08/09 10:53
>>635
>一回目のクリックは前回クリック した位置のアイテム情報を
一回目にクリックしたのになんで「前回」があるの?
637
名前:
デフォルトの名無しさん
:03/08/09 17:01
if(前回のアイテム == NULL)
return;
みたいなのではダメなのか?
638
名前:
デフォルトの名無しさん
:03/08/09 17:05
と思ったらなんか勘違いしてた
636同様よく分からん
639
名前:
635
:03/08/09 19:42
>一回目にクリックしたのになんで「前回」があるの?
分かりづらくてすみません。一回目では前回の情報はありませんから
必ず失敗するんです。
クリック位置 : GetSelectedItemの戻り値
一個目 : 失敗
二個目 : 一個目のハンドル
三個目 : 二個目のハンドル
四個目 : 三個目のハンドル
・ ・
・ ・
という状況なんです。ちなみに同じアイテムを二回クリックすれば
そのアイテムのハンドルは得られるんですが、そんなことする必要の
あるソフトなんて見たことないですし・・・
640
名前:
デフォルトの名無しさん
:03/08/09 19:57
あ、わかった。
OnLbuttonDown(){
i = GetSelectedItem()
DefWindowProc()
}
みたいなことになってるでしょ。
641
名前:
635
:03/08/09 20:41
>>640
なってます。微妙に違いますが↓
OnClickTree(){
m_hSelectedTreeItem=m_cTree.GetSelectedItem();
TRACE(HTREEITEM[%08X]が選択されました\n",m_hSelectedTreeItem);
}
ってなってます。ほかにどうすればいいのか知らないので・・・
642
名前:
デフォルトの名無しさん
:03/08/09 20:58
HitTestとGetCursorPos使って判定してくらはい。
http://www.codeguru.com/forum/printthread.php?threadid=231232
643
名前:
デフォルトの名無しさん
:03/08/09 21:23
TVN_SELCHANGEDじゃあかんのか
644
名前:
635
:03/08/09 21:33
>>642
参考にしてみたところ嘘みたいに動くようになりますた。ありがd
645
名前:
635
:03/08/09 21:37
う゛っSELCHENGEDならGeteSelectedItemでも出来るのね・・・
646
名前:
デフォルトの名無しさん
:03/08/10 11:43
ソースを眺めてると標準ライブラリのstringでなくCStringを使ってる香具師が多いようですがCStringがstringより優れてる点ってどの辺りでしょうか
647
名前:
デフォルトの名無しさん
:03/08/10 12:08
MFCがインターフェースとしてCStringを使っているから。
CString::Formatがあるから。
648
名前:
デフォルトの名無しさん
:03/08/10 12:29
>>647
ありがと
649
名前:
名無し@沢村
:03/08/10 13:35
>>646
マルチバイト文字に対応している。
650
名前:
デフォルトの名無しさん
:03/08/10 15:38
VC++でリリースビルドした実行ファイルにプロジェクトファイルが保存されていた
フォルダ名が残っていますが消せますか?
それともみなさんあまりそういうの気にせずに配布してます?
651
名前:
デフォルトの名無しさん
:03/08/10 15:43
>>646
参照カウントを使用していて代入やパラメータ渡しが高速だから
652
名前:
デフォルトの名無しさん
:03/08/10 15:57
>>650
VC6で?ホントにリリースビルドか?
653
名前:
デフォルトの名無しさん
:03/08/10 16:43
>>652
2003です
実行ファイルの場所がReleaseフォルダなので大丈夫じゃないかと思います
ちょっと訂正
pdbファイルがフルパスで記述されてます
654
名前:
デフォルトの名無しさん
:03/08/10 17:54
>>653
Releaseビルドの場合もデフォルトでは/PDBオプションが付くようだ。
はずしかたは/PDBオプションのヘルプで。
655
名前:
デフォルトの名無しさん
:03/08/10 18:17
>>654
構成プロパティ→リンカ→デバッグ→デバッグ情報の生成
をいいえにすることで解決しました
ありがとうございました
656
名前:
646
:03/08/10 18:45
>>649
>>651
CStringも結構便利なのね。
657
名前:
デフォルトの名無しさん
:03/08/10 21:22
>MFCがインターフェースとしてCStringを使っているから。
これがでかいんじゃないかな。
wstring使っててもそれだけじゃすまないし。
658
名前:
デフォルトの名無しさん
:03/08/10 21:30
>>655
これってプロジェクト毎に設定するしか方法ないのかな?
すべてのプロジェクトでReleaseビルドはデバッグ情報の生成を切る
オプションってないの?
659
名前:
デフォルトの名無しさん
:03/08/11 03:39
シンボルファイルってどう使うんですか?
DirectX9.0bのシンボルとかDLしたんですが、使い道がサパーリ(;´Д`)
660
名前:
デフォルトの名無しさん
:03/08/11 09:32
下記のようなメッセージが出るのですが原因がわかず困っています。
どなたか分かる方はいらっしゃいますか?
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
例外処理 (初回) は RecTest.exe (KERNEL32.DLL) にあります: 0xE06D7363: Microsoft C++ Exception。
661
名前:
_
:03/08/11 09:44
http://homepage.mac.com/hiroyuki45/hankaku05.html
662
名前:
恵比寿帝冥
:03/08/11 12:59
ここ以外に良い掲示板があったら教えてください。
663
名前:
デフォルトの名無しさん
:03/08/11 13:23
Visual C++.netのいい参考書orサイトってありますか?
664
名前:
デフォルトの名無しさん
:03/08/11 13:26
>>662
マルチ
665
名前:
デフォルトの名無しさん
:03/08/11 17:39
タスクトレイにアイコンを表示してメニューを表示するところまではできたんですが
そのメニューの項目をクリックしないと消えてくれません。
えっと、やっぱ他の別のウィンドウとかをクリックして
メニューがアクティブでなくなったら消えてほしいんですが
いつまでもしつこく出ています。
どーすれば、消えてくれるんでしょうか?
666
名前:
デフォルトの名無しさん
:03/08/11 18:46
>>665
SetForegroundWindow(hWnd);
TrackPopupMenu(...);
PostMessage(hWnd, WM_NULL, 0, 0);
ってな話だったと思う。
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenu.asp
これのRemarksとShow Exampleを見るべし。
667
名前:
デフォルトの名無しさん
:03/08/11 22:50
XMLの出力をしたいんですが、普通にファイル出力で出力してくしか分からないんですが、
何かいい方法ありますか?
668
名前:
デフォルトの名無しさん
:03/08/11 23:42
とりあえず、その分で本当に人に意味が伝わるか
自分で確認してからもう一度書いておくれやす。
何に対してどのようにしたいからXMLを出力したい?
669
名前:
デフォルトの名無しさん
:03/08/11 23:48
テキストエディタをつくりたいのですがエディットボックスコントロールでは
最大32kbまでの文字列しかあつかえないそうですが大きなサイズの文章編集
が出来るものをつくるにはどうすればいいのですか
670
名前:
デフォルトの名無しさん
:03/08/11 23:54
>>669
RichEditBoxだったかな・・・そんなのがあるよ
671
名前:
デフォルトの名無しさん
:03/08/12 00:06
>670
ありがとうございます
助かります
672
名前:
デフォルトの名無しさん
:03/08/12 01:16
>テキストエディタをつくりたい
もし、秀丸とかその系統のものを目指しているなら
自作が早道。RichEditCtrl はとかく使いにくい。
673
名前:
665
:03/08/12 11:08
>>666
SetForegroundWindow(hWnd);
こいつがなかったせいみたいでした。
つけたらOKでした。
ありがとうございました。
674
名前:
デフォルトの名無しさん
:03/08/12 11:17
VC++からDBの操作についてなのですが、
CDaoRecordsetの派生クラスをつくりクラスウィザードで
複数のテーブルを選択して派生クラスのメンバ変数として
選択した複数のテーブルがメンバ変数に登録されたのですが、
1つのテーブルだけを処理したいのですが、可能なのでしょうか?
たとえば下記のようなコードを実行すると意味のわからない
レコード数が戻ってきてしまいます。
クラスを作る段階で選択しているテーブルが1つだけなら
問題なくレコード数なのどは参照できるのですが・・・
----ここから----
CRecSet MyRecSet;
MyRecSet.Open();
MyRecSet.MoveLast();
long RC = MyRecSet.GetRecordCount(); //ここに意味不明な数値
MyRecSet.Close();
675
名前:
デフォルトの名無しさん
:03/08/12 11:59
VC.NETなんですけどダイアログにコントロールを追加するには
どうすればいいんでしょうか?
676
名前:
恵比寿帝冥
:03/08/12 12:08
662の結果です。
----------------------------------------
VC超初心者会議室
http://www.mtakahashi.com/bbs.htm
----------------------------------------
VC ラウンジ
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi
----------------------------------------
Visual C++ Q & A 掲示板
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi
----------------------------------------
2チャンネル
http://www.2ch.net/
----------------------------------------
VC++に関する質問・回答BBS
http://www.net24.ne.jp/~kenji/bbs/wforum.cgi
----------------------------------------
プログラミング質問掲示板
http://cgi2.html.ne.jp/~piro/bbs/wforum.cgi?page=0&mode
----------------------------------------
C言語関係掲示板
http://www2.realint.com/cgi-bin/tbbs.cgi?pointc
677
名前:
デフォルトの名無しさん
:03/08/12 13:45
独自のライブラリを作ってそれに名前空間名Commonを
つけて、それをつかうために
using namespace Common;
と書いたのですが、
`global namespace'' のメンバではありません。
と叱られてコンパイルできません。
Common::function();
と完全修飾すれば通るのですが...
なにか原因は考えられるでしょうか?
678
名前:
677
:03/08/12 15:50
↑C++相談室で教えてもらいますた。
ありがとうございますた。。。
679
名前:
デフォルトの名無しさん
:03/08/12 17:34
新規作成(Win32プロジェクト)のコードをそのままビルドしようとすると
Debugだと
project1 error LNK2001: 外部シンボル "__RTC_InitBase" は未解決です。
project1 error LNK2001: 外部シンボル "__RTC_Shutdown" は未解決です。
project1 error LNK2019: 未解決の外部シンボル @_RTC_CheckStackVars@8 が関数 _WinMain@16 で参照されました。
project1 error LNK2019: 未解決の外部シンボル __RTC_CheckEsp が関数 _WinMain@16 で参照されました。
project1 fatal error LNK1120: 外部参照 4 が未解決です。
Releaseだと
project1 error LNK2019: 未解決の外部シンボル @__security_check_cookie@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
project1 error LNK2019: 未解決の外部シンボル ___security_cookie が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
project1 fatal error LNK1120: 外部参照 2 が未解決です。
というエラーが出るのですが何が原因でしょうか?
環境/Win2000/VC++.NET
680
名前:
デフォルトの名無しさん
:03/08/12 21:48
VC++.NETなんですけど、
WM_CLOSEメッセージが来た時に、MessageBoxを出して終了するかしないかを決定するのを組んだのですが、
メッセージボックスが表示されません。Altキーを押すと出てくるんですが。。
何が原因なんでしょうか?
以下がその部分です。よろしくお願い致します。
case WM_CLOSE:
int nResult;
nResult = MessageBox(hWnd, "本当に終了してもよろしいですか?", "確認",
MB_YESNO | MB_ICONQUESTION | MB_TOPMOST | MB_SETFOREGROUND);
if(nResult == IDYES) DestroyWindow(hWnd);
break;
681
名前:
デフォルトの名無しさん
:03/08/13 01:20
つまらないことですがお願いいたします。
VC++のエディタでクラスのコンストラクタが自動メンバ表示
されないのですが(デストラクタはされる)何か理由が
あるのでしょうか?
682
名前:
デフォルトの名無しさん
:03/08/13 01:38
直接呼べないコンストラクタを補完して何かうれしいのかね?
683
名前:
681
:03/08/13 01:48
>>682
でもデストラクタは呼べるのですが。
684
名前:
デフォルトの名無しさん
:03/08/13 01:55
たしかに、デストラクタは明示的に実行できるね。
でも、それは反論にはなっていないよ。
685
名前:
681
:03/08/13 02:18
もう一回コンストラクタ、デストラクタから
勉強しなおしてきます。。。
686
名前:
デフォルトの名無しさん
:03/08/13 12:15
デストラクタは明示的に呼べるが、
コンストラクタは明示的に呼べない。
従って、コンストラクタを補完する必要はない。
687
名前:
デフォルトの名無しさん
:03/08/13 15:03
VC++6(sp5)でstlport4.5.3を使い始めたんですが、
#include <iostream>
#include <deque>
using namespace std;
上記のように宣言すると、iostreamでライブラリの競合エラーが出て使えません。
これを回避する方法ご存知でしたら教えていただけないでしょうか。
688
名前:
デフォルトの名無しさん
:03/08/13 21:55
>>687
確かstlportの優先順位をageれば良かった気が…
689
名前:
デフォルトの名無しさん
:03/08/14 06:41
C++って、Cより++(チョメチョメ)な分エロいんですか?
どんなプレイのことをC++(シーチョメチョメ)って呼ぶんですか?
それと昔、棒ランド(某ランド?)っていうヤバい会社もC++してたんですか?
MSのはVisual的にスゴいのか・・・(;´Д`)ハァハァ
690
名前:
687
:03/08/14 10:57
>>688
解決しました。ありがとうございました。
691
名前:
デフォルトの名無しさん
:03/08/14 11:07
C言語なら俺に聞け!スレから来たんですが、VCでのDLLの
作り方がよく わからず、困っております。どなたかわかりやすく
教えてください。 それか、ソースを晒すのでDLLにしてください。
おねがいします。(サイトみて手順通りやってみたけどできない
泣)
692
名前:
デフォルトの名無しさん
:03/08/14 11:14
ソースだけ晒しても無駄ですんで、
どうできなかったのか具体的に説明してください。
693
名前:
691
:03/08/14 11:25
http://www.angel.ne.jp/~mike/vb_dll/index.html
このサイトの通りやったんですけど、なんか、関数名(?)みたいな
所でエラーが出てしまい、また、defファイルの加え方もよくわかり
ません。教えてください。(Cはある程度使えますが、VCは本当に
初心者です)
694
名前:
デフォルトの名無しさん
:03/08/14 12:05
>>693
http://www.athomejp.com/goldfish/
の
http://www.athomejp.com/goldfish/mfc/dll/csample.html
辺りを参照してみてください。
>>693
のサイトより単純明快だと思いますんで。
695
名前:
デフォルトの名無しさん
:03/08/14 15:05
VC++ 6.0でクラスライブラリを作って、そのヘッダやライブラリファイル
が入っているフォルダをオプションのディレクトリのところに登録したんだが、
いざそのクラスのヘッダファイルをインクルードしてもビルドはちゃんと
できるのにメンバがMFCやWin32の関数みたいにエディタのIntellisence機能で出てきて
くれないんだけど、どうしたらいいんでつか?
やっぱりその都度、プロジェクトにソースやヘッダファイルを追加しないとダメなんですか?
696
名前:
デフォルトの名無しさん
:03/08/14 15:47
ヘッダーだけプロジェクトに参加させればえぇで。
697
名前:
デフォルトの名無しさん
:03/08/14 17:02
昔にCでDOSで動くやつを書いていたんですけど、さすがにGUIアプリケーション作りたくなってVCを使ってみたいと思いました。この場合、開発過程の習得は簡単なのでしょうか?
不安なのはCとC++で文法がどれぐらい違うのかということです。
698
名前:
デフォルトの名無しさん
:03/08/14 17:19
Console ApplicationをMFCサポートで作成しています。
プログラム実行中に、右上の×ボタンを押下すると強制終了できますが、
強制終了できないようにすることは可能でしょうか?
699
名前:
デフォルトの名無しさん
:03/08/14 17:32
>>697
CとC++の違いっつうと、クラスとオーバーロードかね。(ほかにもあるけど)
もっともそれよりもWindowsアプリの場合は結構めんどくさい事しなきゃならんから
まずC++を勉強するのか先か?
猫でも分かるプログラミングでも読んでみ?
ぐぐればすぐ出る。
700
名前:
デフォルトの名無しさん
:03/08/14 18:06
>>698
永遠に止まらないプログラムを書きたいのですね?
701
名前:
デフォルトの名無しさん
:03/08/14 18:09
>>700
途中で窓を閉めてしまうとエラーがでてしまいます。
なので、処理終了後には自動で窓が閉めれるといいのですが・・・
702
名前:
デフォルトの名無しさん
:03/08/14 18:47
ソースを選択してctrlかシフトを押しとどれかのキーを押すと自動にソースにあった
インデントが入る機能があったと思うんだが、どうやるんだっけ?
703
名前:
695
:03/08/14 18:52
>>696
レスさんくすです。
Win32API関数とかが、何もしなくてもIntellisenceが起動するのはVC++内部の仕様なんですかね?
704
名前:
デフォルトの名無しさん
:03/08/14 18:56
バグです
705
名前:
デフォルトの名無しさん
:03/08/14 19:21
>>702
Ctrl+K→Ctrl+F (VC++.NET)
Alt+F8 (VC6)
706
名前:
デフォルトの名無しさん
:03/08/14 20:02
>>697
違いというよりも追加要素といった方がいいな。
とりあえず、クラスの構造や機能を理解して、
さらにクラスの継承、コンストラクタ・デストラクタ、
オーバーロード、オーバーライド、エラー処理を
最低限抑えておくとVC++に移行しやすい。
テンプレートもやっておくと便利だが、
やらなくてもとりあえずVC++は使えるので、
VC++を使いながら勉強しても特に問題ない。
漏れはC→Java→VC++と変則型だったので、
VC++やりながらC++も勉強した。
まぁ、JavaとC++は内部処理的にはともかく書式は似ているので、
それほど苦にはならなかったけど。
707
名前:
デフォルトの名無しさん
:03/08/14 20:03
>>705
あんがと
Altだったか。
708
名前:
デフォルトの名無しさん
:03/08/15 01:42
Visual C++で
mylib.h
// mylib_tの説明
typedef struct mylib_t
{
int value; // valueの説明
} mylib_t;
// mylib_initの説明
void mylib_init(mylib_t *self);
mylib.c
#include "mylib.h"
#include <memory.h>
void mylib_init(mylib_t *self)
{
memset(self, 0, sizeof(*self));
}
というソースをビルドしてmylib.libを作ります。
次に別プロジェクトのapp.cからmylib.hをインクルードして
関数・構造体をインテリセンスで列挙したところ
コメント部分がチップヘルプで表示されません。
mylib.h, mylib.cをapp.cと同じプロジェクトに移動すると表示されます。
ソースを提供しないでヘッダとライブラリファイルだけでリリースして
なおかつインテリセンスのチップヘルプでのコメント表示を有効にするには
どうすればいいのでしょうか。mylib.bscをlibと同じディレクトリに生成しても表示されませんでした。
709
名前:
デフォルトの名無しさん
:03/08/15 03:33
>>708
よ。VisualC++スレで
>Visual C++で
は、ないだろ。
710
名前:
デフォルトの名無しさん
:03/08/15 13:22
>>708
不可能。
711
名前:
デフォルトの名無しさん
:03/08/15 14:03
質問お願いいたします。
TRACE0マクロでデバッグウィンドウに文字を出力する方法を
最近覚えたのですが、例えばintとかに入っている
数値を出力する場合も文字に変換しないといけないのでしょうか?
(そのまま出力すると数値でなく文字化けみたいになるのですが)
712
名前:
デフォルトの名無しさん
:03/08/15 14:06
// TRACE の例
int i = 1;
char sz[] = "one";
TRACE( "Integer = %d, String = %s\n", i, sz );
713
名前:
711
:03/08/15 14:12
>>712
できました!
サンクスコです!!
714
名前:
691
:03/08/15 14:49
どうにか作ってみたんですが、VBから呼び出せないようです。
書き方自体が根本的に間違っているかもしれないので、
どなたか見てやってください。
ちなみに、外から呼び出したいのはdoublemulapi関数だけで、他の関数は
DLLの中でdoublemulapi関数から呼ばれるだけの関数です。
http://www12.ocn.ne.jp/~mygrid/DOUBLEMUL.TXT
715
名前:
山崎 渉
:03/08/15 15:10
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
716
名前:
デフォルトの名無しさん
:03/08/15 15:23
extern "C"が要らなかったっけ?
717
名前:
691
:03/08/15 15:56
>>716
すいません。本当に手探りなので、どこに付けるのか
教えていただけるとうれしいです。
(ちなみに、return a+b;だけの関数を備えたDLLの場合
は今の書き方で出来ました。関数1個だけの場合)
718
名前:
デフォルトの名無しさん
:03/08/15 17:07
ファイルを実行したら、DAMAGE: after normal block(#40)というのが出てきました。
これは何なんでしょうか?
719
名前:
デフォルトの名無しさん
:03/08/15 19:40
板違いの指摘を受け、パソコン初心者板から移動してきました。
クライアント領域にビットマップを表示したいのですが、
メモリデバイスコンテキストに割り当てたビットマップクラスオブジェクトは
表示終了後に必ず解放しなければなりませんか?
例えば以下のようなコードにおいて、最後の::SelectObject呼び出しは必須ですか?
これを行わないで関数が終了した場合、
pMDCはスコープを失ってDeleteされた結果として
何らかの深刻なエラーを引き起こしますか?
もし起こすとしたら、なぜ起こしますか?
{
CBitmap Bitmap,*pDefBitmap;
CDC *pMDC;
pMDC = new CDC;
// この辺りで::LoadBitmap
pMDC->CreateCompatibleDC(pDC);
pDefBitmap = pMDC->SelectObject(&Bitmap);
// この辺りで::BitBlt
pMDC->SelectObject(pDefBitmap); // ←ココ
}
CPenクラスやCBrushクラスも同様に解放を行わないと実行時エラーが起きるようですが、
どうして起こるのか原理がサポーリです。;_;
高名な先輩プログラマの皆様、よろしくおねてぃ。
720
名前:
デフォルトの名無しさん
:03/08/15 20:26
というか解放して問題が出なければとりあえず解放しといた方が良いと思うんだが
721
名前:
デフォルトの名無しさん
:03/08/15 21:30
それいぜんに、そのコードでは、pMDCとかがリークしているわけだが。
722
名前:
デフォルトの名無しさん
:03/08/15 21:44
>>721
pMDCは関数の終了とともにスコープを失って
自動的にデリート(デストラクタ呼び出し)されませんか?
では↓
{
CBitmap Bitmap,*pDefBitmap;
CDC MDC;
// この辺りで::LoadBitmap
MDC.CreateCompatibleDC(pDC);
pDefBitmap = MDC.SelectObject(&Bitmap);
// この辺りで::BitBlt
MDC.SelectObject(pDefBitmap); // ←ココ
}
MDCを静的に確保してみましたが、これならどうでしょう?
723
名前:
デフォルトの名無しさん
:03/08/15 21:57
>>722
(´-`).。oO(pDefBitmapってちゃんとオブジェクトを指してんのか?)
724
名前:
デフォルトの名無しさん
:03/08/15 22:21
>722
されない。断じてされない。スコープがはずれるのは、ポインタそれ自体で
あって、ポインタの指し示す先にあるオブジェクトではない。
struct test{ ~test(){printf("d");} };というクラスでもでっち上げて試してみたらどう?
さてSelectObjectだが。
・必須です。
・起こします。
・MSDNのDeleteObjectのRemarkには、"Do not delete a drawing object (pen or brush)
while it is still selected into a DC."とあります。そのようなことを前提にAPIが
設計されていないから、でしょう。失敗すれば、結果はリソースリークです。
725
名前:
719=722
:03/08/15 22:35
>>724
>スコープがはずれるのは、ポインタそれ自体であって、
>ポインタの指し示す先にあるオブジェクトではない。
そうでした・・・。m(__)m
今再度調べてみたところ、
::SelectObjectは解放されたオブジェクト(今まで参照していたオブジェクト)を
デストラクタを呼び出してdeleteする機能があるので、
明示的には::DeleteObjectを呼ばなくていいみたいですね。
そういう意味でも、最後の::SelectObject呼び出しは必須だということで・・・
むぅ、動作が難解だ・・・。;_;
回答どもでした。また何かありましたらよろしくお願いいたします。m(__)m
726
名前:
719=722
:03/08/15 22:37
>>723
pDefBitmap = pMDC->SelectObject(&Bitmap);
これは正当なようです。
とりあえず、コンパイラは文句いってきません。(笑
727
名前:
719=722
:03/08/15 22:50
>デストラクタを呼び出してdeleteする機能があるので、
>明示的には::DeleteObjectを呼ばなくていいみたいですね。
・・・と思ったら、やっぱりちゃんとdelete pMDC;ってやんないとダメみたいだわ。(笑
728
名前:
デフォルトの名無しさん
:03/08/16 00:19
VC6ので、ファイルをオープンする時に
const char* じゃなくて stringって使えますでしょうか?
#include <fstream>
...略...
string FNAME = "c:\test.txt";
ifstream file_in;
file_in.open(FNAME);
みたいにしたいのです。
729
名前:
デフォルトの名無しさん
:03/08/16 00:43
>>728
やってみろよ。
730
名前:
デフォルトの名無しさん
:03/08/16 02:40
新規作成(Win32プロジェクト)のコードをそのままビルドしようとすると
Debugだと
project1 error LNK2001: 外部シンボル "__RTC_InitBase" は未解決です。
project1 error LNK2001: 外部シンボル "__RTC_Shutdown" は未解決です。
project1 error LNK2019: 未解決の外部シンボル @_RTC_CheckStackVars@8 が関数 _WinMain@16 で参照されました。
project1 error LNK2019: 未解決の外部シンボル __RTC_CheckEsp が関数 _WinMain@16 で参照されました。
project1 fatal error LNK1120: 外部参照 4 が未解決です。
Releaseだと
project1 error LNK2019: 未解決の外部シンボル @__security_check_cookie@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
project1 error LNK2019: 未解決の外部シンボル ___security_cookie が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
project1 fatal error LNK1120: 外部参照 2 が未解決です。
というエラーが出るのですが何が原因でしょうか?
また、"__RTC_InitBase"や"__RTC_Shutdown"などは何なのですか?
ぐぐってもダメでしたし、MSDNにも見つかりませんでした。
よろしくおねがいします。
(環境/Win2000/VC++.NET)
731
名前:
デフォルトの名無しさん
:03/08/16 03:08
>>730
ヘッダファイルに付属していたであろう
*.lib をプロジェクトにぶちこめ!
732
名前:
728
:03/08/16 11:36
c_str使ったりいろいろ試したんですが無理でした。
素直にconst char* でやります。
733
名前:
デフォルトの名無しさん
:03/08/16 13:15
>>732
string.begin()
734
名前:
デフォルトの名無しさん
:03/08/16 13:16
あるいはMFCならCStringを使うといい
735
名前:
691
:03/08/16 21:10
>>714
どうやら、戻り値がないとDLLはだめ?なのかIntで戻り値を返す
ようにしたら普通に呼び出せるようになりました。(書き方は変えました
が)この事は常識なのでしょうか?それとも、やはり私の書き方がおかし
いのでしょうか。まぁ、とりあえずできたのでよしとします。
736
名前:
デフォルトの名無しさん
:03/08/16 22:14
コーポレイトソフトウェアていうサポセンの馬鹿が
PGに喧嘩売ってます。
http://money.2ch.net/test/read.cgi/haken/1057486349/287
腹立ちました。
みんなでやっつけにいこう。
737
名前:
べんとらべんとらすぺーすぴーぽー
:03/08/17 21:25
質問させてください。m(__)m
これはCPenオブジェクトの配列にそれぞれ別個のPen設定を保存して、
それを切り替えながら文字や線を描画する処理です。
void PenTest(CDC *pDC){
const int iMaxPen = 5;
CPen *myPen[iMaxPen],*pOldPen;
pOldPen = (CPen*) pDC->SelectStockObject(BLACK_PEN); // デフォルト設定を保持
for (int i=0; i<iMaxPen; i++){
myPen[i] = new CPen;
// ::CreatePenでmyPen[]の各要素に別個のPen設定を保存する
}
// 適宜Penを切り替えながら描画する何らかの処理
// pDCをデフォルト設定に復帰した後、myPen[]を削除
pDC->SelectObject(pOldPen);
for (i=0; i<iMaxPen; i++){
myPen[i]->DeleteObject();
}
delete [] myPen; // ← ココ
}
描画が終わった後、メモリ領域をdeleteしようとすると実行時エラーが起きます。
なぜなんでしょう?;_; ちなみに、
for (i=0; i<iMaxPen; i++){
myPen[i]->DeleteObject();
delete myPen[i]; // ← ココ
}
のように書くとエラーはおこりません・・・。
むぅ、どちらも配列を削除していることには違いないんだけど・・・。
738
名前:
デフォルトの名無しさん
:03/08/17 21:55
>むぅ、どちらも配列を削除していることには違いないんだけど・・・。
char *p[2]; p[0]=malloc(10); p[1]=malloc(10)
char *p=malloc(20);
の違いがわかるか?
739
名前:
737
:03/08/17 22:12
>>738
むほっ。よく分かりません。;_;
最初の行は要素2のポインタ配列を用意して、
要素のそれぞれに10バイトのメモリ領域へのポインタを割り当てています。
これはdelete [] p;で削除します。
2番目の行は(配列ではない)ポインタに
20バイトのメモリ領域へのポインタを割り当てています。
これはdelete p;で削除します。
これと
>>737
とがどういう風に結びつくのでしょうか。_●□=
740
名前:
デフォルトの名無しさん
:03/08/17 22:12
VC++6.0ってXPにもいれられますか?
741
名前:
デフォルトの名無しさん
:03/08/17 22:24
>>739
> これはdelete [] p;で削除します。
だめ
742
名前:
デフォルトの名無しさん
:03/08/17 22:25
>739
1.char *p[2]; p[0]= new cahr [10]; p[1] =new char [10]
2.char *p[2]; p[0]= new char; p[1]=new char;
・1,2について解放の仕方をそれぞれ述べよ(10点)。
743
名前:
737
:03/08/17 23:28
>>742
1番
{
char *p[2];
p[0]= new char [10]; p[1] =new char [10];
for (int i = 0; i < 2; i++){
delete [] p[i];
}
}
2番
{
char *p[2];
p[0]= new char; p[1]=new char;
delete [] p;
}
・・・くわっ!Σ( ̄□ ̄;
そうか、delete [] p; っていうのは、
ポインタが参照するメモリ領域が配列の時に使うのですね!
ポインタ自身が配列の時に使う構文じゃないってことですか。
2番は間違えですね。ひゃっひゃっひゃ・・・恥ずかP。(〃゚▽゚;A
ありがとうございました。m(__)m
744
名前:
デフォルトの名無しさん
:03/08/18 03:35
appidってどうやったらわかりますか?
745
名前:
デフォルトの名無しさん
:03/08/18 03:38
appid?
746
名前:
デフォルトの名無しさん
:03/08/18 04:07
>>740
http://www.microsoft.com/japan/msdn/vs_previous/vstudio/techinfo/toolos.htm
747
名前:
744
:03/08/18 13:48
アプリケーションIDだと思うんですけど。プログラムIDと同じらしいですが
748
名前:
デフォルトの名無しさん
:03/08/18 14:15
とりあえず、appidが出てくるurlの例でも示せ
749
名前:
デフォルトの名無しさん
:03/08/18 17:45
ちょっと相談、っていうか教えて欲しい。
今開発中のアプリにテキストの表示機能が必要と言うことになった。
Notepad.exeを呼び出してもいいが、そのファイルを変更されてしまう可能性がある。
となると、アプリ中で表示しないといけないのだけどなにか手っ取り早い手はあるかな?
750
名前:
デフォルトの名無しさん
:03/08/18 17:52
MFCなら CEditView とかダイアログにテキストボックス作ってそれで表示するとか
Win9xなら64kの制限あるけど
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.