dポイントプレゼントキャンペーン実施中!

あるC言語をつかったウィンドウズプログラミングの本に載っていたコードを入力してビルドしようとしたら色々とエラーが出てしまい、今度はその本に付属していたCD-ROMに収録されていたコードを使ってビルドしても失敗してしまいました。
そして、その本を書いてらっしゃる方が管理をしているホームページにVC2005になってデータ型のチェックが厳しくなったと書いてありました。
そのサイトには新しくVC2005のサンプルプログラムが紹介されていたのですが、本に載っていたものとは少し違うようです。しかし、それを使ったら難なくビルドも出来て、ちゃんとウィンドウが表示されました。
ということは、今までに出版された本に載っているウィンドウズプログラミングのコードはVisual C++ 2005 Express Edition では使えないということなんでしょうか。
もし知っていらっしゃる方がいましたら、教えてください。よろしくお願いします。

A 回答 (5件)

「猫でもわかるWindowsプログラミング」でしょ?


この本ならMFCは使ってません

以下「猫本」だと仮定します.
また私はExprssではなく,standardで実験してますので
Expressではどうかは知りません

猫本のサンプルはそのままでは
ことごとくVC++2005では処理できません.
#いや,猫本のサイトには問答無用で通す手も
#書いてるけども,お勧めはできないと書いてますね

猫本のソースは以下のように書き直す必要があります

(1) " "で囲まれた文字はすべて
TEXT(" ")に変更する

(2) strcpyなどの標準ライブラリ関数は
すべてセキュリティ強化版のものに置き換える
警告がでるものだけで十分なはず.

これはMSDNで検索してください。
例えばstrcpyを検索すれば置き換える関数が
みつかります.

(3) 型名などは,すべて``T''のものにする.
例えば,LPCSTRではなくLPCTSTRにする.

これ以外に,暗黙の型キャストで
文句を言われることもあるはずですが
これは明示的にキャストすれば通ります.

また,上記の対策は
UNICODEかそうでないかで同一のソースで
通すための方策も入ってますが
これくらいしないとVC++2005は
通してくれませんでした
#私は面倒なので
#全部UNICODEでやってるので
#そんなに細かく検証してないですけど

今までのWin32APIの本のソースに関しても
この手の対策を施せば多分通ると思います.
    • good
    • 0
この回答へのお礼

詳しい回答をありがとうございます。
とっても助かりました。
一通りCの本は読んだのですが、まだまだ本をあっちこっち見ながらやっている状況なので、大変そうですが頑張ってみたいと思います。
本当にありがとうございました。

お礼日時:2006/10/09 12:05

No.4です


書き忘れた

Expressだとplatform SDKが必要では?
一応下記URLでMSが説明しています.

#ちょっと古いSDKが公開されているとかいう話だけど

参考URL:http://www.microsoft.com/japan/msdn/vstudio/expr …
    • good
    • 0

使えないって事ではない。

直せば使えるってことでしょう。
Windowsプログラミングが確立された時ってエラーチェックも細かいとこまで出来てなかった。で、最近のコンパイラなどはちゃんとしたエラーチェックが出来るようになったので、古いサンプルコードを*そのまま*コンパイルしても通らないってことがおき得ます。

昔はこう組んでて大丈夫だったんだな、ぐらいに考えてくださいね。
考え方や組み方まで変わっているわけではないと思いますから。
    • good
    • 0

- ExpressではMFCが使えません。

なのでMFCによるWindowsアプリは不可。
- ExpressではWin32APIが"そのままでは"使えません。なので別途Win32SDKを追加する必要があります。
- ExpressではC++/CLIによるWindowsアプリケーションが作成できます。サイトにあったのはきっとコレでしょう。
    • good
    • 0

VC++2005EEではMFCが使えないから


そっちの方が問題ありそうだけど
質問者が書いているサンプルはMFC使っている?
    • good
    • 0

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