トップ回答者
Stdafx.cppがコンパイルできない。

質問
-
プロジェクトをビルドしようとすると以下のエラーで先に進みません。
xxxxxxxxがプロジェクト名で、VC++6.0から移行したものです。
--------------------------------------------------------------------
InitializeBuildStatus:
"AlwaysCreate" が指定されたため ".\Debug\xxxxxxxx.unsuccessfulbuild" を作成しています。
ClCompile:
StdAfx.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\atlsimpstr.h(511): fatal error C1085: プリコンパイル済みヘッダー ファイルへ書き込めません。'Debug/xxxxxxxx.pch': システム リソースが不足しているため、要求されたサービスを完了できません。ビルドに失敗しました。
--------------------------------------------------------------------
システムリソースが不足しているとは、思えないのですが...
プロジェクトファイルは、ネットワークドライブY:に割り当てています。
職場の他のPCではこの様な現象が発生せず、私のPCでのみ発生するようです。
以前ある海外のフォーラムで、OracleのVirtualBOXをインストールした場合、ネットワークドライブ上のソースのコンパイルでこの現象が起きるとありましたので、OracleのVirtualBOXをアンインストールしました。一旦はこの現象は出なくなったのですが、しばらくすると再発するようになりました。
解決法、ご存知の方、ご教授願います。
VSのバージョンは以下のとおりです。
Microsoft Visual Studio 2010
Version 10.0.40219.1 SP1Rel
Microsoft .NET Framework
Version 4.5.50938 SP1Relインストールされているバージョン: Professional
Microsoft Office Developer Tools
Microsoft Visual Basic 2010
Microsoft Visual C# 2010
Microsoft Visual C++ 2010
Microsoft Visual F# 2010
Microsoft Visual Studio 2010 チーム エクスプローラー
Microsoft Visual Studio Tools for Applications 3.0
Microsoft Visual Web Developer 2010
Add Reference Dialog Plus! 1.0
An significantly enhanced Add Reference dialog for managed code projects.AlignAssignments 1.0
Command for aligning assignments.AutoBraceComplete 1.0
auto brace completeCrystal Reports Templates for Microsoft Visual Studio 2010
Crystal Reports Templates for Microsoft Visual Studio 2010Document Well 2010 Plus 1.0.10916.0
This package provides configurable behavior for the Document Well and its tabs. Please be sure to let us know what you like/dislike about this extension.Microsoft Visual Studio 2010 Professional - 日本語 (KB2529927) 用の修正プログラム KB2529927
Microsoft Visual Studio 2010 Professional - 日本語 (KB2548139) 用の修正プログラム KB2548139
Microsoft Visual Studio 2010 Professional - 日本語 (KB2549864) 用の修正プログラム KB2549864
Microsoft Visual Studio 2010 Professional - 日本語 (KB2565057) 用の修正プログラム KB2565057
Microsoft Visual Studio 2010 Professional - 日本語 (KB2635973) 用の修正プログラム KB2635973
Microsoft Visual Studio 2010 Professional - 日本語 (KB2645410) 用のセキュリティ更新プログラム KB2645410
Microsoft Visual Studio 2010 Professional - 日本語 (KB2736182) 用の修正プログラム KB2736182
Microsoft Visual Studio 2010 Professional - 日本語 (KB2890573) 用の修正プログラム KB2890573
Microsoft Visual Studio 2010 Professional - 日本語 (KB2938807) 用の重要な更新プログラム KB2938807
Microsoft Visual Studio 2010 Professional - 日本語 (KB3002340) 用の修正プログラム KB3002340
Microsoft Visual Studio 2010 Professional - 日本語 Service Pack 1 (KB983509) KB983509
Microsoft Visual Studio 2010 SharePoint Developer Tools 10.0.40219
Microsoft Visual Studio 2010 SharePoint Developer ToolsMicrosoft.VisualStudio.QuickAccess.Package 1.0
Awesome search bar.OptionsPageImpl 1.0
Information about my packageQuickFind 1.0
Visual Studio 2010 Quick Incremental Find ExtensionVSColorOutput 1.4.5
Color output for build and debug windowsDoxyComment add-in for Visual Studio 2005/2008/2010
DoxyComment add-in for Microsoft Visual Studio 2005/2008/2010. Copyright 2005 by Troels Gram. All rights reserved. Please see
使用機種は、HP Compaq 6000 Pro SFF PCOSはWindows 7 Professional 32bit版
以下スペックです。
プロセッサ
Intel(R) Core(TM)2 Duo CPU E7500 @
2.93GHzメモリ (RAM)
4.00 GB
グラフィックスNVIDIA GeForce 8400GS
2045 MB の 利用可能な総グラフィックス メモリ
プライマリ ハード ディスク空き 71GB (合計 231GB)
- 編集済み kumannki 2015年4月13日 9:57
回答
-
とりあえず、コンパイラが指摘していることを直してみてはどうでしょう。
内容は「_WIN32_WINNT」が定義されていないので「_WIN32_WINNT_MAXVER」が採用されるよ。
詳しくは「WinSDKVer.h」を見てねってことですね。
最近のVSでは「targetver.h」内で、ビルドのターゲットとするOSのバージョン等を指定することになってます。
「targetver.h」はプリコンパイルヘッダーの先頭でインクルードされ、以後の全ての定義に影響を与えます。
以上を勘案すると、1.「StdAfx.h」がプリコンパイルヘッダーとして正しく指定されていることの確認。
2.「StdAfx.cpp」がプリコンパイルヘッダーを生成するように指定されていることの確認。
3.「targetver.h」ないし「StdAfx.h」の先頭で「_WIN32_WINNT」が
ターゲットプラットホームを指定していることの確認。などを、まずやってみましょう。
さて、以降は蛇足です。
VC6.0のソースはVC2010でコンバートしても、エラーと警告の山になり一足飛びにコンパイルできるものではありません。
まず、VS2010のプロジェクトウィザードで対象アプリの構造に最も近いテンプレートを選択して、自動生成し、
新旧C/C++言語仕様の違い、セキュリティ強化、VSの違い、新旧MFCの違い、プラットホームの違い、
文字コードの考慮等について十分学んでからでないとポーティングは困難であると想像できます。
また、開発マシンとしては貧弱すぎ、さらに足を引っ張る可能性があることも指摘しておきます。