1
5
它的作用和名字完全一样。COM客户机可以要求系统使用简单标识符(CoCreateInstance)创建COM对象。该标识符具有整个计算机的作用域。不同的代码块是由程序员编写的,他们彼此不认识,为不同的公司工作。 名字的问题是人们不善于挑选好名字。一个程序员选择与另一个程序员完全相同的名字的几率很高,在3000英里外的5年前。像“记录”、“数据库”等名字将是流行的选择。很明显,在这个网站上也有很多名为“杰森”或“迈克”的用户。他们不介意,他们在查看个人资料时知道自己的名字。上下文。我不可能找到他们回来,但当他们给我发电子邮件,只有他们的用户名,跟进一个问题与通用主题字符串。 获取名称冲突并创建COM 错误的 目标是灾难性的。程序停止工作是因为它得到了一个完全错误的对象。找出原因很困难,错误信息很糟糕。实际上解决这个问题是不可能的。打电话给程序员B,用最友好的方式问他“选一个不同的名字,有人已经选了你的名字”是行不通的。自动响应是“呼叫程序员A”。 当您使用GUID而不是名称时,这不是问题。它们是全局唯一的ID。相撞的几率在天文上很小。 |
2
1
|
3
1
顾名思义,它是一个标识符,与任何其他标识符的用途相同。正如您所提到的,避免名称冲突是一个用途。另一个优点是它只有128位长(与任意长的名称相比),因此比较两个guid要比比较它们对应的名称快得多。 |
4
0
现在考虑一个问题—任何开发人员都需要引入新接口和类并使它们唯一可识别的能力。这是因为如果你得到一个接口指针,你的程序会把它当作
上面的问题很容易用guid解决。每个开发人员为他引入的每个新接口或类创建一个新的(因此是唯一的)GUID值。这是可靠和方便的(除了guid不是人类可读的)。 |
Cleric · C#运行主动自动化对象-如何源事件? 6 年前 |
Daniël J · 使用GUI制作COM服务器的最佳实践是什么? 6 年前 |
Toponimo · 从Python访问COM方法 6 年前 |
user8666372 · 自动向可用引用添加引用 6 年前 |