При разработке на С++ кроссплатформенного приложения разумно выделить платформо-зависимые части в отдельные пространства имён. Например, части, относящиеся только к операционным системам семейства Windows, в пространство имён windows. Это хорошая идея. Однако здесь есть крайне не очевидный подводный камень. Дело в том, что в компиляторе gcc нельзя создать пространство имён с именем linux. Читать полностью →
Записи с тегом: ошибка
GCC требует открытого конструктора копирования для C++98
В одной из своих прошлых статей я рассказывал, что при возврате объектов GCC не использует конструктор копирования, сразу размещая объекты там, где они должны располагаться. Однако, в некоторых случаях GCC требует наличия открытого конструктора копирования. Читать полностью →
Wine неправильно обрабатывает исключения в 64-битных приложениях
Wine — популярная программа для запуска Windows приложений в среде Linux. Как оказалось в ней содержится серьезная ошибка, не позволяющая полноценно использовать 64-битные приложения. Читать полностью →
GLib не обеспечивает размер типа guint64
В одном из своих прошлых постов я рассказывал, как компилировать приложения, использующую библиотеку GTK. Однако, как оказалось, входящая в ее состав библиотека GLib имеет одну неприятную особенность. Читать полностью →
Лишние скобки меняют тип переменной
Как дополнительные круглые скобки могут сказаться на типе переменной? Я, если честно, никогда не задумывался над этим. Нет, я конечно слышал про перегрузку оператора (), но сейчас не об этом. Несколько дней назад мое невнимательное отношение к круглым скобкам привело к ошибке, найти которую удалось не сразу. Читать полностью →
Неоднозначность при использовании reverse_iterator и const_reverse_iterator
Итераторы reverse_iterator и const_reverse_iterator предназначены для перечисления элементов контейнера в обратном порядке (от конца к началу). Об этом написано в любой более или менее приличной книге по С++. Но есть ряд моментов, о которых там умалчивают. Один из них связан с неоднозначностью, возникающей при работе с обратными итераторами. Читать полностью →
Ошибка отсутствия процедуры __dbk_fcall_wrapper и ее решение
При работе в Embarcadero RAD Studio 10 во время компиляции проекта может возникать ошибка с текстом: «Точка входа в процедуру __dbk_fcall_wrapper не найдена в библиотеке DLL». Читать полностью →
Ошибка 0xC000007B и смешение кода
Сравнительно недавно я работал над одной небольшой программой. Она была предельно простой (проверяла работу функции в подгружаемой библиотеке). Программа нормально компилировалась (даже без предупреждений), но при ее запуске выдавалось сообщение об ошибке 0xC000007B. Читать полностью →
Delphi неправильно передает пустые строки в технологии COM
Работая над одной программой, я заметил ошибку. Первоначально я решил, что это ошибка сервера, но, переписав пример на другой язык программирования, я понял, что сервер тут ни при чем. Читать полностью →