我有点乱,我看不出我是如何摆脱它的...... 我得到了什么: * 我使用 cgo 构建的库 (dll(。 * 使用此库 (dll( 的 c++ 应用程序。
我该怎么办: 我尝试释放我在 c++ 应用程序的 cgo 库中分配的内存。
我应该使用哪些工具: 为了构建库(dll(,我使用cgo,然后使用VS cmd创建一个存根库。 我使用Visual Studio 2017编译应用程序(使用/MD(选项。
我能得到什么: 检测到严重错误 c0000374
据我所知,这是我释放在 dll libarary 中分配的数据的结果。 我会注意到,如果我创建一个测试应用程序并使用 gcc 编译它,这不会发生。
不幸的是,我无法避免使用 VS,因为我正在使用一些更喜欢 VS 的 CUDA 东西:/
经过大量搜索,在使用go,cgo和Visual Studio时无法创建一个堆。为了解决这个问题,我添加了一个免费函数来释放cgo库中的cgo内存。