Size: a a a

2021 March 18

АВ

Александр Водянников... in pro.cxx
Про выше - точно не скажу , но погугли про HGLOBAL, думаю поймёшь
источник

СН

Сеня На Телеграмме... in pro.cxx
Salt
Можно сделать прокси dll на c++\cli)
Я такое не делал, но слышал, что так работает. Ты зовёшь прокси длл из плюсов, а она зовёт шарповую библиотеку.
источник

АВ

Александр Водянников... in pro.cxx
Но лучше аллоцировать к примеру память, в неё положить данные и вернуть вместе с размером, на другой стороне надо чтобы осбовождали
источник

АВ

Александр Водянников... in pro.cxx
Или на один вызов отдавать размер, кто запрашивает сам аллоцирует память и вторым вызовом даёт указатель - в функции в него копируют
источник

BU

Boris Usievich in pro.cxx
Александр Водянников
Но лучше аллоцировать к примеру память, в неё положить данные и вернуть вместе с размером, на другой стороне надо чтобы осбовождали
Вот так делать не стоит, если только не заведомо известно, что memory manager общий
источник

АВ

Александр Водянников... in pro.cxx
Такое описывается в описании(простите за тафтологию) к функции.
источник

АВ

Александр Водянников... in pro.cxx
Кто отвечает за память и как
источник

АР

Андрей Руссков... in pro.cxx
Dmitriy
Проверил с seq_cst (в моей реализации для x86-64 - на основе MSVC-интринсиков _InterlockedExchange() для store(), _InterlockedCompareExchange для load())
Ошибка сохранилась. Спасибо - буду проверять отдельные ветви исполнения...
а почему не std::atomic?
источник

D

Dmitriy in pro.cxx
Андрей Руссков
а почему не std::atomic?
Потому что его у меня нет :)
источник

АР

Андрей Руссков... in pro.cxx
есть винда но нет std::atomic?
источник

BU

Boris Usievich in pro.cxx
Никакое описание не поможет, если вы выделяете память средствами C#,  у вас на стороне С++ просто нет способа ее освободить корректно.
источник

D

Dmitriy in pro.cxx
Андрей Руссков
есть винда но нет std::atomic?
Есть ядро винды, есть исключения и самописный атомик на основе бустовского и MSVC'шного
источник

АВ

Александр Водянников... in pro.cxx
Boris Usievich
Никакое описание не поможет, если вы выделяете память средствами C#,  у вас на стороне С++ просто нет способа ее освободить корректно.
LocalAlloc/GlobalAlloc
источник

АВ

Александр Водянников... in pro.cxx
Вот кстати первая же ссылка по данному вопросу - https://stackoverflow.com/questions/26054040/c-sharp-string-marshalling-and-localalloc
источник

BU

Boris Usievich in pro.cxx
что-то мне подсказывает, что C# свои строки выделяет не так.
источник

АВ

Александр Водянников... in pro.cxx
Ну надо заставить ))
источник

RR

Roman Rubanenko in pro.cxx
Dmitriy
Вопрос по lockfree-очереди. Реализовал её по алгоритму Майкла-Скотта + с оглядкой на бустовскую и примеры в интернете.
Как и полагается, спустя месяц пришли к выводу, что время от времени падает именно она.

Как дебажить?
Санитайзеров на платформе нет, имеющиеся средства анализа не вылавливают ошибку, однако удалось создать +- повторяемые условия её проявления.
И чё, реально улучшило перформанс относительно очереди с синхронизацией?
источник

D

Dmitriy in pro.cxx
Roman Rubanenko
И чё, реально улучшило перформанс относительно очереди с синхронизацией?
В диалоге ниже есть ответы на все вопросы)
источник

D

Dmitriy in pro.cxx
Профилировать особо нечем, "на пальцах" значимого прироста не замечено
источник

IZ

Ilia Zviagin in pro.cxx
Костя Мальованик
Всем привет. У меня есть шарповкая длл в ней метод который возвращает строку, как мне вызвать этот метод в с++, что бы получить эту строку ? Маршалинг, но все примеры в основном из с++ в с#, а нужно наоборот и как эт сделать хз. Подскажите пожалуйста.
Это не вопрос С++ -- иди в чат по до диез.
источник