|
Существуют два диаметрально противоположенных, но одинаково распространенных мнения, которые можно выразить как "C++ это C с классами" и "C++ и C --- разные языки программирования". В общем-то, не важно, какого мнения придерживаться, но интересно иное --- в каких случаях какой из этих языков (или вариантов языка) предпочтительнее.
|
|
Объектно-ориентированное программирование позволяет реализовать эволюционный множественный полиморфизм. Однако тесная связь между методами и данными ведет к громоздкости интерфейсов в добавляемых классах, жесткому порядку их следования в эволюционной иерархии и невозможности повторного использования отдельных составляющих. Процедурный подход обеспечивает более гибкое расширение, как при добавлении данных, так и мультиметодов.
|
|
В предлагаемой статье описывается мое видение некоторых компиляторов С/C++ под OS/2. Должен сразу оговориться, что не претендую ни на полноту изложения, ни на энциклопедическую точность; это, скорее, просто ощущения и впечатления, разбавленные общеизвестными фактами, а где-то и наоборот. Где-то изложение может показаться претенциозным, но это во всяком случае не нарочно - больше от вероятного незнания мной некоторых фактов.
|
|
Допустим у вас есть некоторое приложение, написанное на C++(Vм). Как оно у вас появилось не суть важно, может быть это ваша старая разработка, может быть вы решили сначала отладить предметную часть. Важно то что вы горите желанием вынести часть классов в объектные модули и оформить их в виде ActiveX, COM и ATL объектов. Есть несколько типовых проблем связанных с таким переносом.
|
|
Хотя все компиляторы с языка Си предназначены для генерации наиболее быстрых и компактных программ, качество оптимизации кода у них может быть совершенно различное. Разработчики компиляторов с языка Си первоначально стремились к полному согласию со стандартом Кернигана и Ричи. В последствии - к уменьшению времени компиляции. Затем - к полной поддержке моделей памяти семейства микропроцессоров 80х86. Затем пытались поддерживать переносимость исходных текстов программ путем предоставления совместимых с UNIX библиотек функций. После этого создавали специализированные библиотеки функций для обеспечения низкоуровневого доступа к характерным для персональных компьютеров (PC) возможностям. За этим следовали попытки придерживаться развивающегося стандарта ANSI C. После чего следовал возврат к началу, но с развитым интегрированным окружением. И так далее.
|
|
Если вы - системный администратор, специалист по безопасности, или вам просто интересно, что происходит в вашей локальной сети, то перехват и анализ нескольких сетевых пакетов может быть полезным упражнением. При помощи небольшой программы на языке С и базовых знаний сетевых технологий вы сможете перехватить данные сетевого траффика, даже если они адресованы не вам. В данной статье рассмотрено, как это можно сделать в сети Ethernet, наиболее распространенной на данный момент технологии построения локальных компьютерных сетей.
|
|
Эта статья продолжает тему имитации C++ на чистом C. В данной статье я расскажу как в стиле чистого C организовать обработку данных различного типа, которые могут находится "под одной крышей", например в односвязных или двусвязных списках.
|
|
Допустим у вас есть некоторое приложение, написанное на C++(VC++ если быть корректным). Как оно у вас появилось не суть важно, может быть это ваша старая разработка, может быть вы решили сначала отладить предметную часть. Важно то что вы горите желанием вынести часть классов в объектные модули и оформить их в виде ActiveX, COM и ATL объектов. Есть несколько типовых проблем связанных с таким переносом.
|
|
Поддержка регулярных выражений очень полезна в CGI-программировании. В C++ отсутствуют встроенные механизмы для работы с ними. Разработчик, однако, может воспользоваться библиотекой Perl Compatible Regular Expressions (PCRE).
|
|
В c++builder 6 для передачи какой-либо информации по сети удобнее всего использовать компоненты закладки internet: tclientsocket и tserversocket. Чтобы лучше разобраться в работе этих компонентов я предлагаю написать простенький сетевой чат, на примере которого можно будет легко увидеть компоненты в действии.
|
|
Простейший способ отключения Alt+Tab - использование функции RegisterHotKey. Вызов этой функции из вашего процесса дает ему превосходство над ОС. Сообщение WM_HOTKEY, которое генерирует определенная комбинация клавиш будет перенаправлено в очередь сообщений вашего процесса. Для блокировки комбинаций клавиш просто не обрабатывайте сообщение WM_HOTKEY присланное в вашу очередь. Ниже приведен конструктор и деструктор демонстрирующие эти действия.
|
|
В среде borland c++ builder есть ряд возможностей, которые повышают удобство использования редактора и отладчика, некоторые из них доступны как через пункты меню, так и с помощью горячих клавиш, однако многие доступны только с клавиатуры. Я не буду описывать "известные" сочетания, такие, как ctrl+c / ctrl+v, которые работают в большинстве windows-приложений. Кроме того, описанные ниже возможности - это не полный список, а только те функции, которые лично я применяю в своей работе.
|
|
При разработке программ часто возникает необходимость модифицировать уже существующие базовые классы объектов: добавлять в них новые данные и методы, перекрывать уже существующие. Предположим, у нас есть класс line, объекты которого представляют линии в пространстве или на плоскости. Такой класс может содержать информацию о геометрии линии в виде массива узлов (отрезков) или метода их порождения. В какой-то момент появляется задача вывода линий на экран. Причём для каждой линии пользователь может задать цвет, которым она будет рисоваться во всех окнах. Этот цвет должен сохраняться-загружаться, импортироваться - экспортироваться вместе с самой линией вплоть до самого её удаления.
|
|
Язык программирования работает на многих уровнях и выполняет различные функции, а потому должен критически рассматриваться по отношению именно к этим уровням и функциям. Именно виртуальные функции — основной объект критики языка Cи++. Cи++ представляет собой интересный эксперимент по адаптации возможностей объектной технологии к традиционному языку программирования. Бьерн Страуструп вполне достоин аплодисментов за то, что ему в голову пришла мысль слить обе технологии воедино. В то же время в Cи++ сохранились проблемы старого поколения средств программного производства. Язык Cи++ обладает тем преимуществом перед Cи, что поддерживает некоторые аспекты объектной технологии, которые могут быть использованы для ограниченного проведения анализа требований и проектирования. Однако процессы анализа, проектирования и реализации проекта все еще в значительной степени остаются внешними по отношению к Cи++. Таким образом, в Cи++ не реализованы важные преимущества объектной технологии, которые прямо бы привели к экономичному производству программной продукции.
|
|
Данный текст, рекомендуется читать в случае если у вас возникли проблемы при работе с bluetooth в среде Borland C++. Принцип работы с bluetooth и в Delphi ,и в Builder'е одинаков. Но ,для того чтобы заработало это в Builder'е, пришлось пойти на некоторые уловки.Итак, первое что вам понадобится – архив, содержащий заголовочные файлы и lib’ы. Заголовочные файлы для удобства складываются в папку include, lib'ы ,соответственно , тоже.
|
|
Мой любимый язык – PHP. Он изящен и прост, но, к сожалению, предназначен только для программирования сайтов. «Обычную» программу на нём не напишешь. К счастью, некоторые технологии, реализованные в PHP можно перенести и в другие языки программирования: например, в C++.
|
|
В статье рассматриваются проблемы, возникающие при работе Borland C++ Builder 6.0
|
|
В статье рассматриваются проблемы, возникающие при работе с исключениями в среде Borland C++ Builder 6.0
|
|
В этом разделе вы создадите два новых приложения OLE. Первое - простая программа-сервер OLE, второе - пример простого контейнера OLE. Эти программы предназначены для демонстрации минимальных затрат программирования, необходимых для создания приложений OLE 2. В любом случае, для создания оболочки программы следует воспользоваться приложением AppExpert. Сначала необходимо сгенерировать основу приложения в AppExpert, затем модифицировать созданные файлы для создания законченного рабочего примера. При написании своих версий этих программ необходимо иметь в виду несколько моментов. Во-первых, в этой главе приводятся листинги только исходных, немодифицированных файлов.
|
|
Приветствую вас, уважаемые читатели. Вместе с вами на протяжении неопределенно долгого времени мы будем рассматривать различные интересные темы и возможности Delphi.Прежде всего мне хотелось бы поблагодарить администратора клуба программистов - Грома. Именно благодаря ему наше с вами общение стало возможным и впоследствии будет приносить всеобщую пользу.
|
|