Форум программистов, компьютерный форум CyberForum.ru

Почему эклипсу не нравится синтаксис - C++

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 09:09     Почему эклипсу не нравится синтаксис #1
C++
1
2
3
4
5
6
#include <windows.h>
int WINAPI WinMain (HINSTANCE Instance, HINSTANCE Previus, LPSTR CommanLine, int Show)
{
 ...
 return 0;
}
Ругается на первую ситроку и синтаксис второй. Почему и как с этим бороться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 09:09     Почему эклипсу не нравится синтаксис
Посмотрите здесь:

C++ Синтаксис
C++ Непонятный синтаксис
Синтаксис C++
C++ Синтаксис языка с++
C++ Почему создатели языка C++ придумали такой странный синтаксис обращения к элементам одномерного массива?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
06.03.2012, 09:10     Почему эклипсу не нравится синтаксис #2
Цитата Сообщение от taras atavin Посмотреть сообщение
#include <windows.h>
Попробуй
C++
1
#include <windows>
И посмотри какой компилятор используешь

Цитата Сообщение от taras atavin Посмотреть сообщение
WINAPI WinMain
Имя функции - одно слово, простой идентефикатор.
C++
1
WINAPI_WinMain
PS Ща эклип установлю, посмотрю
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 09:19  [ТС]     Почему эклипсу не нравится синтаксис #3
Цитата Сообщение от dimcoder Посмотреть сообщение
И посмотри какой компилятор используешь
Eclipce.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
06.03.2012, 09:20     Почему эклипсу не нравится синтаксис #4
Как эклипс? Я только такую IDE знаю. Я use mingW. Он хавает.
Компилер смотришь здесь:
file -> new -> c++ Project -> сними галочку show proj types...blablabla... -> справа будут компилеры (выбери mingW), вводишь имя, финиш

Цитата Сообщение от dimcoder Посмотреть сообщение
Имя функции - одно слово, простой идентефикатор.
Извиняюсь, необоснованно я это ляпнул.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 09:29  [ТС]     Почему эклипсу не нравится синтаксис #5
Цитата Сообщение от dimcoder Посмотреть сообщение
Имя функции - одно слово, простой идентефикатор.
WINAPI - не часть имени функции, а дополнительный идентификатор, влияющий на её вызов. В винде приняты сочетаения int WINAPI и LRESULT CALLBACK, причём, только для функций.

Добавлено через 2 минуты
Цитата Сообщение от dimcoder Посмотреть сообщение
Как эклипс? Я только такую IDE знаю.
Ну да, это IDE. Но разве она в релизе не объединяется с компилятором?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
06.03.2012, 10:22     Почему эклипсу не нравится синтаксис #6
Цитата Сообщение от taras atavin Посмотреть сообщение
Но разве она в релизе не объединяется с компилятором?
Не знаю с каким компилятором она объединяется по умолчанию (если знаете, назовите), но выбирать его можно, я уже говорил как.
Возможно там также нету изначально никаких библиотек (?хотя хз), может есть но их нужно добавлять. И вообще у вас может скомпилется такой простой код:
C++
1
2
int main()
{return 0;}
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 10:31  [ТС]     Почему эклипсу не нравится синтаксис #7
Цитата Сообщение от dimcoder Посмотреть сообщение
И вообще у вас может скомпилется такой простой код:
int main()
{return 0;}
Это то скомпилится, да прога должна быть виндузячей и даже не под виндузячей консолью, а графическая. Я не Чарл Педзолдт и не могу сваоими словами объяснить, почему WinMain должна быть __stdcall, из-за чего принято вместо __stdcall писать WINAPI и чем плоха просто main, но хорошо помню синтаксис из книги и то, что студия не принимает int main (), если заинкладен windows.h. Если подключена виндузячая голова, то или WinMain, или DllMain.
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
06.03.2012, 10:47     Почему эклипсу не нравится синтаксис #8
Цитата Сообщение от taras atavin Посмотреть сообщение
что студия не принимает int main (), если заинкладен windows.h. Если подключена виндузячая голова, то или WinMain, или DllMain.
это просто брехня уже
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 10:53  [ТС]     Почему эклипсу не нравится синтаксис #9
Цитата Сообщение от Luke Посмотреть сообщение
это просто брехня уже
Я врать не умею. Не веришь - сам попробуй и убедись: если заинкладен windows.h, но нет ни WinMain, ни DllMain, то студия ругается на отсутствие WinMain, а все мэйны сразу писать нельзя.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
06.03.2012, 11:23     Почему эклипсу не нравится синтаксис #10
taras atavin, назовите компилятор который сейчас использует eclipse, будь он компилятором по умолчанию или нет. MingW, как я уже сказал, все хавает, и я думаю если текущий компилятор сменить на него, все будет ОК.
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
06.03.2012, 11:29     Почему эклипсу не нравится синтаксис #11
taras atavin,

работает. это студия
C++
1
2
3
4
5
6
7
8
int main(int ard, char* args[])
{
 
    SE_OBJECT_TYPE sot;
    SECURITY_INFORMATION sec;
    ZeroMemory(&sot,sizeof(SE_OBJECT_TYPE));
    ZeroMemory(&sec,sizeof(SECURITY_INFORMATION));
    HANDLE ptok=0;
ты либо умеешь врать, либо что то еще
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2012, 11:36     Почему эклипсу не нравится синтаксис #12
Цитата Сообщение от taras atavin Посмотреть сообщение
если заинкладен windows.h, но нет ни WinMain, ни DllMain, то студия ругается на отсутствие WinMain
Это не правда. Зависит от настроек проекта. Например, от ключей компоновщика /SUBSYSTEM:CONSOLE или SUBSYSTEM:WINDOWS, соответственно, потребуется main или WinMain. А DLL вообще может быть без пользовательской DllMain. А еще есть проекты для создания статической библиотеки, в которой вообще нет так называемой главной функции. И в каждом из этих типов проектов мы имеем право использовать WinAPI.
Цитата Сообщение от taras atavin Посмотреть сообщение
... а все мэйны сразу писать нельзя.
А это правда.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 11:40  [ТС]     Почему эклипсу не нравится синтаксис #13
[quote=Luke;2764358]это студия
C++
1
2
3
4
5
6
7
int main(int ard, char* args[])
{
SE_OBJECT_TYPE sot;
SECURITY_INFORMATION sec;
ZeroMemory(&sot,sizeof(SE_OBJECT_TYPE));
ZeroMemory(&sec,sizeof(SECURITY_INFORMATION));
HANDLE ptok=0;
Работает, но без #include <windows.h>

Добавлено через 2 минуты
Цитата Сообщение от bigredcat Посмотреть сообщение
Например, от ключей компоновщика /SUBSYSTEM:CONSOLE или SUBSYSTEM:WINDOWS, соответственно, потребуется main или WinMain.
Опять таки, читай:
Цитата Сообщение от taras atavin Посмотреть сообщение
прога должна быть виндузячей и даже не под виндузячей консолью, а графическая.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2012, 11:46     Почему эклипсу не нравится синтаксис #14
А Eclipse CDT ставится без компилятора (только IDE). Но если путь к MinGW\bin прописан в %PATH% то Eclipse подхватывает его автоматически

Добавлено через 6 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
Опять таки, читай:
Сообщение от taras atavin
прога должна быть виндузячей и даже не под виндузячей консолью, а графическая.
Честно говоря, я не понимаю этого выражения и что вы этим хотели сказать.
Но использовать WinAPI и, соотвественно, подключать заголвок windows.h можно в любых типах приложений (консольных, DLL, статических библиотек) и Visual Studio это нормально воспринимает - это факт.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.03.2012, 11:58  [ТС]     Почему эклипсу не нравится синтаксис #15
Цитата Сообщение от bigredcat Посмотреть сообщение
Честно говоря, я не понимаю этого выражения и что вы этим хотели сказать.
Что не понятного? Ты вообще оконные проги видел? Это проект одной из них и именно под мелкософт windows. Я отлично знаю, что можно написать DllMain вместо WinMain, да вот беда конкретно это не библиотека. Попробуй в студии начать проект Windows application и не заинкладить туда windows.h. В этом случае принимается int main (), или int main(int Count, char **Parametrs) и получается консольная прога вместо оконной. Но мне нужна оконная.
Luke
37 / 37 / 1
Регистрация: 21.02.2012
Сообщений: 95
06.03.2012, 13:37     Почему эклипсу не нравится синтаксис #16
taras atavin, ты прикалываешься?

C++
1
2
#include <Windows.h>
#include <AclAPI.h>
+ консолька. все работает из студии. не надо вин длл мэйна. ты что то не так делаешь

Добавлено через 3 минуты
Цитата Сообщение от Luke Посмотреть сообщение
SE_OBJECT_TYPE sot;
* * * * SECURITY_INFORMATION sec;
* * * * ZeroMemory(&sot,sizeof(SE_OBJECT_TYPE));
* * * * ZeroMemory(&sec,sizeof(SECURITY_INFORMATION));
* * * * HANDLE ptok=0;
и это....перед тобой все виндузевые примочки и функция и типы. БЕЗ windows .h это вообще нигде работать не будет
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2012, 13:55     Почему эклипсу не нравится синтаксис #17
Господин taras atavin, вот конкретное ваше утверждение.
Цитата Сообщение от taras atavin Посмотреть сообщение
Не веришь - сам попробуй и убедись: если заинкладен windows.h, но нет ни WinMain, ни DllMain, то студия ругается на отсутствие WinMain, а все мэйны сразу писать нельзя.
Из вашего утверждения следует, что если подключаешь в проекте windows.h, то приложение должно использовать либо WinMain, либо DllMain. Иначе Visual Studio выдаст сообщение об ошибке.
Я вам конкретно на это утверждение ответил, что это не так. Что можно подключить заголовок windows.h в консольном приложении, где пользовательская точка входа main (а не WinMain или DllMain), и Visual Studio не будет ругаться.

Не по теме:

Но вы начали выяснять у меня, что я видел, объяснять, какими должны быть приложения. Типа, в огороде бузина, а в Киеве дядька

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2012, 06:50     Почему эклипсу не нравится синтаксис
Еще ссылки по теме:

Что-то компилятору не нравится. Ввод-вывод C++
C++ Новый синтаксис using в C++11
C++ синтаксис

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.03.2012, 06:50  [ТС]     Почему эклипсу не нравится синтаксис #18
Цитата Сообщение от dimcoder Посмотреть сообщение
Попробуй
C++
1
#include <windows>
Не помогло. Оказалось, что он голову не нашёл.

Добавлено через 2 минуты
Я всегда выбираю или dll, иои windows application. Если не инкладить, то принимается main и получается консольная прилада, иначе не принимается.

Добавлено через 14 минут
Цитата Сообщение от dimcoder Посмотреть сообщение
назовите компилятор который сейчас использует eclipse, будь он компилятором по умолчанию или нет. MingW,
MinGW GCC. Ничего более похожего на MingW в списке нет.
Yandex
Объявления
07.03.2012, 06:50     Почему эклипсу не нравится синтаксис
Ответ Создать тему
Опции темы

Текущее время: 15:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru