【发布时间】:2013-10-06 06:14:50
【问题描述】:
我正在尝试使用 CTI Toolkit 4.03 在 Visual Studio 2008 中构建 CTI 连接器解决方案。我有一个错误
Error 1 error C2259: 'ATL::CComObject<Base>' : cannot instantiate abstract class c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h 1801 while compiling
我的代码是
#include "stdafx.h"
#include "MyAdapterBase.h"
STDMETHODIMP CMyAdapterBase::GetAdapterName(BSTR* bsName)
{
bsName = SysAllocString(L"My Sample CTI Adapter");
return S_OK;
}
STDMETHODIMP CMyAdapterBase::GetAdapterVersion(BSTR bsName)
{
bsName = SysAllocString(L"1.0 Candidate 2");
return S_OK;
}
STDMETHODIMP CMyAdapterBase::UIAction(BSTR message){
{
return S_OK;
}
void CMyAdapterBase::SendUIRefreshEvent(_bstr_t xml)
{
CCTILogger::Log(LOGLEVEL_HIGH,"Sending XML (len %d): %s",xml.length(),
(wchar_t)xml);
_ISalesforceCTIAdapterEvents_UIRefresh(xml);
}
【问题讨论】:
-
您应该向我们展示有问题的代码...您提供的信息越多,您得到的答案就越有用。
-
问题是因为您在 COM 接口中有一些方法未在您的 COM 类中实现。最好把接口定义和COM类定义贴出来。
-
贴出的代码 sn-p 无关紧要。发布完整的错误日志,并注意它应该将您更准确地带到您剪切的片段上的源代码有问题的位置。我的猜测是您正在尝试使用 COM 类的静态或堆栈分配实例,而您应该使用
CComObject<...>::CreateInstace创建
标签: c++ visual-studio visual-c++ com atl