我正在尝试将C ++代码包装到C#中。 我设法将我的函数导出到DLL,然后从C#中导入它们。
我的问题如下:
在我的C ++代码中,我有一个单例,我使用“createInstance”函数创建。在我导出到DLL的新newCreateInstance函数中,我只调用旧的createInstance,然后返回指向我创建的单例实例的void指针。
在其他功能中,我尝试对单音实例进行操作。所以,我得到一个void指针,然后我将其转换为相关指针,然后尝试对其进行操作。
但是我认为当我从C#调用第二个函数(在调用第一个函数之后)时,我的单例实例已经从内存中删除了。如何将实例保留在堆/堆栈上?它甚至可能或者我应该采用不同的方式吗?
p.s - 我无法在C#上创建相同的类,因为我不知道它的实现(它也来自DLL / LIB文件)。所以我必须使用void指针。
感谢!!!