在测试Excel相关操作的时候报这个错,该怎么解决阿?
我定义了一个TExcelApplication的指针ea
然后在一个按钮点击事件中写了如下代码:
ea->Connect();
ea->Visible=true;
...
...
然后报错:[C++ Error] Unit1.cpp(37): E2015 Ambiguity between
'TOLEBOOL::operator bool() const'
and 'TOLEBOOL::operator short() const'
我也知道ea->Visible是TOLEBOOL类的,里面的定义确实有重载的同名不同意(一个单字节,一个双字节的),但是我该怎么写这一句避免歧义呢?
TOLEBOOL的定义如下:
class TOLEBOOL
{
public:
TOLEBOOL(bool flag = false) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(VARIANT_BOOL flag) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(int flag) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(const TOLEBOOL& src) : m_VariantBool(src.m_VariantBool) {}
TOLEBOOL& operator=(const TOLEBOOL& src)
{
m_VariantBool = src.m_VariantBool;
return *this;
}
TOLEBOOL& operator=(bool flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
TOLEBOOL& operator=(VARIANT_BOOL flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
TOLEBOOL& operator=(int flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
bool operator==(bool val) { return val ? (m_VariantBool != VARIANT_FALSE) : (m_VariantBool == VARIANT_FALSE); }
bool operator==(VARIANT_BOOL val) { return m_VariantBool == val; }
operator bool () const { return m_VariantBool != VARIANT_FALSE; }
operator VARIANT_BOOL () const { return (m_VariantBool != VARIANT_FALSE) ? VARIANT_TRUE : VARIANT_FALSE; }
protected:
VARIANT_BOOL m_VariantBool;
};
然后在一个按钮点击事件中写了如下代码:
ea->Connect();
ea->Visible=true;
...
...
然后报错:[C++ Error] Unit1.cpp(37): E2015 Ambiguity between
'TOLEBOOL::operator bool() const'
and 'TOLEBOOL::operator short() const'
我也知道ea->Visible是TOLEBOOL类的,里面的定义确实有重载的同名不同意(一个单字节,一个双字节的),但是我该怎么写这一句避免歧义呢?
TOLEBOOL的定义如下:
class TOLEBOOL
{
public:
TOLEBOOL(bool flag = false) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(VARIANT_BOOL flag) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(int flag) : m_VariantBool(flag ? VARIANT_TRUE : VARIANT_FALSE) {}
TOLEBOOL(const TOLEBOOL& src) : m_VariantBool(src.m_VariantBool) {}
TOLEBOOL& operator=(const TOLEBOOL& src)
{
m_VariantBool = src.m_VariantBool;
return *this;
}
TOLEBOOL& operator=(bool flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
TOLEBOOL& operator=(VARIANT_BOOL flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
TOLEBOOL& operator=(int flag)
{
m_VariantBool = flag ? VARIANT_TRUE : VARIANT_FALSE;
return *this;
}
bool operator==(bool val) { return val ? (m_VariantBool != VARIANT_FALSE) : (m_VariantBool == VARIANT_FALSE); }
bool operator==(VARIANT_BOOL val) { return m_VariantBool == val; }
operator bool () const { return m_VariantBool != VARIANT_FALSE; }
operator VARIANT_BOOL () const { return (m_VariantBool != VARIANT_FALSE) ? VARIANT_TRUE : VARIANT_FALSE; }
protected:
VARIANT_BOOL m_VariantBool;
};
...全文
相关推荐
Excel导入导出测试程序,测试通过
标题中的“Excel导入导出测试程序,测试通过”意味着这是一个专门设计用于处理Excel文件导入和导出功能的软件程序。程序已经完成了相应的测试,并且所有功能都已通过验证,能够正常工作。
Labview读写Excel报表示例程序
以下将详细阐述这两个操作在LabVIEW 2021中的实现方式及其相关的知识点。1.
C语言操作excel
**错误处理**:编写测试函数时,应确保包含适当的错误处理机制,如检查内存分配失败、文件打开失败等情况。9. **性能优化**:大量数据操作时,考虑性能优化,避免不必要的内存开销和磁盘I/O。10.
Tcl操作Excel
Tcl通过tcom库来实现对Excel的操作,以下将详细介绍如何在Tcl中进行Excel的自动化测试。
高二计算机学业水平测试——excel操作题.pdf
在准备高二计算机学业水平测试时,重点应放在理解和掌握Excel的基础操作,如数据输入、公式计算、数据引用、格式设置、工作表操作、图表使用以及数据筛选和排序等。


VCL组件使用和开发
