我有一个使用COM控制Excel的第三方遗留软件(使用MFC/ c++)。代码很简单:_ApplicationPtr xl;HRESULT hr = xl.CreateInstance(“Excel.Application”);在Excel 2000、2002 (XP)、2003、2007年工作出色;然而,在一台干净的Win7机器上安装Office 2010之后,CreateInstance()调用以“无效的类字符串”(CO_E_CLASSSTRING)失败。我在注册表中快速搜索了一下,找到了Excel。应用程序(或Excel.Application。14 -我假设Excel 2010会是)不存在,所以看起来微软改变了Excel 2010现在通过COM接口公开的方式。我正确吗?有谁能帮我在Excel 2010中使用这个吗?正如我提到的,这是一个较老的应用程序,所以它是用vc++ 6.0构建的,只是使用了很好的老式COM方法来访问Excel。
null
好吧,我算出来了。我使用点击运行下载并安装了Office 2010。我想这种新的交付方法安装后不会创建相同的冗长的注册表项(i.e. Excel.Application, Excel.Application.14) 。因此,我的CreateInstance()调用显然会失败。只要我下载了完整的安装文件(而不是使用点击运行的方式),一切都运行得很好。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容