gpt4 book ai didi

c# - C# 什么时候释放 C++ DLL?

转载 作者:行者123 更新时间:2023-11-28 03:09:29 27 4
gpt4 key购买 nike

我有一个加载到 C# Windows 窗体应用程序中的 C++ DLL。我正在尝试使用 dll 创建一个 opengl 上下文,并在卸载/重新加载 dll 时保留它以供在托管应用程序中使用。我正在使用 LoadLibrary 和 FreeLibrary 加载 DLL。

这可能吗?如果 C++ DLL 加载 opengl DLL,如果我在加载它的 DLL 上调用 FreeLibrary,opengl dll 会被卸载吗?将由 C++ DLL 创建的非托管对象存储在托管代码中并在该 DLL 的新实例中重用它们是否安全?

最佳答案

如果 OpenGL dl 也通过加载库调用加载,那么卸载 DLL 不会影响它,除非您专门卸载它。如果它是由系统自动加载的,那么当您卸载 C++ dll 时它将被卸载。只要未卸载 OpenGl 并且在创建 OpenGL 上下文时使用的窗口句柄仍然有效,您就可以使用 OpenGL 上下文。

但我想知道您为什么不直接从您的应用程序调用 OpenGL dll?

关于c# - C# 什么时候释放 C++ DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18852499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com