
No.2ベストアンサー
- 回答日時:
VC++.NET2005のエディションをお教えください。
Express Editionでは、リソースエディタがない、
ATL, MFCが使えないなどの制限がいくつか存在します。
また、VC2005などでは.NET Frameworkの開発が前提となっており
WIN32APIを使用する場合などについては、Platform SDKを
インストールする必要があります。
この回答への補足
回答ありがとうございます。
VC++.NET2005のエディションは「Professional Edition」です。
現在、開発はクライアントPC(WindowsXP Pro)で行っているのですが
クライアントPCにPlatform SDKをインストールすればよいのでしょうか?
それともサーバーにPlatform SDKをインストールしビルドはサーバーで行わなければならないのでしょうか?
No.9
- 回答日時:
>『C:\Program Files\Microsoft Visual Studio 8
\VC\atlmfc\include』に変更しビルドしてみましたがダメでした。
どうダメだったのか、教えてください。
Platform SDKはWindows2003Serverの物をXPに入れてビルド可能です。
この回答への補足
回答ありがとうございます。
>>『C:\Program Files\Microsoft Visual Studio 8
>\VC\atlmfc\include』に変更しビルドしてみましたがダメでした。
>どうダメだったのか、教えてください。
これまでと同様に『fatal error LNK1104:ファイル'mfc42.lib'を開くことができません。』のエラーが出てしまいます。
>Platform SDKはWindows2003Serverの物をXPに入れてビルド可能です。
分かりました。早速試してみます。
No.8
- 回答日時:
No.4/5です。
私が言った、「VC6のヘッダ」というのはMFCを
使用する場合に検索パス内にあるMFC用のヘッダの事を言っています。
検索パスがVC6のものになっていると、これが常にインクルードされてしまう
可能性があるので、リンクしていないのにご質問のようなエラーが出る可能性があります。(言い方が悪くて申し訳ないです。。。)
上記の場合検索パスその物をVC2005に変更する必要があります。
なお、Platform SDKのほうですが、ビルドする環境に入っていれば
問題ありません。(逆に言えばビルドする可能性のあるマシンには必要です)
この回答への補足
回答ありがとうございます。
>私が言った、「VC6のヘッダ」というのはMFCを使用する場合に検索パス内にあるMFC用のヘッダの事を言っています。検索パスがVC6のものになっていると、
>これが常にインクルードされてしまう可能性があるので、リンクしていないのにご質問のようなエラーが出る可能性があります。
そういうことだったのですね。理解できなくて申し訳ありません。
検索パスとはソリューションのプロパティのどこの部分でしょうか?「リンカ」の「全般」の「追加のライブラリディレクトリ」のところでしょうか?
現在の設定は『C:\Program Files\Microsoft Visual Studio\VC98\ATL\Include』となっています。
これを『C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include』に変更しビルドしてみましたがダメでした。どう設定すればいいのでしょうか?
>なお、Platform SDKのほうですが、ビルドする環境に入っていれば問題ありません。(逆に言えばビルドする可能性のあるマシンには必要です)
Platform SDKをダウンロードする為に検索してみたのですが、Windows2003Server用のものしか見つかりませんでした。
ということはやはりローカルPC(WindowsXP Pro)ではビルド出来ないのですね。
No.7
- 回答日時:
★回答者 No.1 です。
・拡張子が vcproj のファイルをエディタで開いて回答者 No.4 さんのアドバイスにある
>単純にリンクライブラリのところから"42"という文字列を"80"に変更してください。
を行いましたか?
拡張子が vcproj のファイルは『プロジェクト名.vcproj』というファイル名ですよ。
このファイルの MFC『42』をMFC『80』に編集するわけです。
>この方法が分かりません。
↑
という事は、まだ vcproj のファイルは編集していないのですよね。
vcproj のファイル内を grep などで検索すれば見つかるはずですが…。
・以上。
この回答への補足
回答ありがとうございます。
『プロジェクト名.vcproj』のファイル内は検索しましたが「mfc42.lib」は見つかりませんでした。
ソリューションのプロパティを見ても『プロジェクト名.vcproj』のファイルをテキストエディタで直接開いても「mfc42.lib」が見つからないので「mfc80.lib」に変更ができずに困っています。
またgrepで検索しても『.lib』と『.obj』ファイルにしか記述が見つかりません。
No.6
- 回答日時:
この状況が再現できる 最低の手順ってわかりませんか?
VC6側のプロジェクトの作成方法
VC2005側でのプロジェクトの取り込み方、または作成方法
-----
VC6側でMFCアプリ、共有DLL使用
ここで行った手順 ...
VC2005でVC6で作成した dswファイルを指定して開く
変換ウィザードが起動して VC2005noソリューションに変換
No.5
- 回答日時:
>ソリューションのプロパティのどこを見ても「mfc42d.lib」という記述が見つからない。
インクルードパスにVC6 の MFC をインクルードパスに指定して
いませんか?
もしそうなら、VC6のヘッダにリンクの記述があるかもしれません。
VC2005のMFCのインクルードパスに変更してみてください。
この回答への補足
何度も回答ありがとうございます。
ご指摘に従いVC6のヘッダを見てみたのですが記述は見つかりませんでした。
またgrepで検索したのですが『.lib』と『.obj』ファイルにしか記述が見つかりません。
私の見てるところが違っているのでしょうか?
No.4
- 回答日時:
エディションの問題ではなさそうですね。
VC2005にMFC42が単純に未対応のようですので、
VS2005ではMFC8.0のmfc80d.libにしてください。
単純にリンクライブラリのところから"42"という文字列を"80"に変更してください。これはデバッグ用なので、リリース用も忘れずに修正してください。
プロジェクトの中(ソリューションのツリーの中)に明示的にmfc42d.libを登録している場合はvcのプロジェクトは"プロジェク名.vcproj"で、単なるテキストファイルなので、その中も上記の変更を入れてください。
ライブラリをリンクするプリプロセッサがVC6のヘッダファイルにある
場合はLIBC.lib を特定のライブラリを無視に指定しビルドすれば、
いけると思います。(この方法はあまりお勧めできないので、
上記の2つ目までを新規プロジェクトで作る事をお勧めしますが。。。)
この回答への補足
回答ありがとうございます。
ご指摘のとおりVS2005ではMFC8.0のmfc80d.libを使用するというのは分かったのですが、
"単純にリンクライブラリのところから"42"という文字列を"80"に変更してください。"
この方法が分かりません。
ソリューションのプロパティのどこを見ても「mfc42d.lib」という記述が見つからないのです。もちろんプログラム内で明示的に記述しているところもありません。
No.1
- 回答日時:
★アドバイス
・ソリューションの構造プロパティ→全般に『MFC の使用』という項目があります。
ここの設定で
(1)標準 Windows ライブラリを使用する
(2)スタティック ライブラリで MFC を使用する
(3)共有 DLL で MFC を使用する
が選択できます。
・なお、当方は VC++.NET 2003 ですけど。参考にどうぞ。
・以上。
この回答への補足
アドバイスありがとうございます。
VC++.NET2005でも
(1)標準 Windows ライブラリを使用する
(2)スタティック ライブラリで MFC を使用する
(3)共有 DLL で MFC を使用する
が選択できます。
VC++6.0で作成したプログラム、VC++.NET2005へ移植したプログラムとも(3)を設定しています。
VC++6.0では「mfc42.lib」を使用していてVC++.NET2005では「mfc80.lib」を使用しているというのは分かったのですが
移植した場合、「mfc42.lib」の参照定義を「mfc80.lib」へ変更すればいいのか、またどう変更すればいいのか分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- プリンタ・スキャナー Brother MFC-7460DNの一時停止解除について 1 2022/12/03 12:38
- その他(SNS・コミュニケーションサービス) ゲームでボイスチャットを使いたいんですが、親にどう説明したらいいですか 2 2022/08/03 14:07
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(プログラミング・Web制作) Python でWindowsのショートカット(.lnk)のプロパティを参照したい 1 2023/02/01 15:09
- サーバー WindowsでApache が起動しない 1 2022/11/29 12:21
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- オンラインゲーム VCしながらゲームしたい… 2 2022/06/11 16:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタティックリンクライブラリ...
-
スタティックライブラリ関係の...
-
Borlandbcc55とMYSQLのコ...
-
コンパイルはできるが、リンク...
-
'd3dx9.lib' が開けません。
-
exeファイルはどのdllを参照す...
-
MISTのLAPACKの環境設定ができない
-
スタティックライブラリの使い方
-
C言語のPathFileExistsについて
-
#include <winreg.h>をインクル...
-
音声ファイルを流すには・・・
-
operator new が再定義されてい...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
unsigned long long 型のフォー...
-
外部シンボル "_main"は未解決です
-
” OS ビルド ” の意味が分か...
-
MPI プログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタティックリンクライブラリ...
-
スタティックライブラリ関係の...
-
C++Builder リンカエラーとは?
-
visual studio community2017 O...
-
【VS2008 C++】2つのプロジェ...
-
fatal error LNK1104: ファイル...
-
「MFCを使用しない」から「MFC...
-
#pragma commentの相対パス指定
-
静的/動的リンクライブラリにつ...
-
C/C++の.libについて教えてくだ...
-
VS2010にて、依存関係とビルド順
-
C++によるPostgreSQLの接続
-
WindowsにおけるPostgreSQL+C言...
-
'stdafx.h'のエラーに関して
-
C言語のPathFileExistsについて
-
eclipse+MinGWの環境で外部ライ...
-
VC++でビルド時の、リンク警告 ...
-
exeファイルはどのdllを参照す...
-
error LNK2001: 外部シンボル "...
-
#include <winreg.h>をインクル...
おすすめ情報