我是关于COM的新手。我想写一个位于vs2008的插件 工具栏(不是工具箱)。
我创建了一个ATL项目。它给了我一些默认代码。所以我可以生成一个DLL。通过这种方式,我可以通过TOOLs->选择工具项 - > COM组件将此插件添加到ToolBox。但我想将其添加到工具栏中。那我该怎么办
我在rgs文件中添加了一些regester信息,如下所示:
HKCU{ NoRemove SOFTWARE {
NoRemove Microsoft
{
NoRemove VisualStudio
{
NoRemove 9.0
{
NoRemove AddIns
{
ForceRemove PiSvr.CalcPi
{
val CommandLineSafe = d '0'
val CommandPreload = d '1'
val Description = s 'Sample Common Add-In'
val FriendlyName = s 'Sample Common Add-In'
val LoadBehavior = d '1'
}
}
}
}
} }}
但是当我启动vs2008时,它告诉我没有支持这样的接口。错误号码:80004002
答案 0 :(得分:1)
加载项连接位于HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\AddIns
下的注册表中,您的脚本看起来是正确的。请注意,您始终可以使用regedit
来检查注册表项是否也存在于注册表中,而不仅仅是在脚本中。
0x80004002
是E_NOINTERFACE
,可能发生的是Visual Studio正在尝试实例化和初始化您的加载项,但它缺少强制接口实现,Visual Studio会中止尝试。< / p>
要解决此问题,请调试您的加载项并检查查询的接口,尤其是。那些你返回错误代码并表明他们缺席的人。