プロが教える店舗&オフィスのセキュリティ対策術

WindowsMobile5.0をC++で開発してくださいという仕事があるのですが、その場合win32での開発になるんでしょうか?
RADツールなどは使用できず、ネイティブコードでしか開発できないんでしょうか。

win32APIで作成するとレスポンスが早くいいみたいですけど、ネイティブコードが非常に難しいです・・・
win32で進めてますがいま一つ壁を乗り越えれません・・・
MFCも使ったことはないんですがもし使えるなら効率よく開発できるんでしょうか?

お客様の要望はあくまで「5.0のC++」です。

A 回答 (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++の強みは、他言語よりも「何でもあり」な凝ったデザインが(頑張れば)組めるとか、
動作環境を(配慮すれば)広くできる、バイナリサイズを(配慮すれば)抑えられるなど、の方にあるように思ってます。
# つまりは「手をかけた分だけよいものが作れる」⇒「手をかけないならあまり恩恵なし」
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/22 20:25

例えば.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では)回避できない可能性も結構高そうな気もしますが、
具体的にどんなところにはまっているのでしょう?
    • good
    • 0
この回答へのお礼

当方はVBとファームでC言語を少し経験したくらいのレベルです。
VC++と書くつもりがC++と書いてしまいました・・・^^;
RADツール(VB,C#)とかではフォントかえるのもプロパティでできたのにネイティブコードだととても複雑だったのでVBみたいなRADツールで出来ないかと弱気になってしましましたが、RADツールで開発するとレスポンスが悪いなどデメリットもあるようですね。

これからも仕事でWIN32,C++は必須です。
逃げずに頑張りたいと思います。

MFCもWIN32を理解して使うものなんですね!勉強になりました。m__m

mobile5.0でVC++で作ってくれってことはwin32とMFCで開発ということでいいんですよね?

回答ありがとうございました。

お礼日時:2008/09/21 11:34

カーナビの仕事をした事がありますが、


普通にVisualStdioでC++使えましたよ(画面も)
WinAPIやMFCは一部無いもののありますが、
そんなに変わらないと思います。
.NETとかは使ったことが無いので分かりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

mobile5.0でVC++で作ってくれってことはwin32とMFCで開発ということでいいんですよね?

RADツールなどの便利な機能はないでよろしいですか?
少し弱気になりRADなどの便利な機能があればそれで。という甘い考えがありましたがどの道win32は今後も必須だと思われるのでそのまま突き進もうと思います。

回答者様はwin32は開発者において理解しておくべきだと思われますか?

お礼日時:2008/09/21 11:39

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