@ProCxx

Страница 2405 из 2477
Egor
04.10.2018
16:14:41
да

но если соблюдать один рантайм, то всё ок

Ilia
04.10.2018
16:15:17
В инете читал, что если DLL и EXE собраны с разным С рантаймом или разным компилятором, то будет жепа
Родной, если dll и exe собраны с разными рантаймами, то по любому будет жопа. Кидай ты исключения или нет -- не важно

yuri
04.10.2018
16:16:08
Родной, если dll и exe собраны с разными рантаймами, то по любому будет жопа. Кидай ты исключения или нет -- не важно
От интерфейса зависит. Либа может только хендлы на ресурсы наружу выдавать.

Google
Ilia
04.10.2018
16:16:45
От интерфейса зависит. Либа может только хендлы на ресурсы наружу выдавать.
Это вопросы ABI и нарушения ORD. Не решаются в общем случае вообще.

Нет смысла обсуждать.

Побитый
04.10.2018
16:18:11
Ilia
04.10.2018
16:18:12
От интерфейса зависит. Либа может только хендлы на ресурсы наружу выдавать.
По сути есть два варианта: 0) программа по каким-то причинам не работает. 1) программа по каким-то причинам РАБОТАЕТ. А всё остальное -- детали ...

Anton
04.10.2018
16:18:24
можно и без них обойтись

Ilia
04.10.2018
16:18:32
можно и без них обойтись
Да можно и в машинных кодах писать... Ты пишешь?

Anton
04.10.2018
16:19:06
зачем передёргивать )

можно писать на C++, не используя исключения

Anton
04.10.2018
16:19:31
просто несколько рантаймов в dll-ках обычное дело к сожалению

yuri
04.10.2018
16:19:39
По сути есть два варианта: 0) программа по каким-то причинам не работает. 1) программа по каким-то причинам РАБОТАЕТ. А всё остальное -- детали ...
Зачем так категорично? Я по своей практике знаю, когда можно рантаймы тасовать, а когда нельзя.

Google
Ilia
04.10.2018
16:20:34
Зачем так категорично? Я по своей практике знаю, когда можно рантаймы тасовать, а когда нельзя.
Я по своей практике знаю, что рантаймы тасовать нельзя никогда... Когда-нибудь да #бнет...

Anton
04.10.2018
16:21:09
Я по своей практике знаю, что рантаймы тасовать нельзя никогда... Когда-нибудь да #бнет...
что будешь делать когда пропиетарная библиотека зависит от какого-нибудь MSVC 2008?

Побитый
04.10.2018
16:21:09
Родной, если dll и exe собраны с разными рантаймами, то по любому будет жопа. Кидай ты исключения или нет -- не важно
А как сильно распространена практика экспортирования из DLL С++ классов и функций? То есть полноценный С++ интерфейс, без extern "C" и т.д. Я читал, что такая схема работает, только если все модули (dll либы) компилируются вместе с exe одним компилятором и распространяются пачкой. Иначе могут быть вышеописанные проблемы (жопа)

Anton
04.10.2018
16:21:44
=)

yuri
04.10.2018
16:22:18
что будешь делать когда пропиетарная библиотека зависит от какого-нибудь MSVC 2008?
Как я уже написал, для ресурсов такой либы должны быть отдельные методы для создания, и отдельные методы для уничтожения. Наружу — хендлы. Исключения — нельзя.

Ilia
04.10.2018
16:23:38
Расскажи=)
Это очень долго. Вкратце, ты должен знать, что делаешь, и не делать херню. Тогда всё будет ок. А далее начинаются кровавые подробности.

Anton
04.10.2018
16:24:19
ну удачи с таким подходом короче )

нет времени объяснять

хотя выше уже в принципе всё есть

Alex
04.10.2018
16:25:01
C помощью PIMPL можно попытаться запрятать внутри либы все компиляторозависимые вещи, ну или почти все. Но нудно. Проще заставить клиентов собирать как надо, или дать им бинарник под их сетап.

Google
Anton
04.10.2018
16:25:53
а не тысячи

Alex
04.10.2018
16:26:09
Тогда собирать все мыслимые бинарники

Других способов не знаю. Может, те, у кого нет времени объяснять, всё-таки поделятся)

Anton
04.10.2018
16:26:45
Тогда собирать все мыслимые бинарники
выход новой версии превратится в дурдом

Alex
04.10.2018
16:27:32
почему? Просто скрипт, который N раз вызывает msbuild с разными флагами

вопрос организации

или cmake, или что у вас там, не важно

yuri
04.10.2018
16:35:43
Да собс-но, что нам кабанам на каждую С++-либу не делать обертку с С-шным интерфейсом? Make FFI happy.

Ilia
04.10.2018
16:43:37
Anton
04.10.2018
16:44:56
почему? Просто скрипт, который N раз вызывает msbuild с разными флагами
всего-то должны все версии Visual Studio (причём с разными сервис-паками и без) стоять на билд-машине, mingw, clang и это только для винды

плюс вся эта куча бинарей будет весить хз сколько

и юзеру может быть сложно понять что именно ему нужно и зачем

Anton
04.10.2018
16:45:44
и всё это ради того, чтобы использовать C++-интерфейсы и исключения... окееей

Alex
04.10.2018
16:49:33
Смотря, что вы делаете. Для кого-то это может быть оправдано, для вас, видимо, нет. Не уверен насчёт сервис-паков, кстати, они не должны ломать бинарную совместимость. Пока ещё ни разу о таком не слышал.

Вон, Qt можно в куче вариантов скачать, например

И я бы вряд ли оценил там С интерфейс

Google
Anton
04.10.2018
16:51:25
так клиент тоже будет использовать какую-то свою msvcr
Ну и пусть, они уживаются друг с другом.

Alex
04.10.2018
16:51:33
бывало, я не вспомню точно в какой, 2008 или 2010
Не спорю, я с 2012-й занимаюсь коммерческой разработкой, не застал такого.

Anton
04.10.2018
16:51:39
выше предлагали собрать для всех вариантов
Ну вот это да, надо будет все собирать

Anton
04.10.2018
16:51:50
Ну и пусть, они уживаются друг с другом.
если он будет дёргать С++-интерфейс, то есть шанс, что не уживутся

Anton
04.10.2018
16:53:37
Просто деградировать до C интерфейсов не всегда хочется, поэтому иногда проще решить эти проблемы чем все протаскивать через plain C

Anton
04.10.2018
16:54:06
примеров куча Microsoft, Adobe и т.п.

Alex
04.10.2018
16:56:48
А что Adobe? У них есть вполне плюсовый DNG SDK

Admin
ERROR: S client not available

Anton
04.10.2018
16:58:37
он не исходниками распространяется?

я знаю только про SDK для Photoshop, Premiere, AfterEffects

Alex
04.10.2018
16:59:44
он не исходниками распространяется?
Хороший вопрос. Если только исходниками, тогда понятно.

Alexey
04.10.2018
17:05:25
Неправ абсолютно
Если рантайм слинкован статически в каждый из модулей, то переход исключения через границу модулей будет бобо

Ilia
04.10.2018
17:06:45
Если рантайм слинкован статически в каждый из модулей, то переход исключения через границу модулей будет бобо
Если у тебя модули (динлинковка) и статический CRT, то это нарушение ODR и как следствие UB... Я тебе желаю счастья в отладке такой программы.

Alexey
04.10.2018
17:06:54
Собсна при некоторых конвенциях вызова бобо не только исключения

Ilia
04.10.2018
17:07:39
Собсна при некоторых конвенциях вызова бобо не только исключения
Вообще, чего уж тут... Давай скажем прямо: всё это программирование -- сплошное бобо...

Alexey
04.10.2018
17:08:36
Ты никогда не видел, как передаваемый по значению контейнер (иногда бывает нужно и такое) валил функцию при выходе?

Ilia
04.10.2018
17:11:19
примеров куча Microsoft, Adobe и т.п.
Э... Вот замечательный КОНТРпример есть как раз от Microsoft. MFC называется.

Ore
04.10.2018
17:11:20
Никто неподкажет как записать структуру в файл

Matwey
04.10.2018
17:12:01
Зависит от

Google
Ilia
04.10.2018
17:12:04
Никто неподкажет как записать структуру в файл
Берёшь файл, берёшь структуру, и записываешь последовательно все её элементы. (которые нужно записывать)

Matwey
04.10.2018
17:12:16
Если не нужно чтобы было переносимо, то берешь файл, мамишь в память и делаешь memcpy

Anton
04.10.2018
17:12:16
Э... Вот замечательный КОНТРпример есть как раз от Microsoft. MFC называется.
он же идёт вместе с visual studio соответственно будет с тем же рантаймом, что у тебя

Anton
04.10.2018
17:12:52
И что?
не будет проблем

это считай как расширение рантайма от MS

а вот winapi у них с С интерфейсами

Ilia
04.10.2018
17:13:32
не будет проблем
Ну вот на популярных проектах вроде всегда проще деградировать до С интерфейсовКак-то MFCшники не хотят деградировать до С...

Anton
04.10.2018
17:13:51
а я понял, что неправильно написал

если ты популярную либу делаешь

dll

sdk там

Ore
04.10.2018
17:14:05
У меня структура данних о книге Arrayofbooks *pBooks с указателемь притом елементи структури я ввожу вручную через консоль

Anton
04.10.2018
17:14:07
вот это всё

Ilia
04.10.2018
17:15:06
MFС-шники ещё живы?
Как никогда. Вот прям щаз правлю программулю на MFC...

Alexey
04.10.2018
17:15:27
мои соболезнования

paul
04.10.2018
17:15:33
MFС-шники ещё живы?
Я вчера видел человека который последние два года за пределы WinAPI не вылазит

Alexey
04.10.2018
17:15:49
а на прогулки выводят хоть?

Igor
04.10.2018
17:16:11
Можете объяснить как именно реализованы корутины в msvc?

Они так же работают, как и бустовские?

Страница 2405 из 2477