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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Выбор IDE для написания оконных программ на Си под Windows
Alt.F4
сообщение Oct 14 2012, 07:13
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Добрый день.
Никак не могу определиться с выбором IDE для написания оконных программ исключительно на Си под Windows.
Подскажите, пожалуйста, что выбрать для простой работы с формами?
Спасибо.
Go to the top of the page
 
+Quote Post
V_G
сообщение Oct 14 2012, 08:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Visual Studio.
А что значит "простая работа с формами"?
Простая работа в моем понимании - простой интерфейс. А для простого интерфейса даже форм не нужно, достаточно родных виндовых ресурсов (окон диалогов и редактирования, кнопок-переключателей всяких...) и MFC.
Go to the top of the page
 
+Quote Post
muravei
сообщение Oct 14 2012, 08:08
Сообщение #3


Гуру
******

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



Pelles C
Go to the top of the page
 
+Quote Post
Alt.F4
сообщение Oct 14 2012, 08:22
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Цитата
А что значит "простая работа с формами"?
Типа выпадающие списки, кнопочки всякие было просто добавлять.
Цитата
Pelles C
Попробую.
Go to the top of the page
 
+Quote Post
YAM
сообщение Oct 14 2012, 09:11
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Visual Studio никогда не славился "простой" работой с формами smile3046.gif
Я пользую C++ Builder 6 и не сильно парюсь при этом с ними sm.gif


--------------------
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 14 2012, 09:30
Сообщение #6


Гуру
******

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



Цитата(YAM @ Oct 14 2012, 13:11) *
Я пользую C++ Builder 6 и не сильно парюсь при этом с ними


А отчего 6-ой? С тех пор много новых Builder'ов вышло.
Go to the top of the page
 
+Quote Post
YAM
сообщение Oct 14 2012, 09:51
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Цитата(Xenia @ Oct 14 2012, 12:30) *
А отчего 6-ой? С тех пор много новых Builder'ов вышло.

А до этого был 5-й... Меня и он устаивал всем, как сейчас и 6-й...
Привык я к нему, как ко всему хорошему wub.gif


--------------------
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Oct 14 2012, 11:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(YAM @ Oct 14 2012, 12:51) *
А до этого был 5-й... Меня и он устаивал всем, как сейчас и 6-й...
Привык я к нему, как ко всему хорошему wub.gif

А зачем на 6-й перешли?
Сам сижу на 5-м, причин перехода вверх не вижу никаких.
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Oct 24 2012, 07:08
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Работаю на C++ Builder 6.
Тестировал C++ Builder 2007, тяжело моей машинке его тянуть.
Для тех задач, которые предомной стоят вполне хватает 6.
Просто и понятно.
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Oct 24 2012, 13:29
Сообщение #10


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

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



Хотела спросить, коль скоро:

1) Для Builder 6.0 или выше, есть примеры работы с базой SQL, насколько сложно?
2) Для Builder 6.0 есть пример работы с каким нибудь быстрым plot или chart компонентом и какой это комонент?
3) Есть для него же, компоненты LED, knobs, цифровых и LCD дисплеев, кроме известного IOcomp?
4) Насколько сложно исходный текст или проект Delphy переводить под Builder?
5) Подскажите хороший сайты по этим вопросам и обучению работы под Builder не перегруженный теорией?
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Oct 24 2012, 16:04
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Цитата(Alla_student @ Oct 24 2012, 16:29) *
Хотела спросить, коль скоро:

1) Для Builder 6.0 или выше, есть примеры работы с базой SQL, насколько сложно?
2) Для Builder 6.0 есть пример работы с каким нибудь быстрым plot или chart компонентом и какой это комонент?
3) Есть для него же, компоненты LED, knobs, цифровых и LCD дисплеев, кроме известного IOcomp?
4) Насколько сложно исходный текст или проект Delphy переводить под Builder?
5) Подскажите хороший сайты по этим вопросам и обучению работы под Builder не перегруженный теорией?

Есть очень много книжек по этой теме, например: Архангельский "Программирование на С++ Builder 6.0"
Кент Рейсдорф Borland C++ builder. Освой самостоятельно
Послед Б.С. Borland C++ Builder 6. Разработка приложений баз данных
И еще много...
Там есть все ответы на заданые вопросы
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 24 2012, 16:48
Сообщение #12


Гуру
******

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



Цитата(Alla_student @ Oct 24 2012, 17:29) *
1) Для Builder 6.0 или выше, есть примеры работы с базой SQL, насколько сложно?

На этот вопрос затрудняюсь ответить, но полагаю, что при общении с любой базой требуется, прежде всего, знать язык ее запросов. А Builder 6.0 тут скорее посторонний.

Цитата(Alla_student @ Oct 24 2012, 17:29) *
2) Для Builder 6.0 есть пример работы с каким нибудь быстрым plot или chart компонентом и какой это комонент?

Да, объект TChart от TeeChart. Но и он здесь тоже в каком-то смысле посторонний.

Цитата(Alla_student @ Oct 24 2012, 17:29) *
3) Есть для него же, компоненты LED, knobs, цифровых и LCD дисплеев, кроме известного IOcomp?

У TeeChart'а так много всяких возможностей, что их невозможно упомнить. Посмотрите программы-демонстраторы: Tee7New.exe и Tee8New.exe (на сайте компании http://www.steema.com/products/teechart/de...iled_demos.html ). Там и другая наглядная агитация есть.

Цитата(Alla_student @ Oct 24 2012, 17:29) *
4) Насколько сложно исходный текст или проект Delphy переводить под Builder?

Я бы сказала, что сложно. Это зависит, в первую очередь от того, насколько хорошо вы знаете оба языка С++ и Pascal.
Однако под Билдером можно и паскалевские программы компилировать (в отдельных файлах проекта).
Например, я где-то нашла исходники чтения/распаковки рисунков в формате TIFF (новые Билдеры умеют их читать, а 6-ой еще не умел). Глянула в те исходники и даже не захотелось с ними разбираться - очень уж сложно и запутанно написано. Тогда я их прямо так живьем и пришпандорила к сишному проекту. И они там в окружении C++ файлов отлично компилируются. Только хидеры мне к ним сишные пришлось написать, но это совсем не сложно.

Цитата(Alla_student @ Oct 24 2012, 17:29) *
5) Подскажите хороший сайты по этим вопросам и обучению работы под Builder не перегруженный теорией?

Архангельского читала. А скорее просто справлялась в нём в затруднительных случаях. А так, лучше готовые примеры разбирать, тем более что прямо оттуда можно кода надёргать.
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Oct 25 2012, 01:48
Сообщение #13


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

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



Цитата(Xenia @ Oct 24 2012, 20:48) *
...
Я бы сказала, что сложно. Это зависит, в первую очередь от того, насколько хорошо вы знаете оба языка С++ и Pascal.
Однако под Билдером можно и паскалевские программы компилировать (в отдельных файлах проекта).
Например, я где-то нашла исходники чтения/распаковки рисунков в формате TIFF (новые Билдеры умеют их читать, а 6-ой еще не умел). Глянула в те исходники и даже не захотелось с ними разбираться - очень уж сложно и запутанно написано. Тогда я их прямо так живьем и пришпандорила к сишному проекту. И они там в окружении C++ файлов отлично компилируются. Только хидеры мне к ним сишные пришлось написать, но это совсем не сложно.

Спасибо Ксения за ответ.
По хидерам - это чтобы переменные из паскалевской программы использовать в C билдера?!

По Rs232 забыла спросить, где пример и/или компонент хороший есть?

Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Oct 25 2012, 05:03
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Цитата(Alla_student @ Oct 25 2012, 04:48) *
По Rs232 забыла спросить, где пример и/или компонент хороший есть?

Я с этого начинал: http://www.piclist.ru/S-COM-THREAD-RUS/S-COM-THREAD-RUS.html
Доступно и понятно.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 25 2012, 10:35
Сообщение #15


Гуру
******

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



Цитата(Alla_student @ Oct 25 2012, 05:48) *
По хидерам - это чтобы переменные из паскалевской программы использовать в C билдера?!

Нет, это лишь для того, чтобы Сишная часть программы могла вызывать функции из паскалевской части программы.
Ведь после того, как каждая из частей откомпилируется своим компилятором, получатся достаточно обезличенные объектные модули (*.obj), которые скручивает в одну программу линкер. Потому и надо, чтобы вызовы из одного модуля соответствовали входу другого. Когда всё на одном языке пишешь, о таких вещах обычно не задумываешься, т.к. компилятор компилит все модули по одинаковым правилам. А когда модули разного типа, то это приходится учитывать. Кстати, точно такого же плана проблема вызывать из C++ функции, написанные на обычном C (который ++) или ассемблере. В последнем случае это тоже делается в хидере при объявлении функции. Например, вот так:
Код
extern "C" {
double sum_d(double *d, int length);
}

После такого объвления прототипа функции компилятор поймет, как к этой функции сделать правильное обращение.

Для паскалевского случая у Билдера тоже есть специальный квалификатор __pascal, который требуется лишь приписать спереди у функции, чтобы компилятор оформил к ней вызов по паскалевским правилам. Например:
Код
double __pascal sum_d(double *d, int length);

после этого она воспринимается как паскалевская, и обращение к ней будет соответствующее.

Кроме того, на языке C объявление прототипа функции обязательно, т.е. еще до своего вызова функция должна быть объявлена (за исключением лишь тех случаев, когда тело самой функции предшествует в тексте своему вызову). И это отнюдь на обременительное, а очень полезное средство избежать многих ошибок, связанных типом и порядком следования аргументов. А чтобы все модули программы имели единообразное представление о функциях, их прототипы выносятся в отдельный файл - хидер, который инклюдится в начало кода как тех модулей, которые функцией пользуются, так и того модуля, который содержит тело этой функции. Уж тогда-то единообразие гарантируется. К тому же хидер служит замечательной подсказкой про то, в каком порядке у вызываемой функции следуют аргументы.

Но когда программа двуязычна, то единый хидер обычно всюду не подсунешь, и тут приходится брать на себя заботу о соответствии. Например, у меня с читалкой TIFF-картинок был более сложный случай. На Паскале объявление класса TTIFFBitMap было таким:
Код
TTIFFBitMap = class(TBitmap)
public
  constructor Create; override;
  destructor Destroy; override;
  <... много чего пропущено ...>
  procedure LoadFromTifFile(FileName:String);
end;

а для Сишной программы я написала вот такой пототип того же самого класса:
Код
class PASCALIMPLEMENTATION TTIFFBitMap : public Graphics::TBitmap
{
public:
  virtual TTIFFBitMap();
  virtual ~TTIFFBitMap();
  void __fastcall LoadFromTifFile(AnsiString FileName);
};

Сходство между ними очевидно. А мне была нужна от того класса функция LoadFromTifFile(...), которая читала картинки с диска и заполняла ими Bitmap. Чаще всего в межмодульном вызове участвует лишь небольшое число функций, им-то и заводим хидеры на Сишный лад (у Паскаля тоже есть свои хидеры *.hpp, которые для С не годятся). Как видите, со стороны С я объявила класс TTIFFBitMap урезанным, опустив объявление тех его функций, которыми сишная часть программы не пользуется. А паскалевская сторона не может этим самоуправством возмутиться sm.gif, т.к. Сишного хидера не видит.

Цитата(Alla_student @ Oct 25 2012, 05:48) *
По Rs232 забыла спросить, где пример и/или компонент хороший есть?

В этом аспекте я целиком солидарна с выше опубликованным мнением kolisnichenko_r - не нужно в случае RS232 пользоваться классами, а следует использовать базовые функции Windows API. Тем более что COM-порт (он же RS232) выглядит в системе, как файловый девайс. Т.е. из него читают и пишут в него точно теми же самыми средствами, кто и с открытым файлом на диске. Некоторую проблему составляет задание скорости обмена и шевеление контрольными линиями, но при работе с классом эта задача не станет проще - все равно придется разбираться с управлением наряду с тем, чтобы еще понять, как этот класс работает sm.gif. Так уж здесь лучше без всяких классов. По крайней мере поймете, что Windows может сделать со своим портом, а чего не может, вместо того, чтобы надеяться на всемогущество класса, написанного неизвестно кем.

К тому же как на этом форуме, так и на других, ему подобных, работа с СОМ-портом через Windows API обсасывалась несчетное число раз. И что радует, такая реализация выглядит почти единообразно не всех языках.
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 Текстовая версия Сейчас: 27th June 2025 - 04:36
Рейтинг@Mail.ru


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