【发布时间】:2011-10-17 22:44:40
【问题描述】:
我只是没有关注问题所在,我收到此错误消息:
error C2593: 'operator ==' is ambiguous
在我的项目中使用这行代码时,该源代码在 VC6 中编译得很好,但在我的 VC2010 中,我收到了不允许编译的错误消息。来源如下。
if( m_cardThreePlace == 0 ) {
// generate player cards
OnCardGenerate( 3 );
OnWhatPlayerCardsActive( 3 );
// set card for placement
m_cardThreePlace = m_cardPlaceTemp;
// clear placement temp
m_cardPlaceTemp = _T("");
}
声明如下:
CString m_cardThreePlace;
m_cardThreePlace = _T("");
输出窗口显示如下:
BlackJack.cpp(239): 错误 C2593: 'operator ==' 不明确 C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\cstringt.h(2551): 可能是 'bool ATL::CStringT::operator ==(const ATL::CStringT &,char) throw() ' [使用参数相关查找找到] 和 [ 基本类型=字符, StringTraits=StrTraitMFC ] C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\cstringt.h(2400): 或 'bool ATL::CStringT::operator ==(const ATL::CStringT &,const wchar_t *) throw( ...)' [使用参数相关查找找到] 和 [ 基本类型=字符, StringTraits=StrTraitMFC ] C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\cstringt.h(2385): 或 'bool ATL::CStringT::operator ==(const ATL::CStringT &,const char *) throw( )' [使用参数相关查找找到] 和 [ 基本类型=字符, StringTraits=StrTraitMFC ] 尝试匹配参数列表 '(CString, int)'
【问题讨论】:
-
m_cardThreePlace 的声明是什么样的?
-
你的输出窗口有什么东西吗?这应该会显示完整的编译日志,包括一些与错误相关的信息。
标签: visual-studio