• ベストアンサー

SDKやMFCでの開発について

私はサンデープログラマなので趣味でSDKなどで簡単なプログラミングをしています。MFCにも挑戦しようかと思っているところなのですが、いかんせんVisualと名前がついているのにSDKもMFCもぜんぜんVisualではありませんので開発にかなり時間がかかってしまいます。ダイアログベースでのプログラミングがあるかとは思いますが、コントロールのインターフェースの制御などに制限があるように思えます。 ●やはりソフトハウスなどでは画面(ウィンドウ)を作るとき、 コントロールの位置など直接確認できないので、 その専門の人(画面を作る人たち)がいて、 コントロールの位置を設定して(CreateWidnow関数などのTop,Left引数の位置に座標を設定して) いちいちその度にビルドをし、コントロールの位置を確認して画面を制作しているのでしょうか? ●また、私はC#に興味があります。それはなぜかというと、SDKや特にMFCに比べて、やはりVBのように画面を作りやすくするため、VBのようなデザイン画面を取り入れたり、XMLなどを操作できるようにしたり、MFCのようにオブジェクト指向でWindowsの性能を最大限に引き出すことができる(まとまった一連の動作はオブジェクトで実行し、単機能の動作は直接APIにアクセスし実行することができる)VBとMFCとJAVAのいいところをすべて網羅した言語のように思えます。この認識は正しいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nim05
  • ベストアンサー率61% (111/181)
回答No.4

○画面の作成の仕方 ユーティリティ系のものでは、HTMLで作るものもありますし、ホビー系のものは、ボタンのON/OFFまですべて自前で描画することもあります。 基本的には仕様書を作って、デザイナーも開発者もそれに添って開発するのが基本です。が、実際はビルドを繰り返してトライ&エラーで調整することも多いです。 サンデープログラマのいいところは、自分の気のままに適当に作って、後で納得いくまで直せるところではないでしょうか。 仕事でやるときは、作業量を見積もり、その見積もりに添ったスケジュールで行う必要があります。 ただ、最近のソフトの開発は、開発→レビュー→見直しを何度も繰り返しながら、スパイラルアップする手法の方が、仕様書作りに追われずにすむということで、トレンドになっているようです。 興味がありましたら、「エクストリーム・プログラミング」とか、「アジャイル開発」とかで調べて見てください。 ○C#について おっしゃっているC#の特性を見るかぎり、VisualStudio.net で、C#.netの開発をするということですよね? その場合、利点も欠点も、JAVA+VBだと思って下さい。 JAVAのアプリを動かすのに、JAVA VM が必要なのと全く同じように、C#.netのプログラムを実行するには、.net framework というものをインストールする必要があります。 利点はおわかりのようなので、欠点を。 ・Cでコンパイルしたプログラムより遅い。  C#.net は、JAVAと同じく中間コードを .NET FrameWork というインタプリタで実行します。 速度がさほど気にならないものならOKです。 ・.NET FrameWorkがインストールされている必要がある。  Windowsなら、WindowsUpdateで勝手に入りますが、それでもインストールが必要であることには変わりないです。 ・コードが逆生成できる。  中間コードをツールにかけると、なんとソースが出てくるそうです。(コメントはつきませんが・・・)  個人のコードなら問題ないと思いますが、業務用だともしかしたら問題になるかもしれません。 上の3つは微妙に関係していますね。 なにかの本で読みましたが、VB.NetとC#.netを比べた場合、VBを選ぶ理由はないとのことです。

その他の回答 (3)

回答No.3

私の環境は、MSVC6.0+MFCです。 私は、あるソフトの開発のために、C++&MFCで、画面エディタを作成しました。 作るまでは、ある程度手間がかかりますが、一度作ってしまえば、こっちのものです。 以後、何度もその画面エディタで、画面の作成をし、非常に重宝しました。 ご参考までに。 C#については、持っていないのでパスです。

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.2

ペイントといったのは、完成後のイメージをつかむため、までの段階です。 紙は、方眼紙などやエクセルシートでもOKで、解像度など具体的な数値化します。 プログラム上の座標系については、ScreenToClient()などで座標系を変換すればいいだけです。 要は、UIが先に定められるのであれば、まずUIを決定するための段階を示したつもりです。 ※進むべき道へのヒントは提示できるかもしれませんが、私の性格上、手取り足とり お教えする事はできませんので、どうかご了承ください。 複数の言語を連携するやり方はいくつかありますが、VBメインで、重い処理だけC++で 書くのもいいでしょう。間にDBをこさえれば、処理も楽かもしれません。 ※段落ごとに改行を入れてもらえると読みやすいです。

参考URL:
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&safe=off&ie=SJIS&oe=SJIS&q=VB+DLL%8D%EC%90%AC
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

最近のソフトは大抵は、画面のみVBで作り、本体はC言語 など、他の言語で行うことが多いようです。 # そのほうが効率がいいから。 画面のデザインなどは、お絵かきソフト系でもOKですし、 紙に書いてもOKです。最初はペイントあたりでイメージ 作って、具現化していったり。 > コントロールのインターフェースの制御 大して変わらないかと。 C#は詳しくないのでパス(^^;

noname#46712
質問者

お礼

RAPTsongさん、早早なご回答ありがとうございます。もうちょっと具体的にお伺いしたいのですが、「最近のソフトは大抵は、画面のみVBで作り、本体はC言語 など、他の言語で行うことが多いようです。」ということですが、●C言語などで作ったファイルをDLL化してVBから呼び出すということでよろしいでしょうか?そうするやり方などがあるHPがありましたら是非紹介お願いします。ご存知なかったら結構です。●また、「画面のデザインなどは、お絵かきソフト系でもOKですし、紙に書いてもOKです。最初はペイントあたりでイメージ作って、具現化していったり。」ともありますが、これは紙などに書いたり、ペイントソフトなどでイメージを作ってもコントロールがどの座標に位置しているかなどはわからないと思うのです・・・??

関連するQ&A