Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: С++ или нет?
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Страницы: 1, 2, 3, 4
Guevara-chan
Цитата
Питона я написал за ночь. Правда, немного не так симпатично выглядящего.

А посмотреть мона smile.gif ?
Darth_Beleg
А стоит? wink.gif
http://spellbuild.h12.ru/download/python.rar
Guevara-chan
Цитата(Darth_Beleg @ 22 Aug 2006, 17:06)

"Приложению не удалось запуститься, поскольку d3dx8d.DLL не был найден"

P.S. Кстати, надо будет потом кой-какие алгоритмы у себя поправить, а то там не все оптимально реализовано...
Darth_Beleg
Тут нужна Debug-версия DX8+. Если линковать обычную, то размер увеличивается в 10 раз. Пока не придумал, как с этим справиться sad.gif
PB-версия использует DX7, а это немного другое дело.
Guevara-chan
Цитата
PB-версия использует DX7, а это немного другое дело.

А ты тоже под 7ой пиши.
Darth_Beleg
Это надо MSDN читать и DX7 SDK искать. Мне сейчас лень да и пыль веков неохота ворошить. Я лучше Мегамейз буду писать - там вся библиотека уже написана.
Guevara-chan
А мне вот лень искать Debug-версию DX8 smile.gif
Darth_Beleg
Я перекомпилировал и перезалил проект. Вся проблема в том, что библиотека d3dx?.lib линкуется только статически, а без нее текст не выведешь sad.gif. Динамическая линковка добавилась в 2005 году, но выкачивать очередной SDK в 200 Mb мне пока не на что.
Guevara-chan
"Ошибка передачи данных: Connection refused"
Bourn
Цитата(Darth_Beleg @ 22 Aug 2006, 19:55)
Это надо MSDN читать и DX7 SDK искать.

Хош пришлю DX7 SDK
Guevara-chan
"Python.EXE - обнаружена ошибка. Приложение будет закрыто"
Darth_Beleg
Неудивительно. Я его плохо написал, по-олимпиадному -- без обработки ошибок. Править не буду, не стоит оно того.
sergroj
Хрона, посмотрел змею. Напомнила QBasic. Очень походит на досовскую игрушку. И проблемы те же - отсутствие таймера, постоянная перерисовка - на старом компе очень заметно.

Мой гад ползучий
На Дельфи. Писал 2 часа. ohmy.gif Рассчитывал на 1. Никакой оптимизации по объему нету. Небольшое мерцание тоже есть - экономил время, поэтому перерисовывается все поле.

Есть немало похожих элементов, хотя я написал до разглядывания твего кода.
Guevara-chan
Ну во-первых таймер там есть, не надо. Просто реализован кривовато... Ну, лень мне было голову ломать smile.gif . Старая машиная ? PII 350Mhz достаточно старая машина ? А разработка шла, ориентируяс имеенон на него. Насчет постоянной перерисовки: в целом, она не обязательна, конечно... Но мне говорили, что так следует, вот я и...

Цитата
Мой гад ползучий
На Дельфи. Писал 2 часа.  Рассчитывал на 1. Никакой оптимизации по объему нету. Небольшое мерцание тоже есть - экономил время, поэтому перерисовывается все поле.

1) Я не люблю оконный режим, т.к. DX в нем сильно тормозит. У тебя разницы нет, т.к. ты через GDI все делаешь. Тоже вариант, но я считаю это извращением. Кстати ! Надо заранее приготовленные Image'ы всталять, а не рисовать каждый раз квадратики\кружочки - FPS повышает.
2) А вот посмотри, сколько у тебя ПОЛЕЗНОГО кода в исходнике, и сколько мусора ? И на размер .EXE глянь.
Bourn
Размер ты сильно не уменьшишь он всегда такой у борланда, он подключает все что надо и не надо...
Guevara-chan
Цитата(Bourn @ 29 Aug 2006, 11:33)
Размер ты сильно не уменьшишь он всегда такой у борланда, он подключает все что надо и не надо...

А вот в пурике всегда подключается только то, что используеться smile.gif .
gamecreator
Крист говорил, что где-то можно выкинуть всю фигню.
Guevara-chan
Цитата(gamecreator @ 29 Aug 2006, 12:45)
Крист говорил, что где-то можно выкинуть всю фигню.

А мне вот, этим и заморачиваться не надо.
sergroj
Цитата(Chrono Syndrome @ 29 Aug 2006, 14:09)
Старая машиная ? PII 350Mhz достаточно старая машина ? А разработка шла, ориентируяс имеенон на него.

Celeron 433.

Цитата(Chrono Syndrome @ 29 Aug 2006, 14:09)
Насчет постоянной перерисовки: в целом, она не обязательна, конечно... Но мне говорили, что так следует, вот я и...

Может иногда это и полезно. Твоя ошибка в Clear. Если его не вызывать, моргания не должно быть.

Цитата(Chrono Syndrome @ 29 Aug 2006, 14:09)
2) А вот посмотри, сколько у тебя ПОЛЕЗНОГО кода в исходнике, и сколько мусора ?

Все, что не сгенерировано автоматически. yes.gif

Цитата(Chrono Syndrome @ 29 Aug 2006, 14:09)
И на размер .EXE глянь.

А если бы я написал на C#, размер exe был бы меньше твоего. Правда, требовал бы .NET Framework размером в сотни МБ. А в Delphi гнаться за размером себе дороже - тут он проигрывает.

Цитата(Bourn @ 29 Aug 2006, 14:33)
Размер ты сильно не уменьшишь он всегда такой у борланда, он подключает все что надо и не надо...

Если писать на WinAPI, можно достичь размера в районе PB. К тому же есть KOL - промежуточный вариант. В принцыпе, компиллятор не пихает ничего лишнего, но есть очень много вещей, выкидывание которых потенциально может быть опасным.
Guevara-chan
Цитата
Может иногда это и полезно. Твоя ошибка в Clear. Если его не вызывать, моргания не должно быть.

А как иначе, если там идет обмен буферов ?
Darth_Beleg
Моргания не будет если проводить обновление экрана во время обратного хода луча развертки монитора. Правда как это должно выглядеть на ЖК я не знаю.
Guevara-chan
Цитата(Darth_Beleg @ 31 Aug 2006, 21:56)
Моргания не будет если проводить обновление экрана во время обратного хода луча развертки монитора. Правда как это должно выглядеть на ЖК я не знаю.

Да вроде стоит enable synchronization...
gamecreator
Цитата(Darth_Beleg @ 31 Aug 2006, 21:56)
Моргания не будет если проводить обновление экрана во время обратного хода луча развертки монитора. Правда как это должно выглядеть на ЖК я не знаю.

у мну нормально все и не моргает
Guevara-chan
Да в том-то и дело ! У меня тоже все в порядке !
gamecreator
К слову: на что влияет размер компилятора?
Darth_Beleg
Это загадка? На время его загрузки по сети.
gamecreator
Цитата(Darth_Beleg @ 01 Sep 2006, 17:06)
На время его загрузки по сети.

idontno.gif обьясни популярно
Guevara-chan
Цитата
К слову: на что влияет размер компилятора?

Зависит от языка.
shumar
Цитата(gamecreator @ 01 Sep 2006, 13:04)
К слову: на что влияет размер компилятора?

По-моему только на размер компилятора.
Guevara-chan
Цитата
По-моему только на размер компилятора.

Ну, не всегда все так просто. Допустим, что компилятор представляет собой саммодифицирующюся программу, которая создает .EXE путем сохранения своей измененной версии... Тогда его размер очень даже влияет на размер создаваеммых им программ.
Bourn
чаще всего это у программ установок
Guevara-chan
Цитата(Bourn @ 01 Sep 2006, 19:49)
чаще всего это у программ установок

Не только.
Bourn
я сказал чаще всего smile.gif
gamecreator
Хрона, давай свою версиюsmile.gif
Guevara-chan
Вот. Только она:
А) Нестандартная, немного.
Б) Неоптимизированная совсем. Сейчас чего-то неохота, может быть потом...
gamecreator
Цитата(Chrono Syndrome @ 02 Sep 2006, 19:49)
716.05кб

shok.gif
gamecreator
ты чето не то выложила.
Guevara-chan
Цитата(gamecreator @ 03 Sep 2006, 16:00)
ты чето не то выложила.

Да не, они опускаются... только медленнее smile.gif . А упор сделан на осколки... Ну, я же предупредила.
Рогатый Змий
Я первый раз запустил Borland c++ 3.1
И хочу просто чтобы программа вывела обычный текст на экран, но она дает ошибку unsure.gif
Взгляните на скрин пожалуйста
http://files00100.narod.ru/0111.GIF
gamecreator
ошибка 1: че были ошибки при установке? это случается когда копируешь инсталлятор больше одного раза. отсутствуют заглавные файлы.
ошибка 2: все из-за ошибки 1
ошибка 3: вообще-то перед именем функции указывают тип возвращаемого значения (void - ничего не возвращает)

Добавлено ([mergetime]1161013660[/mergetime]):
и еще замечание: версия 3.1 - это дос-среда
Bourn
с заглавными все ок, просто ботва чаще всего такая бывает, надо вручную прописать путь к папкам lib и Include или скинуть все файлы из последней в bin

P.S. угу дос, а это под 3.1 похоже...может 4? хотя может и виндос оболочка...
gamecreator
на билдер похоже
ZVS
Может я позновато, но внесу свои 2 цента в обсуждение C++ vs остальные языки.
Правильно было замечено, что каждый язык как правило ориентирован на определенные задачи (обычно и был разработан под них). С++ стоит немного особняком. Это полигон для технологий. Он совместим с C (а С - язык для написания ОС и низкоуровневых программ - те же Windows на 90% написаны на C) и реализует все основные постулаты ООП. Поэтому это, скажем так, универсальный инструмент, удобный тем, кто его ОЧЕНЬ хорошо знает.
Хотите программу на ООП - лучше выбирать более строгие языки (Java или тот же C#). Будет чуть медленнее, не везде работать (нужна JVM или Frame), но удобно и красиво. Хотите что-то быстрое и компактное - используйте Ассемблер (хотя современные компиляторы с C и C++ дают разницу в скорости с Ассемблером близкую к 0, а то и быстрее делают, т.к. компилятор в отличии от человека без проблем "держит в голове" как и для чего он регистры использует).
Лично я могу написать на С++ любую программу. Повторюсь, что в конкретных ситуациях другой язык может быть лучше, но лучше знать один язык очень хорошо, чем много языков "по чуть-чуть". И как часто в большой программе с множеством классов хочется интерпретировать массивчик байтов как массивчик двойных слов, например. В С++ это 10 символов кода, а попробуйте в Java. Или в программе на C иногда хорошо бы иметь универсальный интерфейс - так нет же, только copy & paste. А в C++ это один виртуальный метод.
Всегда бывают элементы, которые неудобно делать в том или инов языке. Так вот в С++ таких элементов минимум. В это-то и его сила.
sergroj
Только достаточно много неудобств, громоздкостей, заплаток, идущих из прошлого, часто неинформативные/наведенные сообщения об ошибках; нет таких банальных вещей, как property, procedure of object, нельзя просто взять указатель на метод класса... Delphi мне больше нравится. Для обычных прикладных программ самое то.
gamecreator
пиши проги в дос и не ооп. тогда тебе не надо будет те вещи, что ты описал
ZVS
Цитата(sergroj @ 21 Nov 2006, 10:16)
Только достаточно много неудобств, громоздкостей, заплаток, идущих из прошлого,

Это ты о чем?

Цитата
часто неинформативные/наведенные сообщения об ошибках;

Не знаю - мне как-то все всегда было понятно. А вот какой-нибудь "Run time error 123456" в VB- конечно очень информативен.

Цитата
нет таких банальных вещей, как property,

Обычный метод. Есть даже идеология Get/Set. Ничего лучше чем собственный контроль того, что происходит - не знаю.

Цитата
procedure of object,

Если Object - объект класса, то не вижу проблемы. Если это какой-нибудь контрол Виндов, то какое это отношение к языку-то имеет?

Цитата
нельзя просто взять указатель на метод класса...

Приведи пример где это "нельзя".

Цитата
Delphi мне больше нравится. Для обычных прикладных программ самое то.

Какждый выбирает то, что ему кажется лучшим. Дело вкуса. Я уже писал, что в C++ я, например, знаю в какую ассемблерную последовательность комманд превратиться любая конструкция в C++. А вот Дельфи - это для меня кошмар. Мы месяц "состыковывали" в WoG внешнюю DLL (Билдер - читай Дельфи) с C++. Там все стандартные хэндлы черех ж... получаются.
sergroj
Цитата(ZVS @ 22 Nov 2006, 19:09)
Цитата(sergroj @ 21 Nov 2006, 10:16)
Только достаточно много неудобств, громоздкостей, заплаток, идущих из прошлого,

Это ты о чем?

Ну, о том, что .h может 2 раза прилинковаться и др. мелочи, сильно портящим первое впечатление о языке. Если привыкнуть, наверное, они не будут мешать.

Цитата(ZVS @ 22 Nov 2006, 19:09)
Цитата
procedure of object,

Если Object - объект класса, то не вижу проблемы. Если это какой-нибудь контрол Виндов, то какое это отношение к языку-то имеет?

В Delphi есть такая полезная штука. Это 2 указателя - на метод и на объект класса. Используется примерно так:
У TObj1 есть procedure TObj1.Proc1(param:int);
var aa:procedure(param:integer) of object;
aa:=Obj1.Proc1;
Т.е. как callback функция, только для объектов. Заместо всяких Event listener'ов, Signal-Slot'ов и т.п. такое средство языка.

Цитата(ZVS @ 22 Nov 2006, 19:09)
Цитата
нельзя просто взять указатель на метод класса...

Приведи пример где это "нельзя".

нельзя написать (void*)(&MyObject.MyMethod), хотя, если описать тип с сигнатурой этого метода, возможно, выйдет.

Цитата(ZVS @ 22 Nov 2006, 19:09)
Какждый выбирает то, что ему кажется лучшим. Дело вкуса. Я уже писал, что в C++ я, например, знаю в какую ассемблерную последовательность комманд превратиться любая конструкция в C++. А вот Дельфи - это для меня кошмар. Мы месяц "состыковывали" в WoG внешнюю DLL (Билдер - читай Дельфи) с C++. Там все стандартные хэндлы черех ж... получаются.

Какие "все стандартные хэндлы"?
Bourn
Цитата(sergroj @ 22 Nov 2006, 21:19)
Ну, о том, что .h может 2 раза прилинковаться и др. мелочи, сильно портящим первое впечатление о языке. Если привыкнуть, наверное, они не будут мешать.


Вобще то в стандартные .h, проихводиться проверка через предирективы компилятора, при этом возможность линковать несколько одинаковых файлов, доказывает что С++ очень гибкмй язык, и в первую очередь зависит от мастерства и умения создателя.
Ennin
Цитата(sergroj @ 22 Nov 2006, 21:19)
Цитата(ZVS @ 22 Nov 2006, 19:09)
Какждый выбирает то, что ему кажется лучшим. Дело вкуса. Я уже писал, что в C++ я, например, знаю в какую ассемблерную последовательность комманд превратиться любая конструкция в C++. А вот Дельфи - это для меня кошмар. Мы месяц "состыковывали" в WoG внешнюю DLL (Билдер - читай Дельфи) с C++. Там все стандартные хэндлы черех ж... получаются.

Какие "все стандартные хэндлы"?

кто-кто, а ты-то сорсы zvslib1.dll посмотреть можешь. вот и смотри, какие
ZVS
Цитата(sergroj @ 22 Nov 2006, 21:19)
Ну, о том, что .h может 2 раза прилинковаться и др. мелочи, сильно портящим первое впечатление о языке. Если привыкнуть, наверное, они не будут мешать.

Первое - это то, что сказал Bourn. Но есть и второе. При грамотном построении проекта все h файлы будут инклудиться ровно 1 раз на компиляцию одного cpp. Я студентов и этому в частности учу. Нельзя это считать неудобством - это правила языка. В том же Дельфи тоже не что хочешь писать надо.

Цитата
В Delphi есть такая полезная штука. Это 2 указателя - на метод и на объект класса. Используется примерно так:
У TObj1 есть procedure TObj1.Proc1(param:int);
var aa:procedure(param:integer) of object;
aa:=Obj1.Proc1;
Т.е. как callback функция, только для объектов. Заместо всяких Event listener'ов, Signal-Slot'ов и т.п. такое средство языка.

Понятно. А чем C++ хуже? У методов класса так же можно взять адрес.
Пример:
class X{
public:
void f(void){}
};
void (X::*fp)(void); // вот указатель
fp=X::f; // вот адрес

X ox;
fp=ox.f; // а можно и так адрес взять

Вариантов не меньше.

Цитата
нельзя написать (void*)(&MyObject.MyMethod), хотя, если описать тип с сигнатурой этого метода, возможно, выйдет.

См. выше. И сигнатур не надо.

Цитата
Цитата(ZVS @ 22 Nov 2006, 19:09)
Какждый выбирает то, что ему кажется лучшим. Дело вкуса. Я уже писал, что в C++ я, например, знаю в какую ассемблерную последовательность комманд превратиться любая конструкция в C++. А вот Дельфи - это для меня кошмар. Мы месяц "состыковывали" в WoG внешнюю DLL (Билдер - читай Дельфи) с C++. Там все стандартные хэндлы черех ж... получаются.

Какие "все стандартные хэндлы"?

Например, мне нужно было поставить обработчик мышиных сообщений в теле WoG. Само окно - в DLL на Билдере. Так вот нормальная работа с установкой своего суб-солбэка по хэндлу окна ничего не дала вообще. Пришлось извращаться. Именно поэтому долго диалоги из DLL болтались модальными глобально, а не в контексте главного окна WoG.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.