• ベストアンサー

SDKやMFCでの開発について

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

noname#46712
noname#46712

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

  • ベストアンサー
  • 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

  • SDKを使ったプログラミングについて

    現在Visual C++ 2005を使ってアプリケーションを作成しようとしています。 すでにWin32APIアプリケーションがあり、それにSDKを使って機能追加をしようとしています。 しかしそのSDKがMFCで書かれているためにどのように機能を呼び出すのかわかりません。 (SDK付属の説明書を読んでも全然わかりませんでした) SDKのヘッダーファイルのインクルードはできるのですがその先機能の呼び出しができません。 すごく抽象的なのですがSDKを使ったプログラミングについてわかりやすく解説しているWEBサイトなどはありませんか? また、MFCをWin32に移植する、などといった方法を解説しているところでも構いません。 ちなみにプログラミングスキルは初心者というよりは素人です。 よろしくお願いします。

  • Visual C++ toolkit / Platform SDK -> ライブラリアン

    今主にVisual C++ toolkit / Platform SDKでプログラミングを勉強しているのですが、ライブラリをつくろうと思ったのですが、ライブラリアンがどの実行ファイルなのかわかりません。 Borland C++ Compilerでtlib.exeがあるのですが、cl.exeで作成した*.objは扱えないみたいで。 ひょっとして、Visual C++ toolkit / Platform SDKにはライブラリアンがなかったりしますか・・?

  • 【オブジェクト指向について】

    【オブジェクト指向について】 こんにちは。初めて質問をさせていただきます。 さて、ただいまVBを勉強中なのですが、オブジェクト指向のところで躓いてしまいました。 質問したい事は以下の点です。 (1) オブジェクト指向の理解について   オブジェクト指向とは、プログラミングをするときに変数や機能などをクラスというものに格納しておくことで、プログラミングを円滑にすすめるための概念であると理解していますが、この理解は正しいのでしょうか? ご回答お待ちしております。よろしくお願いいたします。

  • オブジェクト指向、.Netフレームワークを平たく言うと

    オブジェクト指向、.Netフレームワークを平たく言うと オブジェクト指向→フォームにコントロールを乗せてプログラミングをしていくこと .Netフレームワーク→そのコントロールのこと という認識で合ってますか?

  • デスクトップアプリケーション作成時の開発言語について

    PC上で動作するデスクトッププログラムを作りたいと思っているのですが、プログラミング言語の 選択肢が多く迷っています。 プラットフォームとしては当面はWindowsを考えているのですが、将来的にはLinux等(PC-UNIX)でも デスクトップアプリを作成してみたいと考えています。 今は言語の選択肢として、C言語, C++, Java, C#を候補にしています。 上記のプラットフォームでデスクトップのプログラムを作成する場合、どの言語が一番相性がよい、 あるいは将来性があるのでしょうか? 私の各言語に対する認識は下記の通りですが、この認識で間違いないでしょうか? ・C言語   もっともよく使われているプログラム言語。   WindowsはSDK(Win32API)での開発になる。   LinuxのプログラムはC言語が多い。   基本となる言語で情報も多い。 ・C++   C言語にオブジェクト指向の概念を加えた言語。   Windowsでの開発はSDK、又はMFC。   C++の習得には時間がかかるが、今後はC言語より主流になる(?) ・Java   マルチプラットフォームのプログラム言語。   オブジェクト指向の言語。   Webやサーバーサイド、携帯電話アプリの開発では主流であるが、   デスクトップ分野では実行速度や実行環境(JRE)がネックになり   あまり使われていない。   SWTを使えば、SWINGやAWTより実行速度がUPしたGUIアプリの   開発が可能。 ・C#   C++をベースにJava, Delphi等の既存言語のいいとこどりをして、   .NET Framework用に新たに開発された言語。   今後のWindowsアプリでは、C#が主流になる(?)   Javaと同様に実行環境(.NET Framework)が必要となる。   実行環境は今後のWindowsプラットフォーム上には標準で搭載される。   Linux上では mono というオープンソースの実行環境がある。

  • 【VC++6.0】MFCを利用する参考書を教えてください。

    いつもお世話になっております。 VC++初心者です。 現在、VC++6.0で過去のソースを改良しているのですが、 (個人的な主観ですが)普通のCあまりにコードが 異なりすぎていて、なかなか作業がはかどりません。 (といっても、C言語も熟知は全然していないです。) そこで、以下の内容を満たすような参考書をご存知で あれば教えて頂きたくお願いします。 *************************** ・初心者向け。 ・VC++6.0、MFCの内容。 ・1つの課題があり、それを順次作り込んでいくような内容。 ・オブジェクト指向の説明がある。  (手続き型とオブジェクト指向型プログラミングの   対比があれば嬉しいです。) ・オブジェクト指向でコーディングされている。 ・デバグの仕方、ソースコードの追い方が若干詳しく書かれてる。 *************************** 以上、よろしくお願いします。

  • VBとC#の違いって何?

    Visual Basic 2008 Express EditionとVisual C# 2008の違いって、 何ですか? MS社の記述では、 [VB] Windows アプリケーションの楽しく簡単な作成方法に興味を持つ、 趣味で開発を行うユーザー、プログラミング初心者、および学生に 最適な開発ツールです。 [C#] ダイナミックなアプリケーションを開発するための、 シンプルで楽しく、学びやすい開発ツールです。 .NET Framework 上で Windows 用アプリケーションを開発するときや、 オブジェクト指向を学ぶときに最適です。 と書かれているのですが、 機能数、不具合数はどっちが多いのでしょうか? VB,C#も同じ様なダイナミックアプリケーションを開発でき、 シンプルなのですが・・・。未だ区別が付きません。 C#の場合、フォーム等の詳細設定は出来ますが、 VBでは簡易設定のみ。 ソフトウェア開発をする場合、どっちが得をするのか? ↑の回答をお待ちしてます。

  • SDKでツールバーの上下移動を可能にしたい

    SDK,WinXPで開発しています。(Developer Studio使用です) 現在レバーコントロールにツールバーやちょっとした設定を入れていますが、このツールバーを画面の下部(ステータスバーのすぐ上など)にユーザーが自由に移動可能にしたいのです。 これを実現する為にはレバーコントロールではダメだと思うのですが、どのような手法で行えば良いのでしょうか。 アプリケーションによくある、画面に沢山のウィンドウが張りついていて、各画面を好きな場所に移動したりするものを実現したいのです。 Builderなどならば実現可能なのは分かるのですが、今回はどうしても既存のものを少し改造して実現したいのです。 SDKではムリなのでしょうか。

  • Java EE SDKとJava SDKについて

    お世話になっております。 現在以下の環境でサーバサイドプログラミングをしております。 Eclipse Europa Version 3.3.2 J2SE SDK1.5.0_15 Apache Tomcat /5.5.26 この環境でも問題なくサーブレットやJSPの開発ができており、動作確認もできております。そこで気になったのが、Java EE SDKの存在です。構成内容を見てみるとSample?のようなものとそのほかにも色々入っているようですが、JavaSDKだけで開発ができている今、これらの存在が疑問です。 なんとなく、JSPのコードをコンテナがサーブレット形式にコンパイルする際にJDKが必要なのだということはわかったのですが、なぜにサーバサイドプログラミングであるのにJ2SE Software Development Kitで開発が行え、Java EE SDKが必要ないのでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • VC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス

    VC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス 以下の環境でプログラミングを実施しています。 開発環境:Visual Studio 6.0 言語:Visual C++ プロジェクト:MFCアプリケーション 日時指定コントロールのスピンを最初にクリックすると 時間が変化しますが、これを初期設定で秒にしたいのですが どうしたらいいのか全くわかりません。 教えてください!

専門家に質問してみよう