пятница, 2 августа 2013 г.

Использование в коде C библиотек, написанных на C++

На C++ можно писать библиотеки, которые можно было бы использовать в др. языках программирования, в т.ч. не являющихся объектно ориентированными. В частности, меня интересовал вопрос о написании на C++ таких библиотек, которыми можно было бы воспользоваться в C. Я в курсе о том, что следует использовать extern "C", однако этим дело не заканчивается, поскольку по ходу реализации такой библиотеки выявляется большое количество подводных камней, которые следует как-то обходить.

четверг, 1 августа 2013 г.

AutoCAD и nanoCAD: о совместимости .NET кода

nanoCAD хорошо развивается и кое в чём даже переплюнул компанию Autodesk. Причём это "кое-что" является весьма важной способностью, отсутствующей в AutoCAD и непонятно когда она в нём появится (в чём лично я вообще сомневаюсь). В данной заметке хочу разместить обсуждение кода, ориентированного на начинающих программистов и опубликованного в этой статье на хабре.

четверг, 18 июля 2013 г.

Локализация ISO/IEC 14977 : 1996(E) (Extended BNF)

Перевёл себе для работы Стандарт ISO/IEC 14977: 1996(E), описывающий Extended BNF

Возможно материал будет интересен и др. людям, поэтому выкладываю результат в сеть для свободного использования. Обозначенная google-группа, создана для корректировки текущей версии перевода, замечания/исправления приветствуются.

суббота, 6 июля 2013 г.

Сборка MS Visual C++ проекта под платформу x64

Для того, чтобы скомпилировать MS Visual C++ проект под платформу x64, в настройках этого проекта потребуется выполнить несколько больше изменений, чем это обычно потребовалось бы для проекта написанного, к примеру, на .NET.

вторник, 2 июля 2013 г.

Объём утечки памяти при выделении её с помощью new для нулевого количества байт

Заинтересовал такой вопрос: если используя оператор new выделить память для массива, указав в качестве его размера значение 0, после чего не вызывать оператор delete, то будет ли утечка памяти, и если будет то в каком объёме?

суббота, 29 июня 2013 г.

Создание DLL консольными средствами Visual Studio

MS Visual Studio имеет графический интерфейс для разработки приложений и управления их проектами и решениями. Однако за кулисами всё выполняется консольными утилитами, так же входящими в состав этой IDE. В данной заметке я покажу маленький пример создания dll файла консольными средствами MS Visual Studio, с последующим его использованием в другом приложении. В качестве языка программирования использован C++. Весь приведённый ниже программный код можно набирать в любом текстовом редакторе (я использовал Notepad++).

среда, 19 июня 2013 г.

Баг компилятора MS Visual Studio 2012


Недавно наткнулся в MS Visual Studio 2012 на неприятный баг... Обозначенная в данной теме ошибка компилятора MS Visual Studio 2012 не является смертельной и её можно обойти (ниже способ будет указан), однако она опасна, т.к. наличие оной может неожиданно привести либо к неправильной работе программы (если в глобальном пространстве имён компилятором будет обнаружена другая функция с такой же сигнатурой, пусть даже не вами объявленная), либо, в противном случае, выдаст ошибку времени редактирования связей.