• 締切済み

Visual C++ 6.0 で作成したプログラムをVisual C++ 2005 でコンパイルしたい

visual C++ 6.0 で作成したプログラムがあります。このソースリストをVisual Studio 2005 Express Edition の Visual C++ 2005 Express Editionでコンパイルしようとしましたが、#include <Windows.h> でエラーになって先に進みません。対応したWindows.hの入手方法教えてください。 それとも、そもそも、Visual C++ 2005 Express Editionでは昔のVC++のプログラムはコンパイルできないのでしょうか?

みんなの回答

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.5

>そこで、ハードディスク内からafxres.h を探したところ2箇所 >SDKの\include\mfc の中と\Samples\NetDS\ADSI\samples\General\DsBrouse\bitmapsの中にありました。両者は異なる内容でどちらを使ってよいのかわかりません。ためしにそれぞれをプロジェクトのディレクトリにコピーしたところ、いずれのafxres.h を使っても、今度は'winres.h'がないと言われます。 PlatformSDKに入っていたンですかね。 winres.hは「SDKの\include\mfc の中」にありませんか? Visual Studio 2005 Express Editionでインクルードパスを追加したらそのまま行けるかも知れません。 # そこまでExpressEditionで試していませんが。 [ツール]-[オプション]の「プロジェクトおよびソリューション」の「VC++ ディレクトリ」でPlatformSDKのインクルードパスを指定したハズですので、 「include\mfc」も追加してみては? ライブラリの方で問題が出た場合にはリンク出来ませんが。

usatan2
質問者

お礼

回答ありがとうございます。 >「include\mfc」も追加してみては? やっぱりだめでした。だんだんエラーの数が増えていってます。 Visual C++ 20005 でコンパイルするために、これ以上時間を使うわけにいきませんので、プログラムの再利用をあきらめるか、Visual C++ 6.0 を探し出して、再利用するかの決断をすることにしました。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

>今度は、'afxres.h'が見つからないというエラーになりました。 確か、VCのリソースエディタが参照するファイルだったかと。 VC6.0のヤツをプロジェクトのディレクトリにコピーしてみたら使えるかも知れません。 試したことはありませんが…… ExpressEditionだとリソースエディタが付属していないので、 結構面倒かと。(探せばフリーのリソースエディタがありますが) ExpressEditionでも、MSに登録していればアップグレード版が利用可能だったと思います。 2万円前後でStandard版に入れ替えてしまいました。 # 発売2ヶ月前にVC++.Net2003買っていたり。

usatan2
質問者

お礼

回答ありがとうございます。 >VC6.0のヤツをプロジェクトのディレクトリにコピーしてみたら使えるかも知れません。 具体的にどうやるのでしょう? 手元にあるソースリストにはafxres.hというファイルはありません。 そこで、ハードディスク内からafxres.h を探したところ2箇所 SDKの\include\mfc の中と\Samples\NetDS\ADSI\samples\General\DsBrouse\bitmapsの中にありました。両者は異なる内容でどちらを使ってよいのかわかりません。ためしにそれぞれをプロジェクトのディレクトリにコピーしたところ、いずれのafxres.h を使っても、今度は'winres.h'がないと言われます。 VC6.0のafxres.hをどこかで入手しないとだめなのでしょうか?

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.3

VC2003以降だったVC2005以降だったか忘れたけど。。。 Windowsアプリケーションを作成する為には、 WindowsSDK(PlatformSDK)が必要です。 VC++6.0で作成したプログラムがMFCまたはATLのアプリケーションの 場合は残念ながらVC2005Express Editionではコンパイルできません ProfassinalかStanderdを購入する必要があります。

usatan2
質問者

お礼

回答ありがとうございます。 >WindowsSDK(PlatformSDK)が必要です。 確かにそうでした。 でも、SDKをインストールしたら、今度は、'afxres.h'が見つからないというエラーになりました。

  • pri_tama
  • ベストアンサー率47% (678/1421)
回答No.2

 No.1ですが、過去にこんな質問がありましたよ 「windows.hがincludeされない」 http://oshiete1.goo.ne.jp/qa2877508.html  確認済みでしたら…。(PlatformSDK絡みだと思うのですが)

usatan2
質問者

お礼

回答ありがとうございます。 >PlatformSDK絡みだと思うのですが 確かにそうでした。 紹介くださった質問ページは「良回答」になっていないので、未解決と思い、よく読みませんでした。 早速、PlatformSDKをインストールして、 http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ に従って、修正を加えましたところ、エラーが代わって、今度は、'afxres.h'が見つからないというエラーになりました。 >ただし、大量のコンパイルエラーに対応する必要があるので、次はあまりやりたくないですね。 おっしゃるように、前途多難ですね。 'afxres.h'をファイル検索したところ、このファイルは MSSDK\Include\mfc の中にあることはわかったのですが、なぜ、見つからないのでしょうか? なお、上記修正の「手順 3. [オプション] ダイアログ ボックスの [プロジェクトとソリューション] セクションで [Visual C++ フォルダ] を更新」のところで、 * Include ファイル - 「MSSDK\include」 を追加してあるのでちゃんと、windows.h は見つかっています。

  • pri_tama
  • ベストアンサー率47% (678/1421)
回答No.1

 可能かと問われれば、私も最近visual C++ 6.0のプロジェクトをVisual C++ 2005(Standard Edition)でコンパイルできるように修正しました。  ただし、大量のコンパイルエラーに対応する必要があるので、次はあまりやりたくないですね。  取敢えず、私は、#include <Windows.h>を出なかったのですが、開発環境のパス設定は大丈夫ですか?  エラーメッセージでは何と言っていますか?