войти зарегистрироваться

ПрограммированиеСоздание и использование динамических библиотек, написанных на различных языках (C/C++, Pascal) из песочницы

Задача


Передо мной возникла задача написать загрузчик библиотек, имеющий возможность предоставить какие-то интерфейсные функции внешней динамической библиотеке. Решение должно быть максимально кроссплатформенно (как минимум, работать на Linux и Windows). Загружаться должны библиотеки, написанные на различных языках программирования, поддерживающих создание динамических библиотек. В качестве примера были выбраны языки C и Pascal.

Решение


Основной загрузчик библиотек написан на языке C. Для того, чтобы загружаемые библиотеки имели возможность использовать функции основной программы, основная программа разделена на 2 части: на основной и подгружаемый модули. Основной модуль нужен просто для запуска программы, подгружаемый модуль — это также динамическая библиотека, связываемая с основным модулем во время его запуска. В качестве компиляторов были выбраны gcc (MinGW для Windows) и fpc.
Здесь будет приведён упрощённый пример программы, позволяющий разобраться в данном вопросе и учить первокурсников писать модули к своей программе (в школе часто преподают именно Pascal).

.NETПодсветка исходного кода

Переписал и изменил (специально для Хабры, а точнее для .NET блога) на досуге небольшой модуль, который подсвечивает исходный код C#, VB.NET, HTML/XML/ASPX, Javascript и SQL.

Если Вы хотите вставить кусок исходного кода в новую запись или комментарий к записи, используйте Source Code Highlighter, который подсветит Ваш код.

Есть поддержка нумерации строк и вставки переноса строк, если вы отметили «Отключить автоформатирование» при написании поста.

RubyRuby on Rails: чем меньше функционала — тем лучше

В связи с выходом второй версии среды веб-разработки Ruby On Rails её автор Дэвид Хэйнемеер Ханссон (David Heinemeier Hansson) дал интервью прессе. Главная идея, которую он пытается донести до пользователей — не ждите особого расширения функционала. Более того, во второй и последующих версиях функционал будет сокращаться за счёт удаления и переноса в плагины малоиспользуемых и концептуально неподходящих функций. Например, такая судьба ожидает элемент Action Web Service, который применяется для создания API веб-сервисов на SOAP. Предполагается, что после этого разработчики чаще будут использовать Representational State Transfer (REST) как альтернативу.

Система Ruby On Rails должна оставаться максимально компактной, быстрой и лёгкой в использовании. Дэвид Ханссон считает, что именно за счёт этих качеств язык Ruby получил такую популярность и дорос до реальной конкуренции с такими «монстрами» как Java и .Net. По мнению экспертов, те приложения, которые на Java и .Net требуют десяти месяцев разработки, можно написать всего за четыре-шесть месяцев на Ruby on Rails.

Презентация Ruby On Rails 2.0 состоится на конференции RailsConf 2007 через две недели.