Include windows h visual studio

Hell’o
I’ve just installed Visual Studio 2017 (enterprise).I opened my project whom I created in Visual Studio 2015. My project uses windows.h library but VS2017 cannot find this library. How to repair this?

Mike Kinghan's user avatar

Mike Kinghan

56k12 gold badges153 silver badges183 bronze badges

asked Apr 14, 2017 at 11:28

Marcin Klima's user avatar

3

My solution was :

  • Open the project properties
  • Into General —> SDK Version
  • I just picked the 10.0.15063.0 version instead of 8.1

And it worked.

answered Aug 14, 2017 at 12:02

ImFonky's user avatar

ImFonkyImFonky

8151 gold badge7 silver badges8 bronze badges

1

I solved this issue by re-running the Visual Studio Installer and selecting the «Modify» button. Once presented with the Workloads screen I clicked on the «Individual Components» tab and selected all of the latest «Windows 10 SDK» Checkboxes(version 10.0.15063.0). My guess is that the entry for «Desktop C++ x86 and x64» is the one the actually fixes it but it is only speculation because none of those options were checked when I ran the installer and as you can see I checked all of them.

enter image description here

answered Apr 17, 2017 at 21:58

James Pack's user avatar

James PackJames Pack

8341 gold badge10 silver badges19 bronze badges

2

This happens when you have customized include/library paths in legacy projects. If you added your own additional paths in project properties, VisualStudio 2017 can’t automatically figure out base paths when switching between platforms/toolsets — normally it automatically puts correct paths there, but if you added customizations, VS won’t touch them.

This is legitimate problem which I ran into myself recently when migrating old project targeted for Windows XP into VS2017. None of the answers or comments listed/linked here so far are helpful. I have all legacy SDKs in VisualStudio 2017 installer, and none of that fixed VS not finding essential includes such as <windows.h>. In my case the project was using v120 toolset from VS2013, which is superseded by v140_xp in newer VS.

After setting correct platform and toolset understood by VS2017, I did the following to resolve the problem:

  • Open project properties, go to VC++ Directories, for ‘Include Directories’ and for ‘Library Directories’, choose <Inherit from parent or project defaults>. This will remove your additional paths.

  • Click ‘Apply’. This will reset include path to something like $(VC_IncludePath_x86);$(WindowsSdk_71A_IncludePath_x86) (will vary for SDKs).

  • Re-add your extra paths here, or better yet — under C/C++/General -> Additional Include Directories and Linker/General -> Additional Library Directories.

answered Jul 6, 2017 at 9:03

Cozzamara's user avatar

CozzamaraCozzamara

1,3181 gold badge14 silver badges22 bronze badges

2

I got it fixed when I simply changed «General => Windows SDK version» to a different version, submitted the changes and then changed it back.

answered Jun 17, 2019 at 5:05

Aivar's user avatar

AivarAivar

6,8265 gold badges46 silver badges80 bronze badges

The problem occurs when you migrate your C++ project from a more updated visual studio version to a lesser one.
To solve the issue simply go to your :
Project’s properties—>General—>SDK Version [and here unroll to show installed SDK versions so you downgrade to an available version {Since the required one seems unavailable hence the error}].
Once one of the Available SDKs selected, Apply, and go back to your code, and everything gonna get fixed.

answered Jan 15, 2019 at 10:52

Thanos's user avatar

If the installation was ok it should be here:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um\Windows.h

So be sure it is on the include path of the project properties.

Project properties

Or if you prefer by manual edit in the .vcxproj file at the IncludePath Tag line:

<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared;</IncludePath>

answered Sep 26, 2017 at 20:57

Zanna's user avatar

ZannaZanna

6769 silver badges13 bronze badges

TL;DR: make sure the checkbox, marked below, is checked.

In the Include Directories Dlgbox, there’s an option at the bottom «Inherit from…» that needs to be checked. Somehow it got unchecked after moving a project to a different solution.

So, in my case, resetting to defaults and adding custom paths again wasn’t even needed.
Screenshot

answered May 6, 2020 at 11:39

Erik Bongers's user avatar

You have to go in Visual Studio 2017 Installer, choose Individual Components, and manually select and install Windows 8.1 SDK.

answered Jun 17, 2017 at 1:42

Mardulu's user avatar

This step work for me.
1. Open visual studio installer
2. at menu «Visual studio comunity 2017» —> click modify
3. at desktop development with c++ —> enable windows10 SDK for desktop and windows 8.1 SDK
4. click modify

answered Oct 17, 2017 at 3:28

chokelive's user avatar

I’ve also installed Visual Studio 2017 (community) first with the default composition settings.I opened my project whom I created in Visual Studio 2015. My project uses windows.h library but VS2017 cannot find this library and other problems. At first I install the missing (SDK 10 … etc.) components. Part of problems is gone, but windows.h still not found. The problem was solved by completely uninstalling VS2017 and then installing with all the options at once.

answered Feb 18, 2018 at 13:27

Serg Tsaregorodtsev's user avatar

My solution was checking paths.

Include Directories:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;
%(AdditionalIncludeDirectories)

Library Directories:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64

and then right click Solution Explorer: Solution ‘xxxxx’ (1 project) line click «Retarget solution»

Remember to set Debug setting for Symbols fetch — Windows 10 must use Microsoft symbol server!

tuomastik's user avatar

tuomastik

4,5995 gold badges36 silver badges49 bronze badges

answered Feb 1, 2019 at 5:22

Pekka Kalevi Ylönen's user avatar

Hell’o
I’ve just installed Visual Studio 2017 (enterprise).I opened my project whom I created in Visual Studio 2015. My project uses windows.h library but VS2017 cannot find this library. How to repair this?

Mike Kinghan's user avatar

Mike Kinghan

56k12 gold badges153 silver badges183 bronze badges

asked Apr 14, 2017 at 11:28

Marcin Klima's user avatar

3

My solution was :

  • Open the project properties
  • Into General —> SDK Version
  • I just picked the 10.0.15063.0 version instead of 8.1

And it worked.

answered Aug 14, 2017 at 12:02

ImFonky's user avatar

ImFonkyImFonky

8151 gold badge7 silver badges8 bronze badges

1

I solved this issue by re-running the Visual Studio Installer and selecting the «Modify» button. Once presented with the Workloads screen I clicked on the «Individual Components» tab and selected all of the latest «Windows 10 SDK» Checkboxes(version 10.0.15063.0). My guess is that the entry for «Desktop C++ x86 and x64» is the one the actually fixes it but it is only speculation because none of those options were checked when I ran the installer and as you can see I checked all of them.

enter image description here

answered Apr 17, 2017 at 21:58

James Pack's user avatar

James PackJames Pack

8341 gold badge10 silver badges19 bronze badges

2

This happens when you have customized include/library paths in legacy projects. If you added your own additional paths in project properties, VisualStudio 2017 can’t automatically figure out base paths when switching between platforms/toolsets — normally it automatically puts correct paths there, but if you added customizations, VS won’t touch them.

This is legitimate problem which I ran into myself recently when migrating old project targeted for Windows XP into VS2017. None of the answers or comments listed/linked here so far are helpful. I have all legacy SDKs in VisualStudio 2017 installer, and none of that fixed VS not finding essential includes such as <windows.h>. In my case the project was using v120 toolset from VS2013, which is superseded by v140_xp in newer VS.

After setting correct platform and toolset understood by VS2017, I did the following to resolve the problem:

  • Open project properties, go to VC++ Directories, for ‘Include Directories’ and for ‘Library Directories’, choose <Inherit from parent or project defaults>. This will remove your additional paths.

  • Click ‘Apply’. This will reset include path to something like $(VC_IncludePath_x86);$(WindowsSdk_71A_IncludePath_x86) (will vary for SDKs).

  • Re-add your extra paths here, or better yet — under C/C++/General -> Additional Include Directories and Linker/General -> Additional Library Directories.

answered Jul 6, 2017 at 9:03

Cozzamara's user avatar

CozzamaraCozzamara

1,3181 gold badge14 silver badges22 bronze badges

2

I got it fixed when I simply changed «General => Windows SDK version» to a different version, submitted the changes and then changed it back.

answered Jun 17, 2019 at 5:05

Aivar's user avatar

AivarAivar

6,8265 gold badges46 silver badges80 bronze badges

The problem occurs when you migrate your C++ project from a more updated visual studio version to a lesser one.
To solve the issue simply go to your :
Project’s properties—>General—>SDK Version [and here unroll to show installed SDK versions so you downgrade to an available version {Since the required one seems unavailable hence the error}].
Once one of the Available SDKs selected, Apply, and go back to your code, and everything gonna get fixed.

answered Jan 15, 2019 at 10:52

Thanos's user avatar

If the installation was ok it should be here:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um\Windows.h

So be sure it is on the include path of the project properties.

Project properties

Or if you prefer by manual edit in the .vcxproj file at the IncludePath Tag line:

<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared;</IncludePath>

answered Sep 26, 2017 at 20:57

Zanna's user avatar

ZannaZanna

6769 silver badges13 bronze badges

TL;DR: make sure the checkbox, marked below, is checked.

In the Include Directories Dlgbox, there’s an option at the bottom «Inherit from…» that needs to be checked. Somehow it got unchecked after moving a project to a different solution.

So, in my case, resetting to defaults and adding custom paths again wasn’t even needed.
Screenshot

answered May 6, 2020 at 11:39

Erik Bongers's user avatar

You have to go in Visual Studio 2017 Installer, choose Individual Components, and manually select and install Windows 8.1 SDK.

answered Jun 17, 2017 at 1:42

Mardulu's user avatar

This step work for me.
1. Open visual studio installer
2. at menu «Visual studio comunity 2017» —> click modify
3. at desktop development with c++ —> enable windows10 SDK for desktop and windows 8.1 SDK
4. click modify

answered Oct 17, 2017 at 3:28

chokelive's user avatar

I’ve also installed Visual Studio 2017 (community) first with the default composition settings.I opened my project whom I created in Visual Studio 2015. My project uses windows.h library but VS2017 cannot find this library and other problems. At first I install the missing (SDK 10 … etc.) components. Part of problems is gone, but windows.h still not found. The problem was solved by completely uninstalling VS2017 and then installing with all the options at once.

answered Feb 18, 2018 at 13:27

Serg Tsaregorodtsev's user avatar

My solution was checking paths.

Include Directories:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;
%(AdditionalIncludeDirectories)

Library Directories:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64

and then right click Solution Explorer: Solution ‘xxxxx’ (1 project) line click «Retarget solution»

Remember to set Debug setting for Symbols fetch — Windows 10 must use Microsoft symbol server!

tuomastik's user avatar

tuomastik

4,5995 gold badges36 silver badges49 bronze badges

answered Feb 1, 2019 at 5:22

Pekka Kalevi Ylönen's user avatar

levandowskiy

1 / 1 / 0

Регистрация: 18.08.2009

Сообщений: 7

1

26.12.2011, 21:23. Показов 22550. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Привет, участникам форума)

Давно не писал сюда. Вот такая проблемка возникла: Никогда не писал для win32api, а тут прямо припёрло.
Ну скачал Щупака. Открыл любимую visual studio восьмую, создал проект типа Windows application на C++. Набрал простейший пример:

Код:

C++
1
2
3
4
5
6
7
#include <windows.h>
 
int WINAPI WinMain(HISTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Hello, Win32 World!", "Hello from messagebox", MB_OK);
    return 0;
}

Нажимаю F5 и вуаля ошибка

1>d:\documents and settings\александр\мои документы\visual studio 2008\projects\test_project1\test_pr oject1\main.cpp(1) : fatal error C1083: Cannot open include file: ‘windows.h’: No such file or directory

говорит нет такого файла.

Вопрос такой уважаемые форумчане : может какие настройки требуются к visual studio , может где скачивается этот чёртов файл. При всём желании пописать на API не имею такой возможности. Спасайте что надо сделать чтобы код заработал???



0



589 / 96 / 6

Регистрация: 24.01.2009

Сообщений: 379

27.12.2011, 00:33

2

В настройках проекта нужно указать:
— в настройках компилятора указать путь к папке Include в SDK (параметр Additional Include Directories)
— в настройках линковщика — путь к папке Lib (параметр Additional Library Directories).

Если нет SDK, то нужно скачать Windows SDK для создания прог под винду. Если нужно могу скинуть куда-нибудь под XP (400 МБ) или под 7-ку (1,5 ГБ). Какая у тебя ОС?

Добавлено через 26 минут
Вот для семерки нашел на офф сайте: нажми меня. Если эта ссылка не откроется, тогда смотри страницу загрузки.



0



1 / 1 / 0

Регистрация: 18.08.2009

Сообщений: 7

27.12.2011, 07:31

 [ТС]

3

Спасибо за такой полный ответ. Если это возможно скиньте мне пожалуйста SDK для winXP можно на почту levandowskiy@yandex.ru

Второй вопрос: где найти настройки компилятора и линовщика . Tools->Options это понятно а дальше не пойму.



0



589 / 96 / 6

Регистрация: 24.01.2009

Сообщений: 379

28.12.2011, 01:35

4

Не, нужно в меню выбрать Project->References…
И там найти настройки компилятора (C/C++->General) и линковщика (Linker->General). Для XP ща залью на mail.ru

Добавлено через 34 минуты
Вот ссылка на XP SP2 SDK.

Предыдущая ссылка, кстати, включает в себя все нужные файлы и для XP тоже (кроме 7-ки). Правда качать там 1,5 ГБ



0



russian_pepper

44 / 1 / 0

Регистрация: 14.06.2014

Сообщений: 150

30.07.2015, 22:06

5

Привет, Всем!
Возможно я иду по тому же пути, что и levandowskiy. Читаю Щупака, проверяю тот же пример:

C++
1
2
3
4
5
6
7
8
9
#include<Windows.h>
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow)
 
{
    MessageBox(NULL, "Hello, Win32 world!", "Hello from Message Box", MB_OK);
    return 0;
}

в VS2013 ошибка другая: Error 1 error C2664: ‘int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)’ : cannot convert argument 2 from ‘const char [20]’ to ‘LPCWSTR’ D:\Temp\Win32Project1_HelloWorld\Win32Project1_HelloWorld\Win32Project1_HelloWor ld\Source.cpp 7 1 Win32Project1_HelloWorld
Подскажите, у меня Windows8.1, мне тоже SDK надо искать?
Если Щупак — не луший путь для изучнеия WinAPI покажите лучший источник для этих целей. У меня очень простая задача, нужно строить графики по точкам в разных окнах, масштабировать их и накладывать друг на друга иногда, (консоли недостаточно).



0



Dragokas

Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

30.07.2015, 22:22

6

Либо используйте юникодные строки:

C++
1
MessageBox(NULL, L"Hello, Win32 world!", L"Hello from Message Box", MB_OK);

Либо переключите в настройках проекта кодировку на многобайтовую.
(Проект -> Свойства -> Cвойства конфигурации -> Набор символов -> …)



1



44 / 1 / 0

Регистрация: 14.06.2014

Сообщений: 150

30.07.2015, 22:45

7

Dragokas, Спасибо! Так всё работает. У Щупака этого нет, откуда я должен был это узнать? Где мне лучше брать информацию для решения моей задачи?

Добавлено через 3 минуты
Dragokas, И какой вариант с Вашей точки зрения более правильный, кодировку переключить или строку изменить с учётом подсказки Вашей?



0



Эксперт WindowsАвтор FAQ

18068 / 7671 / 891

Регистрация: 25.12.2011

Сообщений: 11,444

Записей в блоге: 17

30.07.2015, 22:48

8

Писать на юникоде и не иметь в дальнейшем никакой головной боли.

По графике кто-то другой поможет. Я ее ни капли не изучал.



2



1369 / 513 / 71

Регистрация: 21.07.2015

Сообщений: 1,302

31.07.2015, 11:12

9

Цитата
Сообщение от russian_pepper
Посмотреть сообщение

И какой вариант с Вашей точки зрения более правильный, кодировку переключить или строку изменить с учётом подсказки Вашей?

Использовать макрос TEXT(«bla bla»);

Цитата
Сообщение от russian_pepper
Посмотреть сообщение

У меня очень простая задача, нужно строить графики по точкам в разных окнах, масштабировать их и накладывать друг на друга иногда

В VS уже есть шаблон проекта каркасного оконного приложения. Вот и возьми его за основу. Рисовать можно в WM_PAINT — гугл в помощь.



0



117 / 121 / 42

Регистрация: 25.08.2012

Сообщений: 1,294

02.08.2015, 20:39

10

Dragokas, а можно в начале просто макрос написать «#undef UNICODE», если надо в определенном месте отключить использование Юникода, и задефить потом обратно



0



Привет
Я только что установил Visual Studio 2017 (предприятие). Я открыл свой проект, который я создал в Visual Studio 2015. Мой проект использует библиотеку windows.h, но VS2017 не может найти эту библиотеку. Как это починить?

13

Решение

Мое решение было:

  • Открой свойства проекта
  • В генеральный —> Версия SDK
  • Я только что выбрал 10.0.15063.0 версия вместо 8.1

И это сработало.

44

Другие решения

Я решил эту проблему, перезапустив установщик Visual Studio и нажав кнопку «Изменить». После того, как на экране появилось окно «Рабочие нагрузки», я щелкнул вкладку «Отдельные компоненты» и установил все последние флажки «Windows 10 SDK» (версия 10.0.15063.0). Я предполагаю, что запись для «Desktop C ++ x86 и x64» является той, которая действительно исправляет ее, но это всего лишь предположение, потому что ни одна из этих опций не была проверена, когда я запустил установщик, и, как вы можете видеть, я проверил все из них.

введите описание изображения здесь

20

Это происходит, когда вы настраиваете пути include / library в устаревших проектах. Если вы добавили свои собственные дополнительные пути в свойствах проекта, VisualStudio 2017 не сможет автоматически определить базовые пути при переключении между платформами / наборами инструментов — обычно он автоматически помещает туда правильные пути, но если вы добавили настройки, VS не будет их трогать.

Это законная проблема, с которой я столкнулся недавно при переносе старого проекта, ориентированного на Windows XP, в VS2017. Ни один из ответов или комментариев, перечисленных / связанных здесь, пока не является полезным. У меня есть все устаревшие SDK в установщике VisualStudio 2017, и ни один из этих исправленных VS не нашел необходимых включений, таких как <windows.h>, В моем случае в проекте использовался набор инструментов v120 из VS2013, который заменен v140_xp в более новой VS.

После установки правильной платформы и набора инструментов, понятных VS2017, я сделал следующее, чтобы решить проблему:

  • Откройте свойства проекта, перейдите в каталоги VC ++, выберите «Включить каталоги» и «Библиотечные каталоги», выберите <Inherit from parent or project defaults>, Это удалит ваши дополнительные пути.

  • Нажмите «Применить». Это сбросит путь включения к чему-то вроде $(VC_IncludePath_x86);$(WindowsSdk_71A_IncludePath_x86) (будет отличаться для SDK).

  • Добавьте сюда дополнительные пути, или еще лучше — в C / C ++ / General -> Дополнительные каталоги включения и Linker / General -> Дополнительные каталоги библиотеки.

10

Если установка прошла нормально, это должно быть здесь:

C: \ Program Files (x86) \ Windows Kits \ 10 \ Include \ 10.0.15063.0 \ um \ Windows.h

Поэтому убедитесь, что он находится на пути включения свойств проекта.

Свойства проекта

Или, если вы предпочитаете вручную редактировать файл .vcxproj в строке тега IncludePath:

<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared;</IncludePath>

1

Вам нужно зайти в установщик Visual Studio 2017, выбрать отдельные компоненты, а затем вручную выбрать и установить Windows 8.1 SDK.

0

Этот шаг работает для меня.
1. Откройте установщик Visual Studio
2. в меню «Visual studio comunity 2017» -> нажмите изменить
3. при разработке рабочего стола с c ++ -> включить Windows10 SDK для рабочего стола и Windows 8.1 SDK
4. нажмите изменить

0

Я также сначала установил Visual Studio 2017 (сообщество) с настройками композиции по умолчанию. Я открыл свой проект, который я создал в Visual Studio 2015. Мой проект использует библиотеку windows.h, но VS2017 не может найти эту библиотеку и другие проблемы. Сначала я устанавливаю недостающие (SDK 10 … и т. Д.) Компоненты. Часть проблем исчезла, но windows.h до сих пор не найден. Проблема была решена путем полной деинсталляции VS2017 и последующей установки сразу со всеми опциями.

0

I’ve just installed VS2015 Community. 

I didn’t uninstall VS2010. 

It converted a large application I’m currently working on. 

I’m getting this error — fatal error C1083: Cannot open include file: ‘windows.h’: No such file or directory

Here is some new code I just created using the empty template, multi char instead of UTF 16:

#include <windows.h>

INT_PTR CALLBACK simple_2015_dialog_box(HWND hdlg,
                                        UINT message,
                                        WPARAM wParam,
                                        LPARAM lParam);

int WINAPI WinMain(HINSTANCE hinstance, 
                   HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
     DialogBox(hinstance,
               "SIMPLE_2015_DIALOG", NULL,
               (DLGPROC)simple_2015_dialog_box);
}

INT_PTR CALLBACK simple_2015_dialog_box(HWND hdlg,
                                        UINT message,
                                        WPARAM wParam,
                                        LPARAM lParam)
{
}

There might be a lot of problems in this little piece of code, I just tossed it together. I didn’t even bother building the dialog template. 

However, the only error it reports is — fatal error C1083: Cannot open include file: ‘windows.h’: No such file or directory

I searched the C drive for windows.h and found nothing. 

I’ve found Microsoft’s search tool useless since Win 7.  Here is what it came up with when looking for windows.h.

Why do I need to scroll through 209 files with names like

  amd64_microsoft.windows.c..-controls.resources_6595b64144ccf1df_5.82.10586.0_hu-hu_396d25395bc70435_comctl32.dll.mui_0da4e682

when I’m searching for a file with the name of «windows.h»?  I’ve looked for a forum on MS’s search feature, with no luck. 

Anyway, the search finds no file named windows.h. 

Why can’t I find VS2010’s windows.h file?

What am I doing wrong?

Thanks
Larry

  • Edited by

    Thursday, March 24, 2016 6:08 PM

  • Install node js windows cmd
  • Include what you use windows
  • Inaccessible boot device при загрузке windows 10 nvme
  • Install language pack for windows 10
  • Include masm32 include windows inc