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

 
 
> Выбор 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
 
Start new topic
Ответов
kolisnichenko_r
сообщение Oct 24 2012, 07:08
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #3


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

Группа: Участник
Сообщений: 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
Xenia
сообщение Oct 24 2012, 16:48
Сообщение #4


Гуру
******

Группа: Модератор 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
Сообщение #5


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

Группа: Участник
Сообщений: 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
Xenia
сообщение Oct 25 2012, 10:35
Сообщение #6


Гуру
******

Группа: Модератор 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
Alla_student
сообщение Oct 25 2012, 20:48
Сообщение #7


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

Группа: Участник
Сообщений: 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

Сообщений в этой теме
- Alt.F4   Выбор IDE для написания оконных программ на Си под Windows   Oct 14 2012, 07:13
- - V_G   Visual Studio. А что значит "простая работа с...   Oct 14 2012, 08:06
- - muravei   Pelles C   Oct 14 2012, 08:08
- - Alt.F4   ЦитатаА что значит "простая работа с формами...   Oct 14 2012, 08:22
- - YAM   Visual Studio никогда не славился "простой...   Oct 14 2012, 09:11
|- - Xenia   Цитата(YAM @ Oct 14 2012, 13:11) Я пользу...   Oct 14 2012, 09:30
|- - YAM   Цитата(Xenia @ Oct 14 2012, 12:30) А отче...   Oct 14 2012, 09:51
|- - Ruslan1   Цитата(YAM @ Oct 14 2012, 12:51) А до это...   Oct 14 2012, 11:25
|- - kolisnichenko_r   Цитата(Alla_student @ Oct 24 2012, 16:29)...   Oct 24 2012, 16:04
|- - kolisnichenko_r   Цитата(Alla_student @ Oct 25 2012, 04:48)...   Oct 25 2012, 05:03
|- - Xenia   Цитата(Alla_student @ Oct 26 2012, 00:48)...   Oct 26 2012, 12:53
|- - SyncLair   Цитата(Xenia @ Oct 26 2012, 16:53) Зато н...   Oct 26 2012, 21:16
- - demiurg_spb   Цитата(Alt.F4 @ Oct 14 2012, 11:13) Никак...   Oct 25 2012, 12:59
|- - Snaky   Цитата(demiurg_spb @ Oct 25 2012, 23:59) ...   Oct 25 2012, 20:41
|- - demiurg_spb   Цитата(Snaky @ Oct 26 2012, 00:41) имхо о...   Oct 26 2012, 05:34
- - goodwin   Во бредятины понапИсали...   Oct 27 2012, 00:48
|- - Snaky   Цитата(goodwin @ Oct 27 2012, 11:48) Во б...   Oct 27 2012, 09:54
- - andron86   Бред какой-то Борланд ещё не умер???? Visual Stu...   Oct 27 2012, 02:12
|- - Xenia   Цитата(SyncLair @ Oct 27 2012, 01:16) Эта...   Oct 27 2012, 14:21
- - Hmm   Топикстартер инициировал холивар, не раскрыв главн...   Oct 27 2012, 17:50
|- - Xenia   Цитата(Hmm @ Oct 27 2012, 21:50) Топикста...   Oct 27 2012, 18:47
- - bookd   Поддержу Sinclair, программирование "из кубик...   Oct 27 2012, 19:08
- - andrewlekar   Xenia, респект за столь впечатляющий оффтопик. В п...   Oct 30 2012, 06:03
|- - _Артём_   Цитата(andrewlekar @ Oct 30 2012, 08:03) ...   Oct 30 2012, 06:24
|- - MrYuran   Цитата(andrewlekar @ Oct 30 2012, 10:03) ...   Oct 30 2012, 06:29
|- - Alla_student   Цитата(andrewlekar @ Oct 30 2012, 09:03) ...   Oct 30 2012, 20:06
|- - Lotor   Цитата(Alla_student @ Oct 31 2012, 00:06)...   Oct 31 2012, 04:53
|- - MrYuran   Цитата(Alla_student @ Oct 31 2012, 00:06)...   Oct 31 2012, 08:33
- - Mahagam   NI LabWindows - во та среда которая шикарна для ме...   Oct 30 2012, 07:35
|- - Snaky   Цитата(Mahagam @ Oct 30 2012, 18:35) NI L...   Oct 30 2012, 08:44
|- - Mahagam   QUOTE (Snaky @ Oct 30 2012, 11:44) скольк...   Oct 31 2012, 08:16
- - andrewlekar   ЦитатаА не подскажите как скрестить QT и VS по шаг...   Oct 31 2012, 04:27
- - vesago   Я утилитки для PC накидываю на C# в студии. Вообще...   Nov 14 2012, 06:19


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

 


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


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