使用VS2010建立了一个Atl项目,添加了一个Atl控件类X,编译测试都成功,可是生成的这个控件类在“插入ActiveX控件”对话框里没有找到,于是和Vs2005对照了一下,发现Vs2010的控件Rgs文件和Vs2005的不一样。两个版本的RGS文件对照如下列出的,我试着按Vs2005的样子修改了Vs2010的Rgs,控件可以出现在了“插入ActiveX控件”对话框了。问题是Vs2010是因为“有问题”呢,还是说没有必要像Vs2005那样了?按我的理解应该是Vs2010搞错了,但为什么会出这样的低级问题呢,难道以后再建立Atl都要手动的来修改一下?
大侠们怎么看这个问题?
Vs2005中RGS文本原文:
--------------------------------------------------
HKCR
{
ATL1.X.1 = s 'X Class'
{
CLSID = s '{CEDF8EC7-F16B-49BE-B61C-B90EE2E7E61A}'
}
ATL1.X = s 'X Class'
{
CLSID = s '{CEDF8EC7-F16B-49BE-B61C-B90EE2E7E61A}'
CurVer = s 'ATL1.X.1'
}
NoRemove CLSID
{
ForceRemove {CEDF8EC7-F16B-49BE-B61C-B90EE2E7E61A} = s 'X Class  aaaaaa'
{
ProgID = s 'ATL1.X.1'
VersionIndependentProgID = s 'ATL1.X'
ForceRemove 'Programmable'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
val AppID = s '%APPID%'
ForceRemove 'Control'
ForceRemove 'ToolboxBitmap32' = s '%MODULE%, 102'
'MiscStatus' = s '0'
{
    '1' = s '%OLEMISC%'
}
'TypeLib' = s '{87608F30-DDCA-4EA8-8E0E-5810D538619A}'
'Version' = s '1.0'
}
}
}VS2010中的RGS文本原文:
-----------------------------------------------
HKCR
{
NoRemove CLSID
{
ForceRemove {0963A586-DB43-42B5-8270-E88C00AC5FD1} = s 'X Class'
{
ForceRemove Programmable
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
ForceRemove Control
ForceRemove 'ToolboxBitmap32' = s '%MODULE%, 108'
MiscStatus = s '0'
{
    '1' = s '%OLEMISC%'
}
TypeLib = s '{C8470955-C099-4ED0-BF9D-119D0BA7CE57}'
Version = s '1.0'
}
}
}