- ベストアンサー
Visual C++ 2005 Express Edition
あるC言語をつかったウィンドウズプログラミングの本に載っていたコードを入力してビルドしようとしたら色々とエラーが出てしまい、今度はその本に付属していたCD-ROMに収録されていたコードを使ってビルドしても失敗してしまいました。 そして、その本を書いてらっしゃる方が管理をしているホームページにVC2005になってデータ型のチェックが厳しくなったと書いてありました。 そのサイトには新しくVC2005のサンプルプログラムが紹介されていたのですが、本に載っていたものとは少し違うようです。しかし、それを使ったら難なくビルドも出来て、ちゃんとウィンドウが表示されました。 ということは、今までに出版された本に載っているウィンドウズプログラミングのコードはVisual C++ 2005 Express Edition では使えないということなんでしょうか。 もし知っていらっしゃる方がいましたら、教えてください。よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
「猫でもわかるWindowsプログラミング」でしょ? この本ならMFCは使ってません 以下「猫本」だと仮定します. また私はExprssではなく,standardで実験してますので Expressではどうかは知りません 猫本のサンプルはそのままでは ことごとくVC++2005では処理できません. #いや,猫本のサイトには問答無用で通す手も #書いてるけども,お勧めはできないと書いてますね 猫本のソースは以下のように書き直す必要があります (1) " "で囲まれた文字はすべて TEXT(" ")に変更する (2) strcpyなどの標準ライブラリ関数は すべてセキュリティ強化版のものに置き換える 警告がでるものだけで十分なはず. これはMSDNで検索してください。 例えばstrcpyを検索すれば置き換える関数が みつかります. (3) 型名などは,すべて``T''のものにする. 例えば,LPCSTRではなくLPCTSTRにする. これ以外に,暗黙の型キャストで 文句を言われることもあるはずですが これは明示的にキャストすれば通ります. また,上記の対策は UNICODEかそうでないかで同一のソースで 通すための方策も入ってますが これくらいしないとVC++2005は 通してくれませんでした #私は面倒なので #全部UNICODEでやってるので #そんなに細かく検証してないですけど 今までのWin32APIの本のソースに関しても この手の対策を施せば多分通ると思います.
その他の回答 (4)
- kabaokaba
- ベストアンサー率51% (724/1416)
No.4です 書き忘れた Expressだとplatform SDKが必要では? 一応下記URLでMSが説明しています. #ちょっと古いSDKが公開されているとかいう話だけど
- phoenix343
- ベストアンサー率15% (296/1946)
使えないって事ではない。直せば使えるってことでしょう。 Windowsプログラミングが確立された時ってエラーチェックも細かいとこまで出来てなかった。で、最近のコンパイラなどはちゃんとしたエラーチェックが出来るようになったので、古いサンプルコードを*そのまま*コンパイルしても通らないってことがおき得ます。 昔はこう組んでて大丈夫だったんだな、ぐらいに考えてくださいね。 考え方や組み方まで変わっているわけではないと思いますから。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
- ExpressではMFCが使えません。なのでMFCによるWindowsアプリは不可。 - ExpressではWin32APIが"そのままでは"使えません。なので別途Win32SDKを追加する必要があります。 - ExpressではC++/CLIによるWindowsアプリケーションが作成できます。サイトにあったのはきっとコレでしょう。
- toro777777
- ベストアンサー率16% (43/257)
VC++2005EEではMFCが使えないから そっちの方が問題ありそうだけど 質問者が書いているサンプルはMFC使っている?
お礼
詳しい回答をありがとうございます。 とっても助かりました。 一通りCの本は読んだのですが、まだまだ本をあっちこっち見ながらやっている状況なので、大変そうですが頑張ってみたいと思います。 本当にありがとうございました。