如果我使用 C# P/Invoke 某个 DLL,实际的 C++ DLL 是否会在调用期间运行,然后关闭,从而销毁所有已使用的内存?或者,.NET 是否会在非托管“堆”中负责 C++ DLL 使用的内存,并在每次调用静态函数时将指向这些对象的指针提供给 C++ DLL?
当我需要某个 C++ 项目使其内存持久时,我是否应该创建一个 ActiveX/COM 服务器以使其内存持久,但又能够从 C# 调用它?
如果我使用 C# P/Invoke 某个 DLL,实际的 C++ DLL 是否会在调用期间运行,然后关闭,从而销毁所有已使用的内存?
不会。一旦 DLL 被加载,它将保持加载状态。 DLL的生命周期是not与函数调用相关。这意味着 DLL 中具有静态存储的变量在初始 p/invoke 调用之后仍然存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)