Свежие комментарии

Title Comment
Test!

Test!

О, блин. И точно, фашизм

О, блин.

И точно, фашизм какой-то. Регистрация помогает, но вообще я его повоспитываю.

Спасибо за сигнал.

Может так

Может так пойдёт
pastebin.com/CksHPau7

"GNU+STLport - скорее всего

"GNU+STLport - скорее всего счастливого конца не будет."
Если честно, GNU+STLport не пробовал, но судя по (stlport org ):
"STLport is a multiplatform ANSI C++ Standard Library implementation. It is free, open-source product", с GNU проблем не должно быть.

При смешивании в одном приложении библиотек, которые экспортируют разные STL в интерфейсах, я вижу проблему только когда есть

несовместимость, что называется calling conventions(в том числе, как передаётся this).
Разрешённый доступ к данным класса(на тот случай, если компиляторы генерируют разную структуру классов) в STL не встречал, виртуальных

функций тоже (на случай, если компиляторы их по разному реализуют).

КомпонентX вернул что-то STL'ское, для работы с ним используем только то STL, которое КомпонентX экспортировал.
Если надо передать что-то STL'ское из КомпонентаX в КомпонентY(с другим STL), берём данные через "чистые" интерфейсы STL КомпонентаX,

создаём на их основе объекты STL КомпонентаY, и передаём.
Да изврат, да как-то слишком индо, но ведь работает, если сложилась такая ситуация, то что делать. Было бы намного хуже, если бы

Компонент1 не экспортировал STL, но использовал его в интерфейсах.
Я где-то пропустил подводные камни?

"смешать C, Fortran и Pascal можно без особых проблем"
То что их можно смешать и они будут работать вместе это уже кэпство.
Но при таком смешивании может произойти точно такой же конфликт куч, или они лишены этого?
Что делать, если например FreePascal в интерфейсах экспортирует TList? Видимо придётся писать wrapper на FreePascal'е для этого

интерфейса, который будет экспортировать "чистый" интерфейс.
Что делать, если у разных версий FreePascal'а разные реализации TList? - то же индо

спам фильтр у вас хреновый,

спам фильтр у вас хреновый, уже неделю не пускает, попробую по-частям

А там 280 мегабайт исходника или это размер бинаря?

А там 280 мегабайт исходника или это размер бинаря?

Содомиты из гугля в русский

Содомиты из гугля в русский интерфейс этого не насыпали.

Мне кажется что да. Там типа TR LR PR и что-то из этого слож

Мне кажется что да. Там типа TR LR PR и что-то из этого сложено-перемножено в степени 0.38

Это на самом деле автогенереный код который 10000 деревьев с

Это на самом деле автогенереный код который 10000 деревьев считает

А двадцать с половиной байт образца 2006-ого года когда-либо

А двадцать с половиной байт образца 2006-ого года когда-либо публиковались?

ггг ) класс. буду иметь ввиду

ггг ) класс. буду иметь ввиду

У гугла есть пимпа 'Fewer

У гугла есть пимпа 'Fewer shopping results'

а для яндекса есть патентованое средство, быстро оригинал не нашел, но по смыслу так
'Canon 550D' - в выдаче сплошные магазины
'Canon 550D говно' - в выдаче обсуждения данной модели.

Недоумение

Сам в недоумении, а вот можно дать экспертную оценку возможно ли такое?

Интересно, а появилась уже

Интересно, а появилась уже галочка "Я не хочу ничего покупать!" ?

А то по казуальным запросам, чтобы что-то узнать, уже вообще ничего не найти...

Так это и есть то самое

Так это и есть то самое незаряженное (вроде бы) ружъе, которое все же иногда "стреляет". То, что стрельнуло в винде - просто стечение объективных и субъективных обстоятельств.
Использование правила "кто аллоцировал, тот и освобождает" безопаснее. А уж в кросплатформенных либах безопасность кода должна быть одним из главных приоритетов - мало ли где и в каких рантаймах чего наворотили.

Еще раз повторю: этот вызов

Еще раз повторю: этот вызов по семантике именно такой - аллоцировать буфер, нагадить в него и отдать вызвавшему.

И на очень большом количестве систем это не вызывает проблем, винды - исключение.

С некоторым опозданием

С некоторым опозданием присоединяюсь к оратору - если некая либа аллоцирует память, то она же и должна ее освобождать.

По-моему, из конструкции видно , что это городской рюкзак. Б

По-моему, из конструкции видно , что это городской рюкзак. Большую 30 модель, полностью набитую, очень неудобно должно быть носить в виде слинга.

Взял себе меньшую, -22 модель, съездил в отпуск. неплохо, но неидеально. T-214 (216) как слинг гораздо удобнее. и можно сзади туристический нести, а её на пузе.

на мой взгляд обсуждаемый пример ближе к метафоре "close( FI

на мой взгляд обсуждаемый пример ближе к метафоре "close( FILEptr->_file )".

кстати, я думаю дебагнутая версия падает не столько от "несовместимости", сколько по ассерту (попытка фрии на неизвестный поинтер). Думаю, что обратная схема - дебагнутая аллокация - без проблем пережила бы релизный фрии... но это так - чисто умозрительно.

Не, сдуру можно и хрен сломать. Я же не сисколл напрямую дел

Не, сдуру можно и хрен сломать. Я же не сисколл напрямую делаю, а типа библиотечную функцию зову.

Меня удивило в первую очередь - наличие нескольких рантаймов одновременно. При том, что обе части собирались даже одним компилятором.

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

Ну да. Ну так и в обсуждаемом примере аллоцированное malloc

Ну да.

Ну так и в обсуждаемом примере аллоцированное malloc() освобождалось free().
Никакой самодеятельности.

вот именно. Никто не делает close( FILEptr->_file ), для это

вот именно.
Никто не делает close( FILEptr->_file ), для этого сущ. fclose(FILE *)

т.е. тот хендл, который был "аллокирован" посредством fopen, никогда "наружу" не выдаётся.
И, кстати, сам "объект" FILE* тоже "аллокируется"/"деаллокируется" не прикладным кодом, а либой.

так что "отличный пример" свидетельствует как раз против твоей практики.

совершенно не факт - в дебагнутой версии тебе могут вернуть

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

Это всего лишь вопрос реализации, а не фундаментального устройства мира.

понятно. Ну, в виндах похожего эффекта можно достигнуть скоп

понятно.
Ну, в виндах похожего эффекта можно достигнуть скопировав дебагнутую версию ддлибы с именем релизной (or vise verse) в рабочую директорию экзешника (кажется, длл-ки ищутся сначала "дома", а потом - по путям), но, боюсь, всё равно всё будет крэшиться...

Ну вот FILE* - отличный пример такового объекта.

Ну вот FILE* - отличный пример такового объекта.

Что значит "С-шный объект" ( это тот самый крокодил, который

Что значит "С-шный объект" ( это тот самый крокодил, который летает, но низэнько-низэнько ?

"нормальной практикой" это было бы сто лет назад, ещё до изо

"нормальной практикой" это было бы сто лет назад, ещё до изобретения колеса ООП. А теперь это - вопиющаяя безграмотность, поскольку нарушается "инкапсуляция" и прочий полиморфизЬм.
Особенности реализации (и уж тем более члены класса) наружу не выставляют. это моветон и разбрасывание граблей.

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

Есть-есть, libraw_processed_image_t* Но это С-шный объект,

Есть-есть,
libraw_processed_image_t*

Но это С-шный объект, а не плюсовый, деструктора нету (в частности по той причине, что у LibRaw есть C-API, но не только).

Вот пришлось приделать, да. С явным вызовом.

Да хоть open, хоть sopen, хоть socketpair. read() оттуда б

Да хоть open, хоть sopen, хоть socketpair.

read() оттуда будет читать, а close() - закрывать.

Нет, не так. Иначе бы LD_PRELOAD не работал бы.

Нет, не так.

Иначе бы LD_PRELOAD не работал бы.

Pages

Subscribe to comments_recent_new