我可以在C ++ / CLI包装器中加载非托管dll的隔离实例

时间:2012-03-16 06:12:18

标签: c# dll c++-cli wrapper unmanaged

我在C ++ / CLI包装器中有一个非托管DLL(unmangaged.dll)。 unmanaged.dll是控件的子组件,它在屏幕上的几个位置实例化。我每个控件实例都有自己的unmanaged.dll实例(因为每个unmanaged.dll都维持不同的状态)。

有没有办法实例化同一个unmanaged.dll,以便必须完全分离状态? (例如,每个unmanaged.dll实例中的不同设置。)

不幸的是,我在C ++ / CLI包装器中读到的关于unmanaged.dll的一切都是所有调用都是静态的。

由于

1 个答案:

答案 0 :(得分:0)

Windows中没有“进程中本机DLL实例”的概念。只能将一个本机DLL的副本加载到给定的进程中。

你可以:

  • 拥有DLL创建的多个对象实例
  • 将DLL加载到您需要的任意数量的进程中,并使用某种进程间通信(IPC)与主进程进行通信。