如何更改.net DLL的guid

时间:2015-03-26 05:54:56

标签: c# c++ .net dll guid

我目前创建了c#dll并在c ++应用程序中使用它。 在C#dll中,有一个具有唯一guid的导出类。 当我使用CoCreateInstance函数创建实例时,在内存中只创建一个实例。 我想创建两个或更多c#实例,所以我想如果我可以改变c#dll的guid,那么c ++应用程序可以使用CoCreateInstance创建两个或更多实例。

如何以编程方式更改已部署dll的guid? 或者如何在c#dll中创建两个实例?

1 个答案:

答案 0 :(得分:0)

您正在使用COM,这意味着您应该按照COM规则进行游戏。将对象状态放在全局变量中是错误的,并且会导致您观察到的问题。

现在某些全球状态可能是可接受的,例如存储日志文件的目录。因此,全局变量的实践并未被彻底禁止。 C#并没有试图猜测你。如果您使用全局变量,C#假定您明智地使用它们而不是对象状态。但由于您确实需要每个对象的状态,因此必须将这些变量更改为成员,而不是global.s