注册COM类的最大长度是多少?

时间:2010-06-25 16:07:24

标签: com assemblies registry com+

当对象添加到Windows注册表时,它们会显示如下:

MyNamespace.MyType

我似乎记得在尝试为COM注册时,遇到了我的命名空间和类名太长的问题。在Windows或COM +中注册类是否存在最大长度限制?

3 个答案:

答案 0 :(得分:4)

  • 不超过39个字符。
  • 除一个或多个句点外,不包含标点符号(包括下划线)。
  • 不是以数字开头。
  • 与任何OLE 1应用程序的类名称不同,包括同一应用程序的OLE 1版本(如果有)。*

<强> source = MSDN

答案 1 :(得分:2)

注册COM组件的主要方法是使用CLSID,这是一个固定大小为16字节的数字。一个GUID。您可以发布ProgID,这对需要使用后期绑定的COM客户端很有用。就像脚本语言一样。

我不知道ProgID是否存在长度限制,COM基础结构中没有定义。也许脚本语言有一个。我知道你使用的是VB6,根本不需要ProgID。它更喜欢早期绑定(新的ClassName,而不是CreateObject)。这是一个好主意,因为后期绑定呼叫的速度要慢大约10,000倍。

Anyhoo,如果你想指定一个ProgId,那么使用<ProgId>属性。正常格式是AppName.ClassName,应该很少测试任何类型的长度限制。

答案 2 :(得分:2)

说到“程序化ID”的随机限制......

---------------------------
Microsoft Visual Basic
---------------------------
Programmatic ID string too long '<<project_name>>.<<control_name>>'.
The Programmatic ID must be 39 characters or less.
---------------------------
OK   Help   
---------------------------