Visual C#-参考资料>;添加引用&燃气轮机;COM:该列表是如何填充的? 我试图在Visual C++ 2010(Express)中开发一个COM组件,我希望能够从Visual C 2010(Express)程序中使用它。

Visual C#-参考资料>;添加引用&燃气轮机;COM:该列表是如何填充的? 我试图在Visual C++ 2010(Express)中开发一个COM组件,我希望能够从Visual C 2010(Express)程序中使用它。,c#,c++,com,C#,C++,Com,我的COM DLL尚未完成,但是我定义了DllRegisterServer和DllUnregisterServer函数,它们将大量内容写入HKEY_类的根和子键中。其中,我有以下几把钥匙: HKEY_CLASSES_ROOT\My.Components.1\CLSID Default Value: {DB05EA30-0320-4D40-A530-6DEAD03D3850} HKEY_CLASSES_ROOT\CLSID\{DB05EA30-0320-4D40-A530-6DEAD03

我的COM DLL尚未完成,但是我定义了DllRegisterServerDllUnregisterServer函数,它们将大量内容写入HKEY_类的根和子键中。其中,我有以下几把钥匙:

HKEY_CLASSES_ROOT\My.Components.1\CLSID
    Default Value: {DB05EA30-0320-4D40-A530-6DEAD03D3850}

HKEY_CLASSES_ROOT\CLSID\{DB05EA30-0320-4D40-A530-6DEAD03D3850}
    Default Value: My Components
    Sub Key: InprocServer32
        Default Value: Absolute path of the .dll
        Threading Mode: Apartment
    Sub Key: ProgID
        Default Value: My.Components.1
    Sub Key: TypeLib
        Default Value: {DB05EA31-0321-4D41-A531-6DEAD03D3851}
    Sub Key: Version
        Default Value: 1.0

HKEY_CLASSES_ROOT\TypeLib\{DB05EA31-0321-4D41-A531-6DEAD03D3851}
    Sub Key: 1.0
        Sub Key: 0
            Sub Key: win32
                Default Value: Absolute path of the .tlb
Microsoft JScript可以尝试实例化COM对象,但由于工厂不完整,只需输出错误代码DllGetClassObject

另一方面,Visual C#2010(或至少是添加引用…窗口)似乎没有注意到已注册的COM对象的存在,该对象没有显示在列表中。我很清楚,这些对象只是已安装COM对象的子集

COM对象将在什么时候出现?我错过了什么

编辑

我知道“浏览”选项卡,但我的印象是,第一类注册的COM对象应该在不显式搜索它们的情况下显示,但可能不是这样

必须先指定此键的默认值,类型库才能显示在COM选项卡中。它必须包含类型库的描述。样板短语是“AcmeFooTypeLibrary1.0”,其中“Acme”是您的公司名称,“Foo”是服务器或产品名称


使用“浏览”选项卡是我的首选,否则COM选项卡太慢。您将发现:)

在填充列表时,您可以使用Process Monitor跟踪VS执行的注册表访问。有趣的是,我将来可能会尝试此方法。谢谢你的评论,先生,你是对的。非常感谢你的帮助。我模仿了现有条目的结构,但没有注意到版本键上的默认值。你的表现给我留下了深刻的印象。顺便说一下,不需要标志。我仍然无法导入我的对象,我收到一个错误“无法注册ActiveX类型库”,但我知道DLL仍然有问题。如果我能问一下,你推荐什么来学习COM/OLE/ActiveX?我在哪里可以找到COM注册的所有这些详细信息?我所知道的这些详细信息从来没有被详细记录过。不管怎样,大多数COM书籍都已经绝版了。这所学校有很多艰苦的工作,因此是很好的资源。我上过那所学校。
Sub Key: 1.0