Суббота, 16 Ноября 2024, 10:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
НохчиДата: Четверг, 21 Июня 2012, 19:51 | Сообщение # 441
заслуженный участник
Сейчас нет на сайте
А мне понравилось respect

Все работает кстати
Code

#define butif else if

int main()
{
  bool a = false;
  int b = 0;

  if(false)
  {
   b = 20;
  }
  butif(true)
  {
   b = 10;
  }

  printf("%d",b);
}


Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Четверг, 21 Июня 2012, 20:42 | Сообщение # 442
старожил
Сейчас нет на сайте
Quote (Saitei)
Привет всем, это снова я!
Создавая игру на движке GEGE (уже получается, мне помогает очень хороший человек, я смог перенести игру в "играбельній режим" для всех) я столкнулся с вопросом: "А КАК СДЕЛАТЬ ИКОНКУ?!"
Вопрос актуален. Даже скажу более того: "АКТУАЛЕН ЕЩЁ КАК!"
НохчиДата: Четверг, 21 Июня 2012, 20:49 | Сообщение # 443
заслуженный участник
Сейчас нет на сайте
Создай файл Res.rc, в нем напиши
Code

IDI_ICON1               ICON                    "Icon.ico"

Icon.ico - название твоей иконки. Добавь этот файл в проект, скомпилируй его отдельно, собери проект.


Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Четверг, 21 Июня 2012, 20:54 | Сообщение # 444
старожил
Сейчас нет на сайте
Quote (Нохчи)
отдельно, собери проект.

Немного не понял
НохчиДата: Четверг, 21 Июня 2012, 20:55 | Сообщение # 445
заслуженный участник
Сейчас нет на сайте
Quote (Saitei)
Немного не понял

Сосредоточься.


Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Четверг, 21 Июня 2012, 20:59 | Сообщение # 446
старожил
Сейчас нет на сайте
Quote (Нохчи)
Res.rc

возникают трудности... Как создать в проекте такой файл?

Добавлено (21.06.2012, 20:59)
---------------------------------------------
В принципе мог в блокноте написать и изменить формат. Но это плохой тон

НохчиДата: Четверг, 21 Июня 2012, 21:01 | Сообщение # 447
заслуженный участник
Сейчас нет на сайте
Quote (Saitei)
В принципе мог в блокноте написать и изменить формат.

Так и надо. Создай, добавь в проект, кликни на нем правой кнопкой(в обозревателе решений справа) и нажми "Компилировать. Дальше все как обычно.


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 21 Июня 2012, 21:02
SaiteiДата: Четверг, 21 Июня 2012, 21:05 | Сообщение # 448
старожил
Сейчас нет на сайте
Нохчи, Я явно дурак, ну знаю же. Долгодум.


Сообщение отредактировал Saitei - Четверг, 21 Июня 2012, 21:05
НохчиДата: Четверг, 21 Июня 2012, 21:07 | Сообщение # 449
заслуженный участник
Сейчас нет на сайте
Не надо пытаться его открывать(двойной щелчок), нажми ПРАВОЙ кнопкой, откроется контекстное меню, там будет пункт компилировать.

Многие вопросы по Windows отпадут, если посмотреть тут
SaiteiДата: Четверг, 21 Июня 2012, 21:08 | Сообщение # 450
старожил
Сейчас нет на сайте
Нохчи, во! До меня дошло))
Nuclear_SunДата: Суббота, 23 Июня 2012, 10:55 | Сообщение # 451
был не раз
Сейчас нет на сайте
Всем доброго времени суток! Как известно, " return 0; " рапортует об успешном выполнении программы.
Так в чем разница между:



и



???

Программе в принципе все равно какие данные ОС получила о ее завершении. Она до скобки последней дошла и завершилась. Может кто-нибудь мне раскрыть практический смысл return в программе?

Прошу прощения за столь глупый для любого знающего человека вопрос.


Сообщение отредактировал Nuclear_Sun - Суббота, 23 Июня 2012, 11:09
SnuuxДата: Суббота, 23 Июня 2012, 11:30 | Сообщение # 452
постоянный участник
Сейчас нет на сайте
Code
int main( void )

Как и любая функция "не типа void" должна возвращать значение.
Quote (Nuclear_Sun)
Программе в принципе все равно какие данные ОС получила о ее завершении.

Не все-равно. И вообще компилятор должен выдать ошибку или предупреждение при компиляции функции без возвращаемого значения (кроме опять-таки void).
Nuclear_SunДата: Суббота, 23 Июня 2012, 12:20 | Сообщение # 453
был не раз
Сейчас нет на сайте
Snuux, все работает как по маслу. Никаких предупреждений и ошибок.
Вот я тоже во всех книжках читаю что не все равно, а оказывается что все равно...


Сообщение отредактировал Nuclear_Sun - Суббота, 23 Июня 2012, 12:23
romgermanДата: Суббота, 23 Июня 2012, 12:23 | Сообщение # 454
старожил
Сейчас нет на сайте
Nuclear_Sun, когда-то хотел изучить плюсы. Там вроде должно быть 2 раза return 0;

Добавлено (23.06.2012, 12:23)
---------------------------------------------
Блин, ты уже сменил пост)

ArchidoДата: Суббота, 23 Июня 2012, 12:26 | Сообщение # 455
Сэнсэй
Сейчас нет на сайте
Nuclear_Sun
ОС и вправду все равно, что там ей вернет приложение, но это можно использовать при выполнении shell скриптов (.bat файлы), реализуя например ветвления в скрипте в зависимости от того, что вернуло приложение. В Win есть такая переменная %ERRORLEVEL%, которая и хранит это. Тут чуть подробнее.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
MaxaonДата: Суббота, 23 Июня 2012, 17:33 | Сообщение # 456
участник
Сейчас нет на сайте
Nuclear_Sun, есть такое правило: каждая функция должна возвращать свое значение, исключая ту функцию типом которого является void
Допустим есть такая функция:
Code
int do_swap(int &v1)
{
//...
return v1;
}

и такая
Code

void swap(int &v1, int &v2)
{
/*...*/
v1=v2*v1;
}

В первом случае функция do_swap должна возвратить тип int
А вот в функции типа void оператор return неявно размещается после последнего оператора
Как правило, функции типа void используют оператор return для преждевременного завершения программы

Есть очень важное исключение из данного правила-это фунция main. Она способна завершить выполнение ничего не возвращая. Если управление достигает конца функции main() и не встечает оператора return, она неявно возращает 0.
Возвращаемое функцией main() значение рассматривается как индикатор состояния: 0-успех, 1-фиаско)
PhantomДата: Суббота, 23 Июня 2012, 22:31 | Сообщение # 457
частый гость
Сейчас нет на сайте
Доброго времени суток!
Можете детально объяснить эту строчку кода?Я понимаю,что это главная функция программы и переменная,но не понимаю,что в скобках.
Quote
int main(int nNumberofArgs, char* pszArgs[])

Зарание спасибо. smile


Дайте мне точку опоры и я переверну весь мир!


SWFcreatorДата: Суббота, 23 Июня 2012, 23:07 | Сообщение # 458
участник
Сейчас нет на сайте
Phantom, вот,
тут подробно объяснено
nNumberofArgs обычно называют argc, а pszArgs - argv.
SaiteiДата: Воскресенье, 24 Июня 2012, 01:39 | Сообщение # 459
старожил
Сейчас нет на сайте
Quote (Нохчи)
IDI_ICON1               ICON                    "Icon.ico"


Сам ярлык в папке изменился, а вот при вызове игры - нифига. sad

Добавлено (24.06.2012, 01:39)
---------------------------------------------
ток тут вин32. int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)

DemeronДата: Воскресенье, 24 Июня 2012, 10:47 | Сообщение # 460
User created in C++
Сейчас нет на сайте
Quote (Saitei)
Сам ярлык в папке изменился, а вот при вызове игры - нифига.

После вызова engineInit:
Code
HWND hWnd=windowGetHWND();
HANDLE icon1 = LoadImage(GetModuleHandle(NULL), "c:\\icon.bmp", IMAGE_BITMAP, 32, 32, LR_LOADFROMFILE);//для BMP 32x32
HANDLE icon2 = LoadImage(GetModuleHandle(NULL), "c:\\icon.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);//для ICO 32х32

SendMessage(hWnd, WM_SETICON, ICON_BIG, icon1);    
SendMessage(hWnd, WM_SETICON, ICON_SMALL, icon1);


Сообщение отредактировал Demeron - Воскресенье, 24 Июня 2012, 10:52
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг