5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

★初心者にVisual C++を教えるスレ★ Part21

1 :デフォルトの名無しさん:2005/08/23(火) 23:11:28
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

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

  ∧_∧
 ( ´∀`) < ぬるぽ

  質問の仕方については次のページが大変参考になります。
  http://www.hyuki.com/writing/techask.html
  http://www.geocities.co.jp/Beautycare/4965/public/template.html
  http://myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

952 :デフォルトの名無しさん:2005/11/05(土) 19:53:56
あ〜
VC++だべよ


953 :デフォルトの名無しさん:2005/11/05(土) 20:24:28
g++とVC++の差分はどれくらいですか?

954 :デフォルトの名無しさん:2005/11/05(土) 20:53:13
エスパーさん、いらっしゃ〜い

955 :デフォルトの名無しさん:2005/11/05(土) 20:57:50
g++とはなんぞ??

956 :デフォルトの名無しさん:2005/11/05(土) 20:59:43
GCCのC++標準コンパイラ

957 :デフォルトの名無しさん:2005/11/05(土) 21:02:50
すまぬがわからむ。。。。。。。。



958 :デフォルトの名無しさん:2005/11/05(土) 21:13:33
>>953
C++の規格への対応に関しては(両者最新版では)ほぼ同じ。
基本的にはMFCとかATLが付属するかどうかが両者の違い。(VCTKなどは考えないものとする)
尤もMFCやATLはおそらくg++でも使えなくはないと思われる。

959 :デフォルトの名無しさん:2005/11/05(土) 22:55:43
ttp://www.kab-studio.biz/Programing/PragmaTwice/

>#pragma twice は Visual C++ を使用したプログラミングを1から教える初心者向け講座です。
>プログラミングの経験がまったくない方を対象に書いていますから、どなたでもすんなり入っていけるでしょう。
>それに、内容は水希と火美ちゃんの会話形式なので、とても分かりやすくなっています。


こんなサイトみつけた。VC入門には良いかもしれん。
先に言っとくけど俺はこのサイトの作者じゃないぞ! 本当だぞ!


960 :デフォルトの名無しさん:2005/11/05(土) 23:50:21
>>959
よくぐぐるさんで引っかかるサイトだね。
ただ・・・非常に読みにくい気が・・・・

961 :デフォルトの名無しさん:2005/11/06(日) 00:34:57
>>958
>尤もMFCやATLはおそらくg++でも使えなくはないと思われる。
いくらなんでもg++にMFC,ATLは無理でしょう。Windows版だけ有効になるわけ?そんなバナナ。


962 :デフォルトの名無しさん:2005/11/06(日) 01:02:55
>>959
>「2年実戦的なことを学んで、ここで3年勉強すれば、もうエリートじゃな
>い、すごいよね」

963 :デフォルトの名無しさん:2005/11/06(日) 01:13:32
>>959
コレ全部読めたらもう怖いものなしだね。
もうプログラミングで挫折することはなさそう

964 :デフォルトの名無しさん:2005/11/06(日) 01:25:52
小説部分は確かにヒクなw

965 :デフォルトの名無しさん:2005/11/06(日) 02:55:16
> TRACE
> ( "%d, %d, %d, %d\n"
> , 0 && 0, 0 && 1, 1 && 0, 1 && 1 );

ひくとかむかつくとか以前に、「コードを〈絵〉として見られるから」という割りには審美眼を持たないようで。

966 :C++とMFC:2005/11/06(日) 07:16:11
ご教授宜しくお願い致しますm(_ _)m

スキルとしては、サーバーサイドスクリプト(WEB)を4年程やっています。
Winアプリ開発はまったくの初心者です…(泣
今回、「.NET Frameworkなどの一般ユーザー環境には
インストールされていないランタイムを使わずに」
以下を1年程度で実現しなければならなくなりました。

1.WEB上で動くActiveXを作る  -- ドラッグ&ドロップ・DBGridの配置 など
2.データベースを管理するMDIアプリを作る

勉強として、Visual C++ .NET (2003) の「MFC アプリケーション」で
簡単なMDIメモ帳を作ってみました。

C++で問題の2点を1年程度で実現するに当たり、
MFCで作る(を勉強する)のは正解でしょうか?

例えば「Win32 プロジェクト」の方がいいよ!とか…。
皆様のお知恵をお借りしたいです。宜しくお願いします。


967 :デフォルトの名無しさん:2005/11/06(日) 08:33:09
ActiveXやデータベースだったらMFCの方が良さそうな気はするね。

968 :966:2005/11/06(日) 10:28:56
>967様

早速のレスありがとうございます。
習得ターゲットをMFCに絞って頑張る決意を持てました。
色々ググッていたのですが敷居が高く、
何から手を付けていいものやら…と悩んでいたので
とても助かりました。

厚かましいながら、現在
http://www.geocities.jp/chiakifujimon/text/text.html
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9707/actdoc/axdoc.html
http://homepage3.nifty.com/flare/pc/bcb/index.html
などのサイト様や、猫でもわかる…様、
Googleで「C++ MDI MFC」「inf cab activeX IE」などで調べているのですが、
何か検索キーワードのコツ等があれば、ヒントを頂けませんでしょうか?

969 :デフォルトの名無しさん:2005/11/06(日) 11:55:58
>>966
ttp://www.tt.rim.or.jp/~rudyard/torii009.html

970 :デフォルトの名無しさん:2005/11/06(日) 12:12:18
MFCでActiveX使うのはなんだこんなもんかって感じだが、
VCでDBMS作るとなるとそれこそ、ミドルウェア作るようなもんなんじゃないか、
DAOもといOLEDB使ったとしても、トランザクション組まなくちゃいけないんだろう。
MS-SQL鯖使ったりするならやりやすいだろうけど。
DBMSはサーバサイドJavaに任せてってとこで、C++とJAVAを同じフレームワークでできるDelphiってどうなのかな、ActiveX使えたりするの?Delphi自体使ったことないけど。


971 :966:2005/11/06(日) 12:13:49
>967様

そうですね…(´-ω-`)。
968の件については、昨日から7時間程ずっとググッていたのですが、
行き詰ったのでキーワードの問題かと思った次第でした。
浅はかな考えでお尋ねしてすみませんでした。
教授と教示も間違っていたのですね(汗
MFCで行けると確信できて、大変助かりました。
ありがとうございました。

972 :デフォルトの名無しさん:2005/11/06(日) 13:47:55
コマンドライン引数 255 200 255

#include <stdio.h>
#include <windows.h>
void main(int argc,int *argv[]){
int R = (int)argv[1];
int G = (int)argv[2];
int B = (int)argv[3];
COLORREF color = RGB(R,G,B);
int R2 = GetRValue(color);
printf("%d",R2);
}

などで正しく値が合成されなくて困っています、どうすれば良いでしょうか?
開発環境はVC.net 2003です
よろしくお願いします。

973 :デフォルトの名無しさん:2005/11/06(日) 14:00:37
>>972
atoi

974 :デフォルトの名無しさん:2005/11/06(日) 14:09:33
>void main(int argc,int *argv[])


975 :デフォルトの名無しさん:2005/11/06(日) 14:24:27
うはwwwwうぇうぇwwww
そんな書き方する奴初めてみた。

976 :デフォルトの名無しさん:2005/11/06(日) 14:31:10
>>973
ありがとう。
>>974-975
おかげで気づいた。
ありがとう。

977 :デフォルトの名無しさん:2005/11/07(月) 15:14:01
始めまして、僭越ながら質問させて頂きます。
先日、某所よりDLをしてきた、

http://www.uploda.net/cgi/uploader2/index.php?dlpas_id=0000005863 (PASS=1111です)

上記のツールを、折角ソースファイルも付け加えて下さっているのでという事で、試しにソースからビルドしようとした所、(.vcproj
ファイルを開き、そのままビルド致しました。)Debugというフォルダが出来、その中に出来たexeが入っていたのですがいざその
exeファイルを実行した所、機能ははたしているのですが、104kbという元のexe(これは、たった3kbなのです)と比べ物にならない
程、ファイルサイズの大きなものとなってしまった上に、CPU負荷が30〜40%と非常に大きなものとなりました。

元の3kbのexeファイルを実行した所、CPU負荷はわずか1〜2%という結果でした。
何がいけないのか、何故そのままソース変更もなくビルドをした結果このような事態になってしまった事が不思議です。

お恥ずかしい質問をしているのは承知の上ですが、原因・改善の方法がわかる方、またアドバイスをして頂ける方
よろしくお願い致しますm(_ _)m

978 :デフォルトの名無しさん:2005/11/07(月) 15:29:07
>>977
それはDebugビルドだから。
Releaseビルドに換えれば最適化が施されるので高速(≒低負荷)になり、
デバッグ情報が埋め込まれないので小さくなる。

979 :デフォルトの名無しさん:2005/11/07(月) 15:40:19
>>978
素早いレスありがとうございます。
帰宅後、ご報告を添えると共に、早速Releaseビルドを行ってみようと思います。(まだ未熟な知識の為、手順など不安ですが)

Debugビルドをしていた為、デバッグ情報が埋め込まれていたのですね。
目から鱗な気分です。一つ、勉強になりました。

本当にありがとうございましたm(_ _)m


980 :デフォルトの名無しさん:2005/11/07(月) 15:53:30
おいおい、DebugビルドもReleaseビルドも知らずにVC使ってんのかよ

981 :デフォルトの名無しさん:2005/11/07(月) 16:50:40
>>979
VC6ならビルドメニューのアクティブな構成の設定...、VC7.1ならコンボボックスで変更可能。

982 :デフォルトの名無しさん:2005/11/07(月) 17:22:29
プログラム作れないやつって全然どうでもいいこと気にするんだよな

983 :977:2005/11/07(月) 18:37:28
ただいま帰宅し、早速試してみた所、無事Releaseフォルダが出来、その中にexeファイルが生成されておりました。

ずっと悩んでいた事だったのですごくすっきりました。
こんな小さな事で悩まなくていいように勉強していきたいと思います。

ありがとうございました。

984 :モードレスダイアログが作れません:2005/11/07(月) 21:27:04

親ダイアログからあるボタンを押した場合にモードレスな子ダイアログを
呼び出したいのですが、ボタンを押しても子ダイアログが表示されず(一瞬
表示される?)うまく動きません。可能性としては
1、子ダイアログが作成できていない
2、作成できているが見えていない
3、作成できているがすぐに消えている
当たりが考えられそうですが、原因がつかめません。

プログラムですが、子ダイアログ(IDD_DIALOG1)のクラスにCmyDialogをつくり
親ダイアログのOnBnClickedButton関数内で

 CClientDC myDC(this);
 CmyDialog myDL;
 myDL.Create(IDD_DIALOG1, this);
 myDL.ShowWindow(SW_SHOW);

としています。myDialog.cppの方は特になにもしていません。
個人的には、子ダイアログがすぐ消えているような気がして、myDialog.cpp内で
何かしらのループ処理が必要なのかなとも思うのですが、よく分かりません。
原因や解決策が分かる方がいらっしゃいましたらよろしくお願いします。

環境はWindowsXP,VisualStdio.NET2003、ダイアログベースのMFCを使っています。

985 :デフォルトの名無しさん:2005/11/07(月) 21:35:07
関数内でスタック上に作ったオブジェクトは、関数を抜けると消えるがそういう問題では?

986 :デフォルトの名無しさん:2005/11/07(月) 21:35:25
そのコードだと、ダイアログをスタックに作成しているから
そこを抜けたらすぐに閉じてしまう。ヒープに作成セマウル号。
CmyDialoig* myDlg=new CmyDialog();
myDlg->Create(IDD_DIALOG1,this);
myDlg->ShowWindow(SW_SHOW);

987 :デフォルトの名無しさん:2005/11/07(月) 21:37:06
つーかむしろメンバとして作っとけ

988 :デフォルトの名無しさん:2005/11/07(月) 21:46:11
>>986
もろリーク起こすやんか

989 :デフォルトの名無しさん:2005/11/08(火) 01:07:16
>>988
あれじゃリークするが、

CmyDialog::CmyDialog()
{
  m_pChildDlg=(CDialog *)NULL;
}

CmyDialog::~CmyDialog()
{
  if(m_pChildDilg)
    delete m_pChildDlg;
}

とかすればいい。 モーダレスが1個なら、直接メンバ変数にする方が簡単だが、
複数のモーダレスを作成/破棄するなら、メンバ変数にテンプレート(CPtrArray)
を使った変数でダイアログのポインタを管理した方がいい。

990 :デフォルトの名無しさん:2005/11/08(火) 01:12:39
親→子のアクションが無ければ、delete this で自殺させても可

991 :デフォルトの名無しさん:2005/11/08(火) 01:33:24
つ[モードレス]

992 :デフォルトの名無しさん:2005/11/08(火) 01:48:37
delete NULL; は合法なので、if( foo ) delete foo;は冗長

993 :デフォルトの名無しさん:2005/11/08(火) 02:07:43
高々四行のコードに対する部分を示してあるだけなのに
メモリリークとかケチ付けてる奴は馬鹿だな。


994 :デフォルトの名無しさん:2005/11/08(火) 08:47:17
そんなに悔しがるなよ^^

995 :デフォルトの名無しさん:2005/11/08(火) 11:58:16
二時まで眠れなかったのかw

996 :デフォルトの名無しさん:2005/11/08(火) 18:43:29
次スレは?

997 :デフォルトの名無しさん:2005/11/08(火) 18:48:23
★初心者にVisual C++を教えるスレ★ Part22
http://pc8.2ch.net/test/read.cgi/tech/1131443284/l50

998 :デフォルトの名無しさん:2005/11/08(火) 19:42:45
998

999 :デフォルトの名無しさん:2005/11/08(火) 19:52:52
999

1000 :デフォルトの名無しさん:2005/11/08(火) 19:53:31
1000ならVisual C++ 2005 日本語版が年内に販売。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

258 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)