Освобождение памяти библиотеки cgo - PullRequest
0 голосов
/ 24 мая 2018

Я в некотором беспорядке, и я не могу видеть, как я выхожу из этого ... Что я получил: * Библиотека (dll), которую я построил, используя cgo.* Приложение c ++, использующее эту библиотеку (dll).

Что мне делать: я пытаюсь освободить память, выделенную в библиотеке cgo в приложении c ++.

Какие инструменты я использую: Для сборки библиотеки (dll) я использую cgo, затем создаю заглушку lib с помощью VS cmd.Я использую Visual Studio 2017 для компиляции приложения (с / MD).

Что я получу: Обнаружена критическая ошибка c0000374

Насколько я вижу, это результат меняосвобождение данных, которые были выделены в библиотеке DLL.Отмечу, что этого не произойдет, если я создам тестовое приложение и скомпилирую его с помощью gcc.

К сожалению, я не могу избежать использования VS, поскольку я работаю с некоторыми компонентами CUDA, которые лучше похожи на VS: /

1 Ответ

0 голосов
/ 28 июня 2018

После долгих поисков невозможно создать одну кучу при использовании go, cgo и Visual Studio.Чтобы решить эту проблему, я добавляю бесплатную функцию, которая освобождает память cgo в библиотеке cgo.

...