• ベストアンサー

WindowsMobile5.0をC++で開発

WindowsMobile5.0をC++で開発してくださいという仕事があるのですが、その場合win32での開発になるんでしょうか? RADツールなどは使用できず、ネイティブコードでしか開発できないんでしょうか。 win32APIで作成するとレスポンスが早くいいみたいですけど、ネイティブコードが非常に難しいです・・・ win32で進めてますがいま一つ壁を乗り越えれません・・・ MFCも使ったことはないんですがもし使えるなら効率よく開発できるんでしょうか? お客様の要望はあくまで「5.0のC++」です。

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

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.3

> mobile5.0でVC++で作ってくれってことはwin32とMFCで開発ということでいいんですよね? 不幸な誤解という可能性もありますし顧客と確認されるべきかと思いますが、普通はそうですね。 > 少し弱気になりRADなどの便利な機能があればそれで。 そもそもWin32レベルでのUI作成ということを考えると、コントロールが勝手にやってくれる内容と、 リソースファイル(rc)での指定以外は原則プログラムで処理することになるわけで。 VCの機能としては、リソースファイルを手書きしないWYSIWYGなリソースエディタとかそういうレベルになります。 (これがVBだと、実行時の設定反映までVBのランタイムが中でやってるわけです) ただ、極論C++でVBのランタイムに相当するものを実装することは可能なわけで、 IDE連携は厳しいとしても、メンバ関数によるフォントの指定機能がついてるコントロールくらいの話なら、 コンポーネントとかで提供されている部品/モジュールを調達すればその範囲で実装は楽になるかと思います。 MFCも結局はこの手の(薄い)ラッパーですから、 例えばフォント設定もWin32で直接HFONTを使うくらいならば、 MFCのCFontでラップすると、最低限デストラクタによる自動削除くらいは楽になります。 但し、VBの馬鹿でかいランタイムや、C#の.NETなどはありませんので、 あくまでWin32の上にクラスのラッパーをかぶせた程度の代物ですから、 その下が「透けて見える」こともよくある話です。  フォントの例でいえば、SelectObjectしたままだと削除に失敗することに気づかず、  削除したつもりが実はリソースリーク、なんていうWin32初心者にありがちなバグは、  MFCを使っただけでは完全に隠蔽もされませんし回避できません。 他言語のように「やれることが安全なことに制限される」わけではないため、 結局、プログラマがプログラマの責任で正しく処理を書く範囲はあまり減らないと思います。 レスポンス云々は、一般論で言えば、実際の速度差は本当に許容範囲外なのか?という話もあり。 結局、C++の強みは、他言語よりも「何でもあり」な凝ったデザインが(頑張れば)組めるとか、 動作環境を(配慮すれば)広くできる、バイナリサイズを(配慮すれば)抑えられるなど、の方にあるように思ってます。 # つまりは「手をかけた分だけよいものが作れる」⇒「手をかけないならあまり恩恵なし」

glee_sss
質問者

お礼

とても参考になりました。 ありがとうございます。

その他の回答 (2)

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

例えば.NET上だとC++/CLI(別言語)とかManaged C++(MS独自拡張)とかになっちゃうので、 大抵「C++」といった時点で(Win32だろうがMFCだろうが)ネイティブコードだと思いますが、 逆に非ネイティブコードって何を想定してますか? Visual C++で開発できますが、VCは他言語のVisual Studioよりは確実に貧弱です。 質問者さんの定義では、Visual C++はRADツールと呼びますか? 一応、Mobileで使えるMFCもあります。但し、PC用のサブセットでフル機能ではありません。 個人的な感覚ですが、MFCは「C++とWin32を知っている人間が」 定型処理の効率をあげるためのものだと思ってます。 MFCを覚えれば開発の効率は多少あがるかもしれませんが、 Win32の全てを代替してくれるわけではないので、 結局お仕事レベルの開発でまともに使うには、 [Win32の知識]+[MFC独自の作法]の両方が必要になると思います。 将来の保守を考えたらちゃんと使っておいた方がいいと思いますが、 もし単発小物だと短期的にはMFCの学習コストがペイできないかも…? WM5.0/C++の開発をしていてWin32の壁と書かれていると、 それは(MFCでは)回避できない可能性も結構高そうな気もしますが、 具体的にどんなところにはまっているのでしょう?

glee_sss
質問者

お礼

当方はVBとファームでC言語を少し経験したくらいのレベルです。 VC++と書くつもりがC++と書いてしまいました・・・^^; RADツール(VB,C#)とかではフォントかえるのもプロパティでできたのにネイティブコードだととても複雑だったのでVBみたいなRADツールで出来ないかと弱気になってしましましたが、RADツールで開発するとレスポンスが悪いなどデメリットもあるようですね。 これからも仕事でWIN32,C++は必須です。 逃げずに頑張りたいと思います。 MFCもWIN32を理解して使うものなんですね!勉強になりました。m__m mobile5.0でVC++で作ってくれってことはwin32とMFCで開発ということでいいんですよね? 回答ありがとうございました。

noname#68570
noname#68570
回答No.1

カーナビの仕事をした事がありますが、 普通にVisualStdioでC++使えましたよ(画面も) WinAPIやMFCは一部無いもののありますが、 そんなに変わらないと思います。 .NETとかは使ったことが無いので分かりません。

glee_sss
質問者

お礼

回答ありがとうございます。 mobile5.0でVC++で作ってくれってことはwin32とMFCで開発ということでいいんですよね? RADツールなどの便利な機能はないでよろしいですか? 少し弱気になりRADなどの便利な機能があればそれで。という甘い考えがありましたがどの道win32は今後も必須だと思われるのでそのまま突き進もうと思います。 回答者様はwin32は開発者において理解しておくべきだと思われますか?

関連するQ&A

  • 自宅でVCで開発をするとしたら・・

    皆さんの自宅の開発環境について質問があります。 (趣味でソフトウェア開発をするときに使う事を想定) 私はC++を多少使えるので、RADツールがついたもので、 C++で開発できる環境を探しています。 今無料で手に入るVC ~~EXPRESSとかでは、おそらく機能制限されているので やりたいことができない時があると思います。 実際に私もそのようなことがありました。 色々なサイトを見てみると、多くがVCを使って解説をしています。 そのため、わたしもVCを使おうと思うのですが、 (MFCの設計とか評判が良くないけど・・) 皆さんは数万するVCを購入しているのでしょうか。

  • MFC

    扱うテーマはMFCやWin32APIです。 ↑これが扱える手ごろなアカデミック版での開発ツールって御座いますか? また、アカデミックではないようですが[Visual C++.NET]あたりが調べた所、値段的に手ごろな感じがしたのですが…。他に良いもの有りましたらご教示下さいm(_ _)m宜しくお願いします。

  • C++ MFCについて

    現在、開発言語を検討中です。 以前C# .NETで開発を行ったのですが、各PCに.NETのインストールが必要になり、手間がかかったので、C++ MFCで検討しています。 C++にはネイティブとマネジメントとあるのですが、 ネイティブ=MFC マネジメント=.NETという解釈で良いのでしょうか? MFCも一応はクラスを使うので、マネジメントに入るのでしょうか? この辺りの線引きが微妙で悩んでいます。 ネイティブの方が高速とあちらこちらに書いてあるのですが、.NETと比較すると何%くらい早いのでしょうか? ご存じの方がおられましたら、ご教授願いますm(__)m

  • C/C++でComponent Objectを開発したい

    こんにちは。 WSH JScript などの処理系から同期関係の Win32 API (*) を呼びたくて Component Object (COM オブジェクト) を C/C++ で開発したいと思っています。そこでプログラムの骨格がどのようになるのか学ぶよいポインタ情報がありましたら教えて頂ければ幸いです。 開発環境は WinXP, Borland C++ 5.5.1 を当方使用しています。特に BCC でなければという理由はありません。 (注釈) * Mutex/Event オブジェクトをアクセスする手続きが主です

  • C言語の次のステップは?

    現在、C言語を学習していてコンソールアプリケーションや Web上のCGI等は作れるようになってきました。 次の学習ステップとしてWindowsのアプリケーション作成 か、C++の言語学習にするかを悩んでいます。 C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に よる開発になると認識しています。この場合であれば特にC++の知識は 不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に なるのでしょうか? MFCとかを使うのであれば、C++の知識は必須ですよね? あるいはこれからの開発ではオブジェクト指向の知識は必須である ということでC++の学習を経て、Windowsアプリの開発について学習した 方がよろしいでしょうか? 最終的な目標はC/C++にてWindows/Linuxアプリの開発ができるように なりたいと思っています。 当面Windowsアプリを開発するにあたって、C→SDKもしくは C→C++→SDK/MFCのどちらが効率的な学習ステップになるのでしょうか? 皆さんのアドバイスをいただければ幸いです。

  • 最近のWindowsプログラミング環境について

    久しぶりにWindowsで趣味プログラミングをしようと考えています。 以前はDelphi、C++BuilderのRADプログラミング環境を使ってお手軽にやっていたのですが手持ちのバージョンも古いのと、今後(というか、すでに)MS系開発環境が主流だしなぁと、今回はVisual Studio(Visual C++)を使ってみようと思っています。 APIのみでゴリゴリと書いたこともあるので、またそれでいくか!とも考えましたが、さすがに今更APIだけでやるのは面倒くさいと、何かフレームワークを、MFCかATL/WTLあたりになるのかなぁと。 ちょっとしたツール程度のものを作るのにちょうどいいようなフレームワークで、おすすめがありましたら、ご紹介ください。(ちょっと漠然とした質問になってしまいましたが) #GTKやQTなどもどうなんでしょうね?

  • Windows上でLinux向けのJNA開発

    Javaで、Windows上でLinux向けのJNAを使ったコードの開発はどうやればいいでしょうか? Javaなので本来はWin/Linuxの違いを無視出来ますが、JNA等を使う場合は無視出来ません。 Cygwinを使えばLinux向けのネイティブコード自体は開発出来ますが、 JNAでの連携部分の動作確認が出来ません。 Win上で動いているJavaからCygwin上で動いているネイティブコードへJNAを使ってアクセス出来るか? あるいは、 Win上でEclipseを使いながらCygwin上で動くJavaプロジェクトを開発するにはどうすればいいか? あるいは他にも手段があるかもしれませんが、聞きたいのはそういう事です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • この度、会社でASP.net(言語はC#)の開発をする事になりました。

    単純な質問なのですが、ASP.net(言語はC#)ではじめて開発する事になったんですが、どこから勉強した方が効率がいいのかわかりません。 ツールは、VusualStudio.netです。ツールの使い方もよくわからないしC#もわかりません。 ちなみに参考までにjavaの構文は多少わかります。 よろしくお願いします。

  • MFCなのかWin32APIなのか

    みなさんはじめまして。グフです。 これからWindows上でC/C++(VisualStudio.NET2003) にて、Windowsアプリケーション開発の勉強を始め ようとしています。 いろんなサイトや書籍を見ている中で、Windowsアプリ の開発方法としてMFCをつかうやり方と、Win32APIで 開発する方法の2つがあることがわかりました。 これからWindowsの勉強を行うにはどちらの方法で開発 するのが望ましいのでしょうか? ケース by ケースだとは思いますが、何かアドバイス いただければと思いまして、投稿させていただきました。 やはり基礎からおさえるのであれば、Win32APIの方が よろしいのでしょうか? 今後のWinFX環境を考えると、Win32APIでの知識が無駄 になってしまうということはないのでしょうか?

  • 何を使っているのでしょうか?

    簡単なゲームを作ろうとC言語を勉強し始めたのですが、一つ疑問があります。 C++でゲームを作る場合、win32APIかMFCを使うと思うのですが 市販の家庭用ゲームはそれに代わる何かを使って開発されているのでしょうか?

専門家に質問してみよう