我有一个使用SQL Compact Server的Visual Studio 6.0项目。 我正在尝试更新在Visual Studio 2012上使用的解决方案,但我有以下错误:
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
我的stdafx.h包含winsock2.h,他们有:
#ifndef _INC_WINDOWS
#include <windows.h>
#endif /* _INC_WINDOWS */
有办法压制错误吗?我该怎么办?当我间接删除包含它的文件的windows.h时,我得到error C2011: 'IRowsetBookmark' : 'struct' type redefinition
我已经在这里看到了有关此错误的其他问题,但没有任何建议对我有用。
- 更新:
我解决了error C2011: 'IRowsetBookmark' : 'struct' type redefinition
在stdafx.h顶部添加以下行:
#if !defined(__IRowsetBookmark_INTERFACE_DEFINED__)
#define __IRowsetBookmark_INTERFACE_DEFINED__
#endif
#if !defined(__IRowsetBookmark_FWD_DEFINED__)
#define __IRowsetBookmark_FWD_DEFINED__
#endif
但是我得到error C2143: syntax error : missing ',' before '<'
在那条线上:
class CArrayRowset :
public CVirtualBuffer<T>,
public TRowset
{
是否有可能在我的stdfx.h上添加这些行,我搞砸了一些类声明?
答案 0 :(得分:1)
尝试定义_INC_WINDOWS,然后将winsock2.h包含在void中,包括win.h
答案 1 :(得分:1)
我发现这个问题/答案可能会帮助每个需要迁移的人。
Migrating a big project in MFC from Visual C++ 6.0 to Visual Studio 2005