こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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++のプログラムはコンパイルできないのでしょうか?

投稿日時 - 2007-10-19 17:55:16

QNo.3443320

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

Wr5

>そこで、ハードディスク内から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」も追加してみては?
ライブラリの方で問題が出た場合にはリンク出来ませんが。

投稿日時 - 2007-10-22 01:33:26

お礼

回答ありがとうございます。
>「include\mfc」も追加してみては?
やっぱりだめでした。だんだんエラーの数が増えていってます。

Visual C++ 20005 でコンパイルするために、これ以上時間を使うわけにいきませんので、プログラムの再利用をあきらめるか、Visual C++ 6.0 を探し出して、再利用するかの決断をすることにしました。

投稿日時 - 2007-10-24 19:30:22

ANo.4

Wr5

>今度は、'afxres.h'が見つからないというエラーになりました。

確か、VCのリソースエディタが参照するファイルだったかと。
VC6.0のヤツをプロジェクトのディレクトリにコピーしてみたら使えるかも知れません。
試したことはありませんが……

ExpressEditionだとリソースエディタが付属していないので、
結構面倒かと。(探せばフリーのリソースエディタがありますが)

ExpressEditionでも、MSに登録していればアップグレード版が利用可能だったと思います。
2万円前後でStandard版に入れ替えてしまいました。
# 発売2ヶ月前にVC++.Net2003買っていたり。

投稿日時 - 2007-10-20 01:35:10

お礼

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

>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をどこかで入手しないとだめなのでしょうか?

投稿日時 - 2007-10-21 20:43:35

ANo.3

VC2003以降だったVC2005以降だったか忘れたけど。。。
Windowsアプリケーションを作成する為には、
WindowsSDK(PlatformSDK)が必要です。

VC++6.0で作成したプログラムがMFCまたはATLのアプリケーションの
場合は残念ながらVC2005Express Editionではコンパイルできません
ProfassinalかStanderdを購入する必要があります。

投稿日時 - 2007-10-19 18:59:44

お礼

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

>WindowsSDK(PlatformSDK)が必要です。
確かにそうでした。

でも、SDKをインストールしたら、今度は、'afxres.h'が見つからないというエラーになりました。

投稿日時 - 2007-10-20 00:04:09

ANo.2

 No.1ですが、過去にこんな質問がありましたよ

「windows.hがincludeされない」
http://oshiete1.goo.ne.jp/qa2877508.html

 確認済みでしたら…。(PlatformSDK絡みだと思うのですが)

投稿日時 - 2007-10-19 18:42:24

お礼

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

>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 は見つかっています。

投稿日時 - 2007-10-20 00:02:16

ANo.1

 可能かと問われれば、私も最近visual C++ 6.0のプロジェクトをVisual C++ 2005(Standard Edition)でコンパイルできるように修正しました。

 ただし、大量のコンパイルエラーに対応する必要があるので、次はあまりやりたくないですね。

 取敢えず、私は、#include <Windows.h>を出なかったのですが、開発環境のパス設定は大丈夫ですか?
 エラーメッセージでは何と言っていますか?

投稿日時 - 2007-10-19 18:27:24

あなたにオススメの質問