реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Выбор IDE для написания оконных программ на Си под Windows
demiurg_spb
сообщение Oct 25 2012, 12:59
Сообщение #16


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Alt.F4 @ Oct 14 2012, 11:13) *
Никак не могу определиться с выбором IDE для написания оконных программ исключительно на Си под Windows.
Ну исключительно на Си думаю что это не рационально... А вот на С++ уже ближе к делу. Вам уже советовали продукты от MS и Borland. Я бы вам рекомендовал QtCreator.
Если вы только начинаете, то имеет смысл изучать что-то перспективное и актуальное. А подсаживается на древний Builder - это совсем не разумно.
Тут ИМХО 2 пути Студия с дот-нетом или Qt. Последний бесплатен и как следствие легален... Решать вам.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Snaky
сообщение Oct 25 2012, 20:41
Сообщение #17


Mute Beholder
***

Группа: Свой
Сообщений: 260
Регистрация: 4-04-07
Из: Третья планета от Солнца
Пользователь №: 26 754



Цитата(demiurg_spb @ Oct 25 2012, 23:59) *
А подсаживается на древний Builder - это совсем не разумно.

имхо от целей зависит. Если писать коммерческий софт для пользователей, то да. А если всякие отладочные утилиты для себя набрасывать - то обычно или делфи или билдера хватает чтобы быстро накидать кнопочек на форму и поиграться с железом.


--------------------
Common sense is not so common.
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Oct 25 2012, 20:48
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Цитата(Xenia @ Oct 25 2012, 14:35) *
...
а для Сишной программы я написала вот такой пототип того же самого класса:
Код
class PASCALIMPLEMENTATION TTIFFBitMap : public Graphics::TBitmap

PASCALIMPLEMENTATION - это чтобы проиcходила связь с кассом на паскале?
Очень доходчиво вы Ксения объяснили, cпасибо!

Сообщение отредактировал Alla_student - Oct 25 2012, 20:53
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 26 2012, 05:34
Сообщение #19


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Snaky @ Oct 26 2012, 00:41) *
имхо от целей зависит. Если писать коммерческий софт для пользователей, то да. А если всякие отладочные утилиты для себя набрасывать - то обычно или делфи или билдера хватает чтобы быстро накидать кнопочек на форму и поиграться с железом.
Цель - легальный софт. Вполне себе цель...
А дельфи отдельно - это хорошо, но не дикий замес (паскаль+си) в виде CB. ИМХО.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 26 2012, 12:53
Сообщение #20


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Alla_student @ Oct 26 2012, 00:48) *
PASCALIMPLEMENTATION - это чтобы проиcходила связь с кассом на паскале?

Да, чтобы С++ понимал, что в данном случае это класс паскалевского объекта.
Однако на самом деле Builder C++ не только сам написан на Паскале, но и его библиотека классов VCL (Visual Class Library) тоже написана на Паскале. Из-за этого практически все оконные классы (органы визуализации и управления в Windows) объявлены на в Сишных хедерах, как PASCALIMPLEMENTATION паскалевских класов, уже скопилированных и залитых в библиотеку.

От С программиста совершенно не требуется знать, что такое PASCALIMPLEMENTATION, т.к. в Сишных хидерах все это уже сделано. Но в моем случае это была паскалевская самоделка, а потому мне самой пришлось забраться в хидер и подсмотреть, как там С++ закомят со скомпилированным пасклевским кодом. Т.е. преамбулу я просто сдула оттуда, не разбираясь, что бы это значило. sm.gif

Цитата(demiurg_spb @ Oct 26 2012, 09:34) *
А дельфи отдельно - это хорошо, но не дикий замес (паскаль+си) в виде CB. ИМХО.

demiurg_spb во многом прав. Основа, написанная на Паскале, порой сильно затрудняет жизнь С-программистам. Например, от классов, построенных на паскалевской основе (та самая PASCALIMPLEMENTATION), не удается создать производные. Точнее говоря это сделать можно, но слишком уж через ухо.

Зато новичку там раздолье sm.gif - фактически имеем набор готовых кубиков, из которых буквально за минуты можно состряпать программу, по внешнему виду неотличимой от тех, над которыми профессионалы корпят месяцами. Но эта лафа длится покуда вас удовлетворяют стандартный набор и функции тех кубиков. Но так только захочешь такой кубик "распилить" или серьезно модифицировать, но вляпываешься в такую бяку, что PASCALIMPLEMENTATION - просто цветочки. sm.gif

Т.е. в определенном смысле это - ... ЛЕГО sm.gif. Собирать легко, а самому сделать новую фигурку, чтобы подходила по замку к остальным, или невозможно, или очень трудно.
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Oct 26 2012, 21:16
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(Xenia @ Oct 26 2012, 16:53) *
Зато новичку там раздолье sm.gif - фактически имеем набор готовых кубиков, из которых буквально за минуты можно состряпать программу, по внешнему виду неотличимой от тех, над которыми профессионалы корпят месяцами. Но эта лафа длится покуда....

Эта лафа длиться ровно столько -- сколько необходимо новичку чтобы привыкнуть к сладкой жизни и отучиться критически думать! ((
Как только ты начинаешь сталкиваться с суровыми реалиями жизни в виде экзотических требований заказчика (особенно это актуально для электроники) -- вот тут хана! после этого имеем синдром дельфиста!

Всё это печально и вот поэтому я рекомендую не советовать молодым умам садится на наркотик под названием Borland ибо он всё больше неактуален.

Сообщение отредактировал SyncLair - Oct 26 2012, 21:20


--------------------
Go to the top of the page
 
+Quote Post
goodwin
сообщение Oct 27 2012, 00:48
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267



Во бредятины понапИсали...
Go to the top of the page
 
+Quote Post
andron86
сообщение Oct 27 2012, 02:12
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Бред какой-то wink.gif Борланд ещё не умер???? Visual Studio C# или С++, кто лучше мелкософта знает систему....
Go to the top of the page
 
+Quote Post
Snaky
сообщение Oct 27 2012, 09:54
Сообщение #24


Mute Beholder
***

Группа: Свой
Сообщений: 260
Регистрация: 4-04-07
Из: Третья планета от Солнца
Пользователь №: 26 754



Цитата(goodwin @ Oct 27 2012, 11:48) *
Во бредятины понапИсали...

Что предложил бы Гудвин я догадываюсь.
Pelles C, не? ;>


--------------------
Common sense is not so common.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 27 2012, 14:21
Сообщение #25


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(SyncLair @ Oct 27 2012, 01:16) *
Эта лафа длиться ровно столько -- сколько необходимо новичку чтобы привыкнуть к сладкой жизни и отучиться критически думать! ((
Как только ты начинаешь сталкиваться с суровыми реалиями жизни в виде экзотических требований заказчика (особенно это актуально для электроники) -- вот тут хана! после этого имеем синдром дельфиста!
Всё это печально и вот поэтому я рекомендую не советовать молодым умам садится на наркотик под названием Borland ибо он всё больше неактуален.

Ваше мнение односторонне, а потому я его оспорю. sm.gif
Во-первых, умение критически мыслить как раз и тренируется в процессе использования стандартных/типичных средств. Например, "критические" высказывания относительно качества и устройства автомобиля от тех, кто сам ни разу не садился за руль, - ничего не стоят. Прежде чем изобретать новый велосипед, нужно сперва поездить на тех велосипедах, что имеются в продаже. Причем не навороченных, а самых обыкновенных. Короче говоря, критичность мысли приходит лишь в процессе использования того, что уже завоевало признание потребителей. Иначе легко впасть в другую вредную крайность - всякое дело начинать с нуля, "абортируя" опыт предшественников. Ведь суть тут состоит не в том, чтобы избавиться от очевидных недостатков, а чтобы не насажать новых. Тем более что большинство неурядиц типа того, что "нос вытащишь - хвост увязнет". Т.е. абсолютное большинство недостатков являются лишь следствием достигнутого компромисса между двумя негативными крайностями, тогда как потребитель самого компромисса не замечает, а обращает внимание лишь на заметные ему недостатки.

Конкретизирую. Бывает такая детская "одевалка" для девочек, сделанная как компьютерная программа. Выбираешь пресонаж-картинку - какую-нибудь няшку-анимашку. sm.gif И вот она появляется на экране в полный рост - или голенькая (в одних трусиках), или в школьной форме. А дальше задача ее обуть/одеть по своему вкусу. Открываешь меню "туфли" и там туфлей разных видимо-невидимо! И это только фасоны, а цвет отдельным пунктом меню и идет. Выбираешь туфли, выбираешь их цвет, - и тут в руке у персонажа появляется сумочка под цвет туфлей. От сумочки можно отказаться, но можно подобрать другой тип или цвет. Сумок там тоже видимо-невидимо. Тоже относится к блузкам (воротнички и рукавчики к ним идут по отдельным пунктам меню), бантикам, шапочкам, очкам, наушникам и прочим аксессуарам, включая даже самурайский меч. Потому я и отношу программирование к самым, что ни на есть, девчоночьим занятиям. sm.gif

Скажем, в Билдере (а точнее говоря, в графике TeeChart) есть объект Chart1, представляющий собой доску/окошко графика, в котором можно поместить несколько "шлейфов" (несколько графиков на одной и той же сетке координат). Первым из которых будет Series[0], а остальные дальше по возрастающим номерам. Стираем точки функцией Clear(), а добавляем функцией AddXY(x,y). Этого знания о графике вполне достаточно на первое время. Вот пример графика синусоиды, но вместо функции sin() вычислить/определить y можно любым другим способом:
Код
Chart1->Series[0]->Clear();        // стираем прежние точки на кривой
for( double x=0; x < 10; x+=0.01)  // ходим по шкале х с шагом 0.01 в интересующем нас интервале 0-10
{ double y = sin(x);   // вычисляем y для текущего x по формуле или функции
  Chart1->Series[0]->AddXY(x,y);   // добавляем новые точки к кривой
}

А вот две кривые (sin и cos) на одном графике:
Код
Chart1->Series[0]->Clear();  // стираем прежние точки на первой кривой
[code]Chart1->Series[1]->Clear();  // стираем прежние точки на второй кривой
for( double x=0; x < 10; x+=0.01)  // ходим по шкале х с шагом 0.01 в интересующем нас интервале
{ double y1 = sin(x);   // вычисляем y1 для текущего x по формуле или функции
  Chart1->Series[0]->AddXY(x,y1);  // добавляем точки к первой кривой
  double y2 = cos(x);   // вычисляем y2 для текущего x по формуле или функции
  Chart1->Series[1]->AddXY(x,y2);  // добавляем точки ко второй  кривой
}

И это всё! А дальше как анимашку одеваем sm.gif - шмякаем мышой по графику, открывается меню, а там куча-мала всевозможных раскрасок. Тут и линией можно те точки соединяться и виде пузатых шариков их отображать, с тенями всех сортов, надписями по осями т.п. Но если туда не лезть, то будет типа школьной формы, без выкрутас и наворотов. И даже оси само нарисует и под размер окошка отмасштабирует. Не нравится что-то - открой меню и выбери другой из множества заранее заготовленных вариантов. А если стало совсем уж невтерпеж узнать, как это все это внутри программирутся, то можно заглянуть в dfm-файл, где это выглядит примерно так:
Код
object Персонаж: Няшка1
   Туфли = 37622
end

Вы наизусть помните, как выглядит 37622-ой вариант туфель? Я нет, и помнить этого не хочу! А если всё это не нравится, то вот тебе, привереда, в руки точкодолбильник с линию чертилкой и рисуй тогда сам. sm.gif

Построение 3D-графиков ничуть не труднее двухмерных - разница только в том, что вместо функции AddXY(x,y) координаты точек задают функцией AddXYZ(x,y,z). Тогда на одну строчку больше получается, т.к. внутри цикла x крутят еще цикл y, а значение z рассчитывают на их основе.

- это из рекламы TeeChart

- а это из квантово-механической программы расчета картины интерференции электронов.

Напрасно, рассматривая детские рисунки, взрослые восторгаются специфическим "детским восприятием мира", а на самом же деле дети просто ... не умеют рисовать! sm.gif А если бы они умели выражать в рисунке свое восприятие, то это были бы не дети, а профессиональные художники.

Билдер не наркотик, а промежуточная по сложности ступень программистского мастерства. Не ступенька виновата, что на нее кто-то "подсаживается", навсегда на ней замирая. Такой человек просто выдохся. Вот при штурме горных вершин тоже устанавливают где-то посредине маршрута восхождения промежуточный лагерь. Кто-то добирается до этого лагеря, акклиматизируется там и восходит дальше, а кто-то этого совершить неспособен. И наивно полагать, что если тот лагерь снести, то все альпинисты "подсадятся" исключительно на 7-митысячники. Скорее, наоборот, без промежуточного лагеря, до 7-тысячних вершин дойдет гораздо меньше альпинистов, нежели при существовании промежуточного лагеря. Так и здесь. Нежели не дюж подниматься выше, то не сетуй, что промежуточный лагерь тебе в этом помешал.

В определенном смысле дисциплина программирования в своем прежнем качестве умирает, если еще не умерла. Т.е. все больше определяет не знание языка, а умение/эрудиция в пользовании чужими заготовками. Т.е. ситуация тут точь-в-точь как с раскраской готовых фигурок на свой вкус. И не надо в том винить программистов – время сейчас такое. Ведь и в электронике точно такая ситуация, хотя мало кто этим возмущается: электроника стремительно превращается в схемотехнику. Даже есть ходящее выражение "даташиты курить". sm.gif А означает это, что разработчик изучает спецификации на очередную сборку, которую выбросили на рынок. И эти спецификации есть прямая калька со списка тех туфлей, которые можно напялить на няшку-анимашку. sm.gif И все эти сборки (микросхемы) есть ни что иное, как готовые объекты, которые соединяют с друг с другом согласно спецификации. Вот вам и прототип ЛЕГО в новом качестве. А спроси нынешнего "электронщика" – как работает транзистор в схеме с заземленной базой? – каждый второй выпадет в осадок. sm.gif Забывать стали люди, как транзисторы работают, зато в курсе того, какие новые микросхемы на рынке появились и сколько они там стоят.

Цитата(andron86 @ Oct 27 2012, 06:12) *
Бред какой-то wink.gif Борланд ещё не умер???? Visual Studio C# или С++, кто лучше мелкософта знает систему....

Борланд умер, но дело его живёт! sm.gif Суть не в том, "кто лучше знает систему", т.к. речь идет о прикладном программировании, а не системном. TeeChart замечательно строит графики, как и Adobe PhotoShop обрабатывает картинки, но не потому, что они "хорошо знают систему", а только потому, что достигли совершенства на том поприще, на котором позиционируют свое ПО.

По моим наблюдениям гораздо большее число людей, не добравшись до вершины, сошли с трасы, но не потому, что подсели на примитив, а потому, что испугались сложности управления более сложными инструментами или не сумели самостоятельно их освоить. Именно поэтому детям покупают игрушечные конструкторы (типа того же ЛЕГО), а не фрезерный станок. sm.gif Инструмент, по числу рукояток превосходящий оные в кабине самолета или космического корабля, приводит к противоположной беде - вместо того, чтобы думать о решении своей задачи, пользователь мандражирует на тему "все ли рукоятки я правильно нажал?".
Go to the top of the page
 
+Quote Post
Hmm
сообщение Oct 27 2012, 17:50
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 329
Регистрация: 22-06-04
Пользователь №: 124



Топикстартер инициировал холивар, не раскрыв главного - цели. Как "академическому" программисту нужно одно, как инженеру другое, исследователю в определенной области знаний третье и т.д. Бесплатных инструментов достаточно - теже MS (NET WinForm) и Borland (серия Turbo).


--------------------
Талант не пропить ...
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 27 2012, 18:47
Сообщение #27


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Hmm @ Oct 27 2012, 21:50) *
Топикстартер инициировал холивар, не раскрыв главного - цели. Как "академическому" программисту нужно одно, как инженеру другое, исследователю в определенной области знаний третье и т.д.


Тут скорее не цель, а личные склонности. Кто-то способен строить пирамиду, складывая ее из песка по крупинке, чтобы сразу получить монолит. А у кого-то на это не хватает ни терпения, ни мотивации. И для последних предпочительнее построить ту пирамиду хоть из бумаги/картона, лишь бы стояла! sm.gif А уж только потом заняться ее упрочением.

Лично я, вообще-то, из первых - люблю чтобы хоть малая часть, но до идеала вылизана была. Однако большинство предпочитает подход с другого края - получить поскорее хоть какой-нибудь результат, и лишь после этого его совершенствовать.

Поэтому программирование в виде сборки на скорую руку из готовых "ширпотребных" заготовок имеет огромную армию своих почитателей. И действительно, чтобы переночевать в лесу, можно наспех построить шалаш, в не рыть фундамент под строительство нового дома. sm.gif Вот и курсовые/дипломные работы, где сроки выполнения важны прежде всего, сборка из готовых кубиков много предпочтительнее "основательного" программирования, особенно, если собственного опыта в данной области не слишком много.

В конце концов, едят же многие люди в Макдональсе, тогда как есть рестораны? Вот и Билдер от Борланда и есть вот такой Макдональдс. sm.gif А холивара никакого тут нет, т.к. Макдональдс ресторанам себя не противопоставляет, а имеет круг своих собственных почитателей. Особенно среди детства и юношества. sm.gif
Go to the top of the page
 
+Quote Post
bookd
сообщение Oct 27 2012, 19:08
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 4-02-09
Из: Поволжье
Пользователь №: 44 403



Поддержу Sinclair, программирование "из кубиков" очень быстро превращает нормального спеца в полупрограммиста. Дальше идет бла бла блаЮ которое я удалил, затем опять соглашусь с Sinclair это печально.


--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Oct 30 2012, 06:03
Сообщение #29


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Xenia, респект за столь впечатляющий оффтопик. В программировании "из кубиков" нет ничего страшного. Каждый программист должен уметь найти подходящий "кубик" для своей задачи (и написать недостающие). Однако, именно Билдер имеет несколько печальных особенностей, которые делают его непригодным для обучения.
По пунктам:
1. Ужасное IDE, со слетающими настройками, расползающимся indentation, провоцирующее на программирование мышью.
2. Тормозной компилятор. Сколько в интернете есть ускорятелей билдера и всё равно, мало-мальский проект компилируется по 10 минут. В итоге у программиста нервный срыв и психушка. sm.gif
3. Самое главное: билдер провоцирует писать код одним куском, используя идеологию "код-за-формой". В итоге, программа получается не модульной, а намертво спаянной с GUI.

С другой стороны, если топикстартеру нужно быстро сделать программку с GUI без .NET фреймворка на C++, то лучше билдера ничего не придумаешь. Если нужно качественно и кроссплатформенно, то QT + Visual Studio (или любой текстовый редактор). Если нужно с MFC (препод заставляет), то Visual Studio.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 30 2012, 06:24
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(andrewlekar @ Oct 30 2012, 08:03) *
2. Тормозной компилятор. Сколько в интернете есть ускорятелей билдера и всё равно, мало-мальский проект компилируется по 10 минут.

Что у вас за прожекты такие, что 10 минут компилируются?
Ни разу такого не видел... максимум ИАР какой-нибудь полминуты комилирует...
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 03:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.03231 секунд с 7
ELECTRONIX ©2004-2016