Файл afxwin.h отсутствует в VC ++ Express Edition - PullRequest
25 голосов
/ 04 апреля 2011

Когда я пытаюсь запустить файл VC ++ 2005 для VC ++ 2008:

1>------ Build started: Project: canvas, Configuration: Debug Win32 ------  
1>Compiling...  
1>canvasApp.cpp  
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory  
1>canvasFrame.cpp  
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory  
1>Generating Code...  
1>Build log was saved at "file://c:\Documents and Settings\ram\My Documents\Visual Studio 2008\demo\Debug\BuildLog.htm"  
1>canvas - 2 error(s), 0 warning(s)  
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========  

Ответы [ 4 ]

30 голосов
/ 05 апреля 2011

Нашел этот пост, который может помочь: http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/7c274008-80eb-42a0-a79b-95f5afbf6528/

Или коротко, afxwin.h - это MFC, а MFC не включен в бесплатную версию VC ++ (Express Edition).

9 голосов
/ 24 сентября 2013

Включая заголовок afxwin.h сигнализирует об использовании MFC.Следующие инструкции (основанные на на CodeProject.com ) могут помочь получить код MFC для компиляции:

  1. Загрузите и установите Windows Driver Kit .

  2. Выберите меню Инструменты> Параметры ...> Проекты и решения> Каталоги VC ++ .

  3. В выпадающемвниз меню Показать каталоги для выбрать Включить файлы .

  4. Добавить следующие пути (замените $(WDK_directory) на каталог, в который вы установили драйвер WindowsКомплект на первом этапе):

    $(WDK_directory)\inc\mfc42
    $(WDK_directory)\inc\atl30
    

  5. В раскрывающемся меню Показать каталоги для выберите Библиотечные файлы и добавьте (замените $(WDK_directory) как раньше):

    $(WDK_directory)\lib\mfc\i386
    $(WDK_directory)\lib\atl\i386
    

  6. В файле $(WDK_directory)\inc\mfc42\afxwin.inl отредактируйте следующие строки (начиная с 1033):

    _AFXWIN_INLINE CMenu::operator==(const CMenu& menu) const
        { return ((HMENU) menu) == m_hMenu; }
    _AFXWIN_INLINE CMenu::operator!=(const CMenu& menu) const
        { return ((HMENU) menu) != m_hMenu; }
    

    до

    _AFXWIN_INLINE BOOL CMenu::operator==(const CMenu& menu) const
        { return ((HMENU) menu) == m_hMenu; }
    _AFXWIN_INLINE BOOL CMenu::operator!=(const CMenu& menu) const
        { return ((HMENU) menu) != m_hMenu; }
    

    Другими словами, добавьте BOOL после _AFXWIN_INLINE.

6 голосов
/ 11 марта 2014

Я вижу, что вопрос касается Express Edition, но эту тему легко открыть в поиске Google, и у нее нет решения для других изданий.

Итак. Если вы столкнулись с этой проблемой в любом выпуске VS Edition, кроме Express, вы можете перезапустить установку и включить файлы MFC.

2 голосов
/ 19 июля 2016

Я столкнулся с той же проблемой. Проще всего установить бесплатную Visual Studio Community 2015, как ответили на этот вопрос Доступно ли MFC только для Visual Studio, но не для Visual C ++ Express?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...