誕生日にもらった意外なもの

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

A 回答 (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を選ぶ理由はないとのことです。
    • good
    • 0

私の環境は、MSVC6.0+MFCです。


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

ペイントといったのは、完成後のイメージをつかむため、までの段階です。


紙は、方眼紙などやエクセルシートでもOKで、解像度など具体的な数値化します。
プログラム上の座標系については、ScreenToClient()などで座標系を変換すればいいだけです。

要は、UIが先に定められるのであれば、まずUIを決定するための段階を示したつもりです。

※進むべき道へのヒントは提示できるかもしれませんが、私の性格上、手取り足とり
お教えする事はできませんので、どうかご了承ください。


複数の言語を連携するやり方はいくつかありますが、VBメインで、重い処理だけC++で
書くのもいいでしょう。間にDBをこさえれば、処理も楽かもしれません。


※段落ごとに改行を入れてもらえると読みやすいです。

参考URL:http://www.google.com/search?num=50&hl=ja&lr=lan …
    • good
    • 0

最近のソフトは大抵は、画面のみVBで作り、本体はC言語


など、他の言語で行うことが多いようです。
# そのほうが効率がいいから。

画面のデザインなどは、お絵かきソフト系でもOKですし、
紙に書いてもOKです。最初はペイントあたりでイメージ
作って、具現化していったり。

> コントロールのインターフェースの制御
大して変わらないかと。

C#は詳しくないのでパス(^^;
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/09/05 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!