У меня есть проект Visual Studio 6.0, который использует SQL Compact Server.
Я пытаюсь обновить решение для использования в 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, я испортил какое-то объявление класса?
попробуйте определить _INC_WINDOWS перед включением winsock2.h для аннулирования, включая win.h
Я нашел этот вопрос / ответ, который может помочь всем, кто нуждается в миграции тоже.
Миграция большого проекта в MFC из Visual C ++ 6.0 в Visual Studio 2005