2

我必须加载几个 OCX 库才能访问遗留代码。我正在使用 Activator.CreateInstance 创建实例:

var type = Type.GetTypeFromProgID(ProgId);
var comObject = Activator.CreateInstance(type);

不幸的是Activator.CreateInstance似乎每个 ProgId 只创建一个实例,但是我需要具有不同配置的多个实例。

示例:假设我使用的是允许设置值的 OCX:

var instance1 = Create(progId);
Set(instance1, "key", "1");
var value1 = Get(instance1, "key"); // returns 1

var instance2 = Create(progId);
Set(instance2, "key", "2"); 
var value2 = Get(instance2, "key"); // returns 2

var value3 = Get(instance1, "key"); // returns 2

我需要一种方法来多次实例化一个 OCX(相同的 ProgId)控件,而不会只获得一个实例的引用。

4

1 回答 1

0

问题已通过将 OCX 更改为不使用全局变量来解决。谢谢汉斯帕桑特。

于 2011-03-18T09:08:21.487 回答