- ベストアンサー
今からVC6の勉強をするのは時間の無駄ですか?
10年くらい(?)前、かなり気合を入れてVB6を勉強したことがあるのですが、 その時にその流れでVC6の入門書も数冊購入して勉強しました。 半分くらいは理解できたと思っています。 その後、VB6を触ることも無かったのですが、最近、仕事で再びVB6に携わり、VC6をまた勉強したくなりました。 当時購入したVC6の書物は残してあるので、あとは勉強するだけなのですが、 しかし今では「.NET C++ 2008」とやらに進化していますよね。 それで質問なのですが、今からVC6の勉強をするのは時間の無駄でしょうか? WindowsAPIやらMFCの使い方などを学ぶのは決して無駄ではないと思うのですが、どうせならやっぱり「.NET C++」に切り替えて学ぶべきでしょうか? (本だけは数冊あるので出費しなくて済むし、一度は読んだ本だから理解もしやすいのではなかろうかという気持ちがあります) VC6と「.NET C++」との違いもよく理解できていないので、頓珍漢な質問になっているかもしれませんが、ご教授よろしくお願いします。 ※1:VB6からは「.NET VB/C#」に移行しているのは知っています。 ※2:C++の勉強目的は単なる知識欲で趣味の世界です。 何かのソフトを作ろうという目的はありません。(^^;
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>え?、MFC・WindowsAPIを利用しないプログラミングってあるのですか? >また一つ知的好奇心をくすぐるような情報をいただきました。(^^; 違うのは.NETですね。VC6には無い分けですが。 他のは、試してませんがVC6でもVC2008でも使えるはずです。 まずWTL。MFCの軽量化を狙ったラッパーです。未完成の問題あり。 http://ja.wikipedia.org/wiki/Windows_Template_Library 結局、MFC、.NET、WTLはWindowsAPIのラッパーライブラリですから最後にはWindowsAPIを呼んでます。 あとは、VC6とVC2008でも同等に使えるのがQt(キュート)とかのウィジェット・ツールキットによるWindowsやLinuxで共通のプラットフォームによるGUIになります。 http://ja.wikipedia.org/wiki/Qt http://www.qtsoftware.com/title-jp?set_language=ja&cl=ja WindowsAPIのウィンドウとは別の表現でウィンドウを構築できます。 >前者はともかく後者のSTL???。 STLは便利ですが、VC6のテンプレートが規格準拠してないのでSTLにも問題があります。使い無いわけでは無いはずですが。 http://ja.wikipedia.org/wiki/Standard_Template_Library
その他の回答 (7)
- titokani
- ベストアンサー率19% (341/1726)
ところで、VC6はインストール可能なのでしょうか。 可能ならば、まあ問題はないでしょう。勉強目的ということでもありますし。ただ、VC6の場合、templateの対応とか、STLの対応とかが完全ではありません。これらについても深く勉強する予定なら、VC6では力不足です。 VC6が手元にないとか、インストールできないなら、VC++.net2008になります。ちなみに、VC6はもう販売中止の製品です。 C++の勉強目的なら、無料のVC++.Net2008ExprssEditionで十分だと思います。ただ、VC6の本というと、MFCの解説がメインの本が多かったと思います。ExpressEditionにはMFCが入っていませんので、そういった本はほどんど役に立たないでしょう。ExprssEditionではないVC++.Net2008ならMFCも付属していますが、結構高いです。単なる勉強目的とするには考えるところですね。
お礼
ご回答ありがとうございます。 恥ずかしながらプライベートでは未だにMeを使っています。 VS6は昔、羽振りの良い(笑)ときに購入しました。 >VC6の場合、templateの対応とか、STLの対応とかが完全ではありません。 前者はともかく後者のSTL???。 今の私にはVC6で十分なようですね。(笑) >ExpressEditionにはMFCが入っていませんので これは知りませんでした。 本屋に行っても2008VB/C#は少しは見かけますが、VC++は全くといっていいほど見たことが無いので、ExpressEditionの仕様を知ることも無く、当然のごとくMFCが付いているものだとばかり思っていました。 このことから見ても、まずはVC6を少しずつ勉強していくことにします。
- zwi
- ベストアンサー率56% (730/1282)
VC6で2年前まで仕事してました。現在はVC++2005です。 ネットで得られる情報は、まだまだVC6のものが多く有ります。 MFCやAPIで利用する分には、VC6でもVC++2005でもプログラミングには大差ないです(UNICODEがデフォルトになった事とメニューが大きく変わった事ぐらい?)。 .NETは、そもそも純粋なC++ではなく、C++/CLIという別言語です。それならいっそのことC#でプログラムしたほうが良いと私は思いますけどね。 WindowsVistaの場合はVC6が動かないはずなのでVC++2008以降に変えるしかないですが、まもなくVC++2010が出ますのでVC++2008は慌てて導入しない方が良いかと。 ってことでVC6が動くなら、とりあえずVC6で損は無いと思います。
お礼
ご回答ありがとうございます。 >MFCやAPIで利用する分には、VC6でもVC++2005でもプログラミングには大差ないです え?、MFC・WindowsAPIを利用しないプログラミングってあるのですか? また一つ知的好奇心をくすぐるような情報をいただきました。(^^; >それならいっそのことC#でプログラムしたほうが良いと私は思いますけどね。 VB6の時代では、VC6はあこがれでした。 実行速度が早い、なんでもできる、なんといってもかっこいい!! .NETの今ではVBとC#とで実行速度は変わらないし、できることも(たぶん)同じ。 ということでやっぱり今でもVC++はあこがれです。 単純で小学生みたいなことを書いて申し訳ありません。(^^; VC6とVC++2005と両方、経験なさっている方のアドバイスいただけて嬉しいです。 無駄では無いということで、VC6で少しづつ勉強していこうと思います。
- kkk1024
- ベストアンサー率33% (42/127)
こんばんは。30代男偽SEです。 私、最近Winsows系のソフト実装した記憶がないので、そのつもりでご覧ください。 VC系はMFC+APIぐらいまでしかやってません。「.NET」って何?という感じの者です(^^) 他の回答者様も書かれている通り、APIなどは基本変わっていないと思いますので、概念を学ぶには古いものでもよろしいかと存じます。 詳細なインターフェース仕様はそれこそヘルプをご覧になるでしょうし。 「.NET」のことを全く存じませんが、MFCの後継(?)のクラスもベースは古いものでしょうし。 質問者様がVBでも既にWindowsAPIの関数呼び出しなどを行ったことがある方なら、すでにある程度概念も学んでらっしゃるでしょうから、むしろVC側もMFC+WindwsAPIに限れば要らないんじゃないのか? というのが私の感想です。 ウィンドウ、ウィンドウハンドル、デバイスコンテキスト、ウィンドウメッセージなどの概念を押さえておけば、後はヘルプと睨めっこで何とかなりそうな気がします。 「.NET」のことを全く知らないので無責任ですが(^^) 何にせよ「.NET」の下地として昔のものを学ぶのは無駄にはならないだろうというのが私の持った印象です。 参考になれば幸いです。
お礼
ご回答ありがといございます。 VBでのWindowsAPI呼び出しは行ったことがあります。 星の数ほどもあるような(?)APIすべてを理解しようなんて、もとより考えてもいませんが、やっぱり一つでも多くのAPIを理解したい・使ってみたいというのが本音でしょうか。 >ウィンドウ、ウィンドウハンドル、デバイスコンテキスト、ウィンドウメッセージなどの概念を押さえておけば、後はヘルプと睨めっこで何とかなりそうな気がします。 ここで、kkk1024さんと決定的なレベルの差があります。 「なんとかなる」レベルに私もなりたいのです。(^^; なんだか小学生レベルの発言になってしまい恥ずかしい限りですが、地道に知識を深めていきたいと思っています。
- wildcat-yp
- ベストアンサー率37% (303/813)
VC6がどうというよりは、当時のAPIは最近のOSでは使用できない可能性が高いということでしょうか。 基本的には似たような名前のAPI(昔のAPIの後ろにAがついたりexがついたり)がありますので、リファレンスを見ながらどうとでもなります。 VC自体というよりは、C/C++自体は言語としてとても優秀で、用途はとても多いですし、Cはコンピュータのアーキテクチャを理解するうえでも有用です。 C/C++を使えるようになっておけば、Javaなんかも抵抗なく使えるでしょうし、他の言語の習得も早いです。 この業界では絶対に無駄にはなりません。 もし.netに興味があるようであれば、2008なんかではVC 2008 ExpressEditionという無料で使用できるコンパイラもありますので、余裕を見てやってみるのも良いと思いますが、まずは.netではなく、基本的なC/C++をやっておくほうがいいと思います。
お礼
ご回答ありがとうございます。 C/C++言語そのものは、DOSのプログラミングでCを、新しい言語が出たよということでC++を勉強しました。 Cは業務で勉強しましたがC++は完全に個人的な趣味でしたね。 VBやVC++を勉強し始めた頃はC++の本に書かれていることと、VBでのクラスやMFCの利用法との関連が結びつかず、理論は理論、実装は実装、と別物であるとすら認識していた頃もあります。(^^; 実務ではVB/VCを触ることはほとんど無いので、やっとC++言語仕様との関係がしっくり来るようになった私ですが、今度こそVCをものにしたいと考えているところです。 どの方面のアプリをどのレベルまで?というのはありますが、勉強しながら考えていきたいと思っています。
私的にはVCに限っては6.0と.NETであまり大差ないように見えます。 ですので、切り替えても切り替えなくても構わないと思いますよ。 ただ、VCをやる前にノーマルのC/C++を十分に学習することをお勧めします。 でなければ、基本部分よりも先行してGUIやCStringなどの便利なクラスに惑わされてしまい、エラー(短いプログラムでない限り、組めば出ることは覚悟です)の内容が分からなかったり、エラーを回避させる手法が思いあたらなくて手詰まり・・・なんてことにもなり得ますので。 そういったエラーの内容はC/C++をある程度まで学習していれば連想できることが多いはずです。
お礼
ご回答ありがとうございます。 まずはMFCを使わない方法で勉強したほうが良いというご意見ですね。 以前に勉強したときも、知識としては知っていたのですが、本を読んでいてもその使い分けの判断がよくわからなかった記憶があります。 一度に多数の情報や概念を頭に入れたので、混乱してサンプルコードがMFCなのかAPIなのか、わからなくなったというのが実のところだったのかもしれません。 覚えることが多すぎるというのが当時の印象でしたが、今ならなんとか理解できるかも?というのが現在の気持ちです。
- kokorone
- ベストアンサー率38% (417/1093)
業務の種類として、 A.最新の言語・ツールでのシステム開発 B.旧言語・ツールで設計されたシステムのメンテナンス C.旧言語・ツールから最新の言語・ツールへの移行 など、ありませんか? B.およびC,では、旧言語・ツールの知識が必要ですよね。 個人的に勉強していて決して損はないと思います。 当然、最新の言語・ツールの知識も勉強しましょう。 とはいうものの、お客様にアピールする場合、実務経験で評価 される場合もあります。 でも、会社内でのアピールとしは十分ですよね。
お礼
ご回答ありがとうございます。 私の会社はソフトハウス関係ではないし、職場でもVB/VCを使ってソフトを作る業務はほとんどありません。 ソフトハウスに発注することはときどきありますが。 ですから、現在のVB6設計だって本来はソフトハウスに投げる仕事だったのですが、お金・(従来からの)仕事が無いとのことで社内設計しているわけです。(苦笑) ソフトハウスに投げるといっても知識があるとなしとでは大違いで、自分としてはそれで昔から趣味の世界で勉強している次第です。 仮にアピールしても「ふ~ん、それで?」と言われるのが落ちという職場で、そこはちょっと悲しいですね。(苦笑)
- SAYKA
- ベストアンサー率34% (944/2776)
APIやMFCというよりも構築の仕方を勉強するという意味では有意義だと思うよ。 ただ、2008になっちゃってるから 2008を使った勉強をした方が良いね。 VC6がまだ駆動するなら一通りやってからでも良いと思う。 今は参考がネットに一杯落ちてる時代だから書籍より、判りやすい物を探した方が良いかもね。 趣味とは言うけれど、やっぱり何かを作った方が勉強になるよ。 使わないと忘れちゃうしね。
お礼
ご回答ありがとうございます。 構築の仕方、、、。開発の手順ということですかね? 確かにコーディングの量もさることながら、いろいろなウィンドウを開いてデザインしていかなければならないことに頭がパンクしそうになった記憶があります。 ツール類も多数あって何の目的で存在するのかわからずじまいのものもありました。 使わないと忘れちゃう、、。まさしくその通りです。 VB6でもすっかり忘れていました。
お礼
お礼がたいへん遅れまして申し訳ありません。 引用いただいたURLを見てみました。 最初の一つだけは、どういうものかわかった気になれましたが、 残りは、、はい、もう本当に「あなたの知らない世界」ならぬ「私の知らない初耳世界」でした。(^^; たぶんプロ中のプロが使うものなのでしょうと、しばらくは(永遠に?)遠巻きに見ておくことにします。(笑) いやはや、それにしてもいろいろな道具・手法があるものなんですね。 概念だけでもわかるようになれることを夢見て、マイペースで勉強していくことにします。 再度のご回答ありがとうございました。