2016-02-15 4 views
0

Я использую MSVC 2015, и я попытался скомпилировать (cl) код, содержащий #include "winmain.h". Он не с fatal error C1083: Cannot open include file: 'winmain.h': No such file or directory. Однако, когда я сменил include на #include <windows.h>, он скомпилирован в порядке.включая «winmain.h» vs <windows.h>

Поиск информации в Интернете, я нахожу многочисленные места, где эти файлы включены, но я не нахожу упоминания о том, что winmain.h будет недоступен и должен быть заменен на <windows.h>.

Когда я должен использовать тот или иной, и на каких платформах есть каждый из них (un)?

ответ

1

winmain.h не является стандартным заголовком Windows или MSVC. Код с использованием API Win32 должен включать windows header a.k.a. windows.h. См. Например, Using the Windows Headers.

+0

Возможно, это вещь MinGW? –

+0

@NateGlenn Я не знаю, и вы не указали, откуда пришел ваш '#include" winmain.h "'. Это может быть только локальный файл из любого проекта, который вы копируете/вставляете. Следует заметить, что '#include" winmain.h "' использует '' '' кавычки, которые указывают локальный/пользовательский файл, а '#include ' использует '<>' угловые скобки, которые указывают стандартный/системный заголовок , – dxiv

+0

Хорошо, спасибо. Везде, где я ищу в Интернете, я, кажется, вижу, что пользовательские локальные файлы winmain.h, так что это имеет смысл. Контекст - это [CRF ++] (https://github.com/taku910/crfpp/blob/master/crf_learn.cpp), который я не смог скомпилировать до тех пор, пока не включит winmain.h. –