Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Pelles C, как его юзать? 
:(
    Опции темы
Smaug
Дата 1.8.2006, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 18.3.2006
Где: Баку-Москва

Репутация: нет
Всего: 4



Поставил себе Пеллес (рекоммендовали его сильно,в том числе и на этом форуме) но не могу взять в толк как использовать smile
вот к примеру
создаю сорс файл hi

Код

#include <stdio.h>

int main(void)

{

    printf("Privet,Dasha!");
         return 0;
}




а он не компилируется 
говорит

Цитата
 C:\Program Files\PellesC\Projects\hi.c(5): warning #2203: Function 'main' can't be __stdcall, changed to __cdecl.



я пока решаю весьма и весьма примитивные задачи на Си, так что никаких прожектов мне создавать не нужно, а не работает и всё тут smile



PM MAIL WWW ICQ   Вверх
S.A.G.
Дата 1.8.2006, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

Репутация: нет
Всего: 19



Создаешь проект, заходишь в Project - Project Options..., вкладка Compiler и ставишь флажок напротив "Enable Microsoft Extensions". Что оно означает? - Незнаю но при этом оно работает.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
586
Дата 1.8.2006, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



int __cdecl main(void)
PM   Вверх
Smaug
Дата 1.8.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 18.3.2006
Где: Баку-Москва

Репутация: нет
Всего: 4



Цитата
Создаешь проект, заходишь в Project - Project Options..., вкладка Compiler и ставишь флажок напротив "Enable Microsoft Extensions". Что оно означает? - Незнаю но при этом оно работает.



у меня стоит сей значок и ничего не работает smile
к тому же всетаки хотелось бы знать что сие означает smile

Цитата

int __cdecl main(void)



а почему?
другого ,более нормального пути нет?
PM MAIL WWW ICQ   Вверх
586
Дата 1.8.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(Smaug @  1.8.2006,  13:20 Найти цитируемый пост)
Цитата
int __cdecl main(void)

На сколько я знаю, функция main вызывается по соглашению __cdecl, а не __stdcall.

Цитата(Smaug @  1.8.2006,  13:20 Найти цитируемый пост)
другого ,более нормального пути нет? 

Так трудно одно слово написать?
PM   Вверх
rsm
Дата 1.8.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 2
Всего: 62



Smaug, предлагаю на выбор три варианта создания нового проекта:

Вариант №1
  • закрываешь окно с редактором кода;
  • в главном меню: "File" -> "New project";
  • выделяешь "Console application wizard", вводишь название проекта;
  • выбираешь "A simple program", жмешь "Next";
  • жмешь "Finish";
Вариант №2
  • закрываешь окно с редактором кода;
  • в главном меню: "File"- > "New project";
  • выделяешь "Win32 Console Program", вводишь название проекта;
  • в главном меню: "Project" -> "Add files to project";
Вариант №3
  • окно с редактором кода открытым;
  • в главном меню: "File" -> "Save all";
  • в главном меню: "Project" -> "Build XXX";
  • выделяешь "Win32 Console Program";
Выбирай любой какой больше нравится, все они приводят к одному результату - созданию нового проекта консольной программы, которая компилируется без каких-либо возмущений со стороны компилятора или линкера.

Цитата(Smaug @  1.8.2006,  14:20 Найти цитируемый пост)
всетаки хотелось бы знать что сие означает

Это означает разрешение на использование расширений стандартного С, сделанных в Microsoft. Полный список изменений в настройках проекта, которые происходят при добавлении этого ключа, можно посмотреть в справке (раздел "Command line tools", подраздел "POCC compiler", ссылка "Command line options", ссылка "/Ze").
Если в двух словах: использование этого ключа дает возможность вызывать из консольной программы функции WinAPI, а так же определяет некоторые типы данных (__int64 например). Подключив хидер "windows.h" без этого ключа, получишь при компиляции кучу ошибок и ничего более.

Цитата(Smaug @  1.8.2006,  14:20 Найти цитируемый пост)
а почему? другого ,более нормального пути нет?

В написанных с использованием CRT (C Runtime Library, "С'шная библиотека времени исполнения") программах все функции CRT, в том числе и функция main, должны быть объявлены как __cdecl. Свои функции можно объявлять как угодно.

P.S. Варианты создания проекта указаны для Pelles C for Windows версии 4.00.50.
PM MAIL   Вверх
Pilligrim
Дата 1.8.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 9.6.2006

Репутация: 1
Всего: 1



__cdecl - это стандартный вызов функций в С и C++ программах(типа обычный), а __stdcall - используется для вызова Win32 API функций. А подробней надо спрашивать у вашего компилятора. Например некотрые компиляторы эти ключевые слова расставляют сами(писать не надо). Они просто определяют тип вашего приложения и всё. 

Цитата
другого ,более нормального пути нет?


Похоже для тебя,Smaug, нет. Меняй среду разработки. VC++ - forever! smile 
PM MAIL   Вверх
Smaug
Дата 1.8.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 18.3.2006
Где: Баку-Москва

Репутация: нет
Всего: 4



Товарищи,спасибо огромное! smile
А я все время жал на Win32 program cо всеми вытекающими отсюда последствиями.

пс

к сожалению пока не могу влиять на репутацию (надо еще 91 раз влезть на форум с глупыми вопросами) smile

Это сообщение отредактировал(а) Smaug - 1.8.2006, 20:05
PM MAIL WWW ICQ   Вверх
rsm
Дата 1.8.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 2
Всего: 62



Цитата(Pilligrim @  1.8.2006,  21:50 Найти цитируемый пост)
некотрые компиляторы эти ключевые слова расставляют сами (писать не надо)

Компилятор животное подневольное, самостоятельно ничего не делает. Он лишь использует для функций, которые не объявлены явно, заданное по-умолчанию для конкретного типа проекта объявление вызова. Поменять умолчательное значение можно в настройках ("Project" -> "Project options..."; "Compiler"; "Calling conv").

Цитата(Pilligrim @  1.8.2006,  21:50 Найти цитируемый пост)
Меняй среду разработки. VC++ - forever!

А оно надо, для обучения-то? Да и для работы Pelles C for Windows вполне подходит (тем паче, что лицензия позволяет писать коммерческий софт). Если нужен С++ - тогда конечно ой, тогда лучше VC++ (Express) и никаких вопросов.

Цитата(Smaug @  1.8.2006,  22:03 Найти цитируемый пост)
не могу влиять на репутацию

Если считаешь нужным, черкни в приват модератору раздела - он поставит "+" от твоего имени.
PM MAIL   Вверх
Pilligrim
Дата 1.8.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 9.6.2006

Репутация: 1
Всего: 1



Цитата
Компилятор животное подневольное, самостоятельно ничего не делает. Он лишь использует для функций, которые не объявлены явно, заданное по-умолчанию для конкретного типа проекта объявление вызова. Поменять умолчательное значение можно в настройках ("Project" -> "Project options..."; "Compiler"; "Calling conv").


Я про это,rsm, и говорил:
Цитата
Например некотрые компиляторы эти ключевые слова расставляют сами(писать не надо). Они просто определяют тип вашего приложения и всё. 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.