- ベストアンサー
高度なWindowプログラミング
Windows上(スタンドアロン)で高度な(OS機能の細かい能力をすばやく引き出せる)ソフトを作成したい(なるべく手間がかからず)と思っているのですが、やはり言語はVC++(MFC)になりますでしょうか?C++やC#やJAVAでもできればやりたいと思うのですが・・・。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>SDKでも作られているものがあるということなのでしょうか? 基本的に市販するソフトって大体1年ぐらいかけて作ったりします。 その分複雑になりますが、テスター何十人も雇って長期間テスト を行います。 SDKといっても、自分でMFCと似たようなクラスも作成する事もできます。 ただMFCでCDialog(ダイアログボックスのベースクラス)があるのに 同じものをSDKで組むのは時間の無駄です。 それと「MFCを使う==簡単」ではありません。MFCを使いこなすには 結局SDKの知識が必要なのです。 またMFCはソースがついているので、ブラックボックスというわけでは ありません。 デバッカーでCDialogの内部も追っていけます。 >SDKとMFCの割合などはどんな感じになるのですかね? ソフトやメーカーにもよるのでわかりまん。 積極的にMFCを利用するソフトもあれば、 まったく使わないソフトもあります。
その他の回答 (2)
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
「OS機能の細かい能力」を使用するのであれば、好むと好まざるとに関わらず仮想マシンコードを吐くコンパイラは×で、ネイティブコードが吐けるコンパイラを使用するしかなかろうと思います。(「OS機能の細かい能力」を無視できるところに仮想マシンのメリットがあるわけですから。) 例に挙がっているVC++、C#、Javaの三択ではVC++ということになります。
- sha-girl
- ベストアンサー率52% (430/816)
OSの機能を引き出すにはWindowsの場合 WindowsAPIを直に呼び出します。 その場合、VisualC++(SDK)が一般的でしょう。 MFCはそれをラップしたクラス群です。 Javaは基本的にはWindowsAPIは直には呼び出せません。 C#は可能ですが実行にはフレームワークが必要になります。 高度な、という定義にもよりますが 「市販されているソフト」 を作るにはVisualC++での開発が一般的です。 MFCを使うかどうかは目的によります。 MFCを使う事で開発速度を上がるメリットはありますが MFCだけでは実現できないこともあります。 C/C++である理由は実行速度が速いとうだけでなく 公開されているソース(OpenSSL等)の多くがC/C++で書かれている という理由もありますし インラインアセンブラも併用でき融通が利きます。 >なるべく手間がかからず そうなるとVC#で良いかもしれません。 基本的に「手間をかけない」ということは なんらかしらが自動で構築されているため、 その部分に関して融通が利かない事が多くなるのです。
補足
sha-girlさん、専門的なお返事ありがとうございます。sha-girlさん曰く、 高度な、という定義にもよりますが 「市販されているソフト」 を作るにはVisualC++での開発が一般的です。 MFCを使うかどうかは目的によります。 MFCを使う事で開発速度を上がるメリットはありますが MFCだけでは実現できないこともあります。 ということですが、SDKでも作られているものがあるということなのでしょうか?あのようなプログラミング構造ですと、かなり難しい(商用にするとメンテナンスという面で)と感じるのですが・・・。 実際、そうだとすればSDKとMFCの割合などはどんな感じになるのですかね?