大佬教程收集整理的这篇文章主要介绍了c – ATL COM类注册.rgs文件默认值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
HKCR { NoRemove CLSID { ForceRemove {4C6DAD45-64B4-4C55-81C6-4CE125226421} = s 'Test Class' { ForceRemove ProgrAMMable LocalServer32 = s '%MODULE%' { val ServerExecutable = s '%MODULE_RAW%' } TypeLib = s '{EAA173CA-BDBC-463A-8B7A-B010EFA467BC}' Version = s '1.0' } } }
这为CLSID正确创建了注册表项.但是,当尝试从外部调用CoCreateInstance时,我遇到了挂起.
hr = CoCreateInstance( __uuidof(Test),NULL,CLSCTX_ALL,__uuidof(ITest),(void**)&pTest);
在看了几个其他项目的例子后,我注意到他们都有类型的注册表项:
HKEY_CLASSES_ROOT\<MODULE>.<CLASS> HKEY_CLASSES_ROOT\<MODULE>.<CLASS>\CLSID
我调查了这些类的.rgs文件,发现他们的.rgs文件中没有额外的条目.我把它们添加到我的,改为:
HKCR { TestModule.Test = s 'Test Class' { CLSID = s '{4C6DAD45-64B4-4C55-81C6-4CE125226421}' } NoRemove CLSID { ForceRemove {4C6DAD45-64B4-4C55-81C6-4CE125226421} = s 'Test Class' { ForceRemove ProgrAMMable LocalServer32 = s '%MODULE%' { val ServerExecutable = s '%MODULE_RAW%' } TypeLib = s '{EAA173CA-BDBC-463A-8B7A-B010EFA467BC}' Version = s '1.0' } } }
然后,我的CoCreateInstance调用不再挂起,我能够正确检索指向ITest接口的指针.
现在,我的问题是,考虑到上述细节,我如何确保我创建的任何未来类具有正确的.rgs文件格式?在创建类对象时是否有一些我缺少的选项?或者我是否需要为我创建的每个类手动添加上述内容?
以上是大佬教程为你收集整理的c – ATL COM类注册.rgs文件默认值全部内容,希望文章能够帮你解决c – ATL COM类注册.rgs文件默认值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。