如何更改.net dll的guid
How to change guid of .net dll
我目前正在创建c#dll,并在c++应用程序中使用它。在C#dll中,有一个导出类具有唯一的guid。当我使用CoCreateInstance函数创建实例时,内存中只创建了一个实例。我想创建两个或多个c#实例,所以我认为如果我可以更改c#dll的guid,那么c++应用程序可以使用CoCreateInstance创建两个以上的实例。
如何以编程方式更改已部署dll的guid?或者如何在c#dll中创建两个实例?
您使用的是COM,这意味着您应该遵循COM规则。将对象状态放在全局变量中是错误的,并且会导致您观察到的那种问题。
现在,一些全局状态可能是可以接受的,例如存储日志文件的目录。因此,全局变量的做法并没有被彻底禁止。C#不会试图对你进行事后猜测。如果您使用全局变量,C#假设您明智地使用了它们,而不是用于对象状态。但是,由于您确实需要每个对象的状态,因此必须将这些变量更改为成员,而不是全局变量。s
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何更改.net dll的guid
- c++应用程序找不到com dll,因为编译器使用不正确的guid生成.tlh文件
- Windows Phone 7 -使用本机DLL -需要类和接口的GUID