В pelles c windows.h не компилируется

Я использую гранулы c. когда я компилирую этот код:

#include <windows.h>
#include <stdio.h>

void main(void)
{
   printf("Hello World");
}

Я получаю эту ошибку:

D:\Program Files\PellesC\Include\Win\basetsd.h(53): error #2001: Syntax error: expected ';' but found 'INT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(53): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2120: Redeclaration of '__int64', previously declared at D:\Program Files\PellesC\Include\Win\basetsd.h(53); expected 'int' but found 'unsigned int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2001: Syntax error: expected ';' but found 'UINT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\winnt.h(558): fatal error #1014: #error: "No target architecture".

Спасибо за вашу помощь.

3 ответа

Решение

Для того, чтобы использовать windows.h в PellesC Вы должны пойти в:

  • Проект -> Параметры проекта -> Компилятор
  • Проверьте: Включить расширения Microsoft

Вам не хватает некоторых #defines, которые всегда определяют другие компиляторы (например, Visual Studio). Они предоставляют важную информацию об архитектуре процессора, версии ОС, версии SDK и т. Д.

Вероятно, лучше посмотреть документацию Microsoft о том, какие макросы определяет их компилятор, и сделать то же самое.

Эта страница может быть хорошей отправной точкой.

  1. Инициализируйте вашу программу, используя int main(void) и не void main(void)
  2. Вы пропускаете ваше возвращение заявления return(0); как раз перед вашей последней скобкой. Вы должны включить это, иначе вы получите синтаксическую ошибку, потому что ваша программа не знает, когда прекратить работу.

Затем сделайте следующее

  1. В выпадающем меню выберите Project затем прокрутите вниз и выберите `Параметры проекта.
  2. Выберите Compiler и убедитесь, что Calling conv: коробка имеет _cdecl выбран.
  3. Нажми на linker и убедитесь, что в subsystem поле типа установлено Console,

Попробуйте построить его снова и посмотрите, что получится!

Другие вопросы по тегам