我有一个C ++ ATL COM添加实现了一些引用Excel API的实用程序函数:
void DoSomething(CComPtr<Excel::Range> &masterCell)
{
// ...
CComPtr<Excel::Range> cell = masterCell->Offset[vertical][horizontal];
// ...
}
在为x64编译excel插件时,我遇到了很多虚假错误,例如:
cannot convert from 'Excel::Range' to 'ATL::CComPtr<T>'
然而,当我为Win32编译时没有问题。辅助工具函数不作为excel UDF公开,因此我认为this question不适用,因为该函数没有STDMETHODIMP
部分。
有什么想法吗?
提前致谢。
答案 0 :(得分:2)
CComPtr
接受一个接口作为模板参数,而Range
是dispinterface。您需要CComPtr<Excel::IRange>
。
答案 1 :(得分:0)
卫生署!事实证明我试图在64位版本中引用32位excel安装:
安装64位excel解决了这个问题。