【发布时间】:2015-01-19 07:40:46
【问题描述】:
我正在尝试将 MFC 项目从 Visual Studio 2012(编译良好)迁移到 Visual Studio 2013,我得到了一堆未定义的错误,如下所示。
这些都是在拉入预编译头文件时引起的——我只能假设我以错误的顺序包含了一些 MFC 头文件——有人知道它们现在应该是什么顺序吗? 这些错误表明 PGESTURECONFIG 是在 WinUser.h 中定义的 - 但它不喜欢我在 afxwin.h 之前的任何地方都包含它(如果我指示“无目标体系结构”,它会产生不同的错误)
这就是我认为相关部分目前在预编译头文件中的原因:
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxcmn.h> // MFC support for Windows 95 Common Controls
#include <afxcview.h> // MFC CTreeView, etc...
这就是我遇到的错误:
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2092): error C2146: syntax error : missing ';' before identifier 'm_pConfigs'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2092): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2019): error C2065: 'GID_ZOOM' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2019): error C2065: 'GC_ZOOM' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2025): error C2065: 'GID_ROTATE' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2025): error C2065: 'GC_ROTATE' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2031): error C2065: 'GID_TWOFINGERTAP' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2031): error C2065: 'GC_TWOFINGERTAP' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2045): error C2065: 'GID_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2045): error C2065: 'GC_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2051): error C2065: 'GID_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2051): error C2065: 'GC_PAN_WITH_SINGLE_FINGER_VERTICALLY' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2057): error C2065: 'GID_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2057): error C2065: 'GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2063): error C2065: 'GID_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2063): error C2065: 'GC_PAN_WITH_GUTTER' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2069): error C2065: 'GID_PAN' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2069): error C2065: 'GC_PAN_WITH_INERTIA' : undeclared identifier
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2953): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2953): error C2146: syntax error : missing ';' before identifier 'GetCurrentGestureInfo'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2954): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2956): warning C4183: 'GetCurrentGestureInfo': missing return type; assumed to be a member function returning 'int'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2986): error C2061: syntax error : identifier 'PTOUCHINPUT'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2996): error C2061: syntax error : identifier 'PTOUCHINPUT'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(3009): error C2146: syntax error : missing ';' before identifier 'm_pCurrentGestureInfo'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(3009): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxwin.h(2955): error C2065: 'm_pCurrentGestureInfo' : undeclared identifier
任何建议表示赞赏。
【问题讨论】:
-
您的小标题示例在另存为
stdafx.h时编译良好,然后使用仅对#include "stdafx.h"和cl /c /Yc stdafx.h stdafx.cpp执行的源进行编译,因此必须有其他事情发生。您的错误列表似乎与 Win8 功能有关。确保您已定义_WIN32_WINNT_MAXVER以限制您想要支持的 Windows 版本。 @Bathsheba:没有帮助。在企业环境中,我们不能随心所欲地改变我们的技术基础。
标签: c++ visual-studio-2012 visual-studio-2013 mfc