Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Открыть новую тему     Написать ответ в эту тему

MKalavera



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хозяйке на заметку:
Касперский - враг BCB.
Время полного билда проекта
- с включенным KAV: ~820secs
- с выключенным KAV: ~140secs
Версия KAV: 5.0.388 (c более ранней версией 5.x подобного не наблюдалось)
При включенном KAV ресурсы процессора распределяются так:  
bcb - 20-30%
kav - 80-70%

Всего записей: 512 | Зарегистр. 03-11-2003 | Отправлено: 09:58 09-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kott
Да действительно так и сделал чтение - потоки что-то мне больше по душе. Да и переносимость кода должна быть лучше - ведь CreatFile, WriteFile .. работают только в билдере? и когда их удобнее применять?
только не понял как вывести числа в файл в "нормальном" виде

Код:
  ofstream out("out.txt");
  int i = 123;
  out.write((char *)&i, sizeof(int));
  out.close();
 
выводит не то что нужно.(хотя я сам понимаю что вывод будет неправильным)
   
разобрался - просто реализовал вывод в поток так

Код:
  ofstream out("out.txt");
  int i = 123;
  out<<i<<"\n"<<434;
  out.close();
 
действительно работа с потоками проще и интуитивнее понятнее.
Так зачем нужны все эти функции через WinAPI - когда их лучше применять?

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 11:22 09-11-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так зачем нужны все эти функции через WinAPI - когда их лучше применять?

А как же свобода выбора?
Если так спрашивать, то можно дойти и до "а зачем вообще этот WinAPI, если всё можно делать и без него? зачем микрософт вообще его сделала?"
Видимо, без WinAPI все эти радости и не работают (они же сами функции API вызывают).

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 15:00 10-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А как же свобода выбора?

Весомый аргумен!    
  напоминает разговор Нео с "Создателем" - "У нас есть выбор" - говорит Нео. "Я лишь даю вам его иллюзию а выбираете то что мне нужно" - отвечает создатель. (не дословно)  
А что теже потоки используют вызов WinAPI ? я только начинаю программирование для ОС. специализация у меня немного другая - но мне инетересно!
Просто инетересно узнать у народа который это уже поюзал - когда и что удобнее применять.На что сделать больший уклон в изучении и что использовать в предпочтении.

----------
а вот и моя подпись :))

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 17:16 10-11-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeviL

Цитата:
Просто инетересно узнать у народа который это уже поюзал - когда и что удобнее применять.На что сделать больший уклон в изучении и что использовать в предпочтении.

Чем хорошо АПИ, это тем, что если тебе понадобится перекомпилировать программу в более новой версии, то тебе не придется заботиться, как она поведет себя, так как АПИ отработает одинаково (ведь его выполняет сама винда, если упрощено) а вот всякие outsream (они реализованы специфично, и возможно могут меняться от версии к версии) либо вообще перестанут работать. Да и если требуется перенести код на другой язык, то АПИ переносится проще, так как просто меняется синтаксис. Насчет скорости работы кода сказать не могу, но возможно что на АПИ код будет работать быстрее (хотя хз).

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:58 11-11-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Насчет скорости работы кода сказать не могу, но возможно что на АПИ код будет работать быстрее (хотя хз).

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

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 10:43 11-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот! За такие объяснения спасиба!
А то многие тут твердили что лучше работать с потоками т.к. они ближе к железу!
Но понял что изучение поток обязательно для точного и полоного понимания что происходит при вызове WinAPI(наверное    )
А вот на счет переносимости мне казалось что наоборот - хотя все меняется и наверное это правильно.
Вот думаю перейти на VS2005. Пишут что там можно хоть на Си писать.
В общем думаю стоит теперь оснавательно изучить работу с WinAPI.

----------
а вот и моя подпись :))

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 11:12 11-11-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Только учти, что микрософт активно продвигает свою платформу .NET, что постепенно приводит к тому, что вызов WinAPI становится дурным тоном

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 06:03 12-11-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xarde

Цитата:
Только учти, что микрософт активно продвигает свою платформу .NET, что постепенно приводит к тому, что вызов WinAPI становится дурным тоном

Вызов АПИ в программе на НЕТ считается дурным тоном, так как приходится это АПИ  эмулировать, а вот в обычных не НЕТ программах, это нормальный тон .

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:58 14-11-2005
Xarde



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а вот в обычных не НЕТ программах, это нормальный тон

Я это и имел в виду.

Всего записей: 266 | Зарегистр. 06-07-2003 | Отправлено: 10:29 15-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Блин чето я не совсем разберусь где API а где не API    
Есть два варианта работы с файлами:  
  1. через структуру FILE
  2. через дескриптор

есть также два варианта функций CreateFile и FileCreate - в чем их собственно разница?
Есть так же еще функции WinAPI для настройки компорта (я в основном считываю из него и преобразуя пишу в файл) типа SetCommConfig (точно не помню), также порт там вроде описан структурой.
ну ладно тут хоть какой то просвет есть. А как работать с портом как с потоком
если сделать анологию то нужно открыть файл

Код:
ifstream comport("COM1");

а как задать настройки порта и ака скорость и подобное ?
и еще очень интересует вот в компонентах есть такие вещи как обработчики событий - как их самому создать - если нет компоненты? то есть как например отследить что принят байт?

----------
а вот и моя подпись :))

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 10:50 15-11-2005
Dunkel1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Как правильно поставить компоненту в Билдере 6, если имеются следующие файлы: componet.bpk, component.cpp, component.obj, component.res ?
 
З.Ы. Я делаю так: Component -> Install Component... -> Into new package -> Package file name = componet.bpk, Unit file name = component.cpp  
Потом все компилится, инсталлируется. Но компонента не появляется.

Всего записей: 25 | Зарегистр. 15-11-2005 | Отправлено: 19:37 15-11-2005
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeviL
Работа с файлами организуется на уровне операционной системы, которая предоставляет для этого набор функций. Т.е. - в Win32 это CreateFile и т.д. Это и есть API операционной системы.
 
Язык. Предполагается (изначально) что язык может работать на различных операционных системах и он предосталяет свои функции для работы с файлами - в С сюда относится работа, как ты говоришь, через дескрипторы и посредством структуры FILE. Это - часть языка. Для конкретной операционной системы они реализуются через вызовы API (для той же Win32 это использование CreateFile для открытия, создания файла и т.д.). Те средства которые предоставляются языком обычно стандартизируются и на разных операционных системах для конкретного языка их описание одинаково.
 
С точки зрения переносимости кода - пользоваться только средствами, предоставляемыми языком программирования и не пользоваться API операционной системы.  
 
С точки зрения быстродействия (вопрос спорный для файлового в/в), расширенных или каких-либо дополнительных возможностей - API операционной системы.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 00:08 16-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как я понял к дополнительным возможностям относятся такие вещи как работа например со структорй описывающей свойства открытого com порта?
то есть стандартные функции работы с файлами - это только для файлов? но как то же раньше работали с com портом   - взять теже потоки? хоть в стиле С хоть в С++.  
И если кто знает подскажите что-нить об обработчиках событий.  

----------
а вот и моя подпись :))

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 11:18 16-11-2005
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://anatolix.naumen.ru/Books/Richter?v=68d - скачиваешь, читаешь, там все детально описано.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 12:41 16-11-2005
DeviL



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Книжки это хорошо - но так хотелось пообчатся с живыми представителями сведущими в данной области    
Не прикольно ведь одному сидеть читать и разбирать ...

----------
а вот и моя подпись :))

Всего записей: 268 | Зарегистр. 24-10-2003 | Отправлено: 15:03 16-11-2005
russianczar



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Взялся за С++, ну конечно же многие кто начинал недавно наверника начинали со знаментивого конвертатора температур (может я туплю, но мне в трех разных книжках встречалась эта прога)  
 
Ну да не важно, соль в том, что все проги которые я пока-что пишу по книге - досовские. Если я их запускаю в C++ Builder 6, они открываются в обсолютно пустом окне с заголовком Form 1 и больше ничего... тоест просто серое поле.. Как заставиьт его компилировать в досовский вариант?
 
Вот пример из программ:
 
// Programm that would give me an average of three entered values.
 
#include <stdio.h>
#include <iostream.h>
 
int main()
{
 
//Defining my variables
int nValue1;
int nValue2;
int nValue3;
 
//I/O collecting info
cout << "Please enter your first number to be averaged: ";
cin >> nValue1;
 
cout << "Please enter your second number to be averaged: ";
cin >> nValue2;
 
cout << "Please enter your third number to be averaged: ";
cin >> nValue3;
 
//Now we are going to do our math
int nResult;
nResult = (nValue1 + nValue2 + nValue3)/3;
 
cout << "The average of the three entered numbers is: ";
cout << nResult;
 
return 0;
 
}

----------
Славься страна, мы гордимся тобой!

Всего записей: 595 | Зарегистр. 27-12-2003 | Отправлено: 20:22 16-11-2005 | Исправлено: russianczar, 20:23 16-11-2005
FuzzyLogic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Когда создаешь новый проект, тип проекта указываешь как Console Application (Консольное приложение)
 
пошагово:
http://support.borland.com/entry.jspa?externalID=3472&categoryID=172

Всего записей: 1920 | Зарегистр. 27-07-2002 | Отправлено: 20:28 16-11-2005
russianczar



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо FuzzyLogic,  
что за ошибка такая  появилась? На любой код:
[Linker Error] Unresolved external '_main' referenced from E:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ

----------
Славься страна, мы гордимся тобой!

Всего записей: 595 | Зарегистр. 27-12-2003 | Отправлено: 20:56 16-11-2005
russianczar



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребята выручайте, не могу компилить ничего токлом.. пишет Linker Error ....

----------
Славься страна, мы гордимся тобой!

Всего записей: 595 | Зарегистр. 27-12-2003 | Отправлено: 20:45 17-11-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru