В 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
Вам не хватает некоторых #define
s, которые всегда определяют другие компиляторы (например, Visual Studio). Они предоставляют важную информацию об архитектуре процессора, версии ОС, версии SDK и т. Д.
Вероятно, лучше посмотреть документацию Microsoft о том, какие макросы определяет их компилятор, и сделать то же самое.
Эта страница может быть хорошей отправной точкой.
- Инициализируйте вашу программу, используя
int main(void)
и неvoid main(void)
- Вы пропускаете ваше возвращение заявления
return(0);
как раз перед вашей последней скобкой. Вы должны включить это, иначе вы получите синтаксическую ошибку, потому что ваша программа не знает, когда прекратить работу.
Затем сделайте следующее
- В выпадающем меню выберите
Project
затем прокрутите вниз и выберите `Параметры проекта. - Выберите
Compiler
и убедитесь, чтоCalling conv:
коробка имеет_cdecl
выбран. - Нажми на
linker
и убедитесь, что вsubsystem
поле типа установленоConsole
,
Попробуйте построить его снова и посмотрите, что получится!