locked
toujpors dans la recherche de cohérebnce entre deux exécutables RRS feed

  • Question

  • Bonjour,

    J'ai un problème de compilation dans le code suivant:

    	bool CInterbaseManagerM::GetBit( int row)
    	{
    		bool bVal;
    		System::Int32^ ident;
    		Object^ MinValue;
    		try
    		{
    			MinValue = myReader->GetValue( row);
    			ident = Convert::ToInt32( MinValue);
    			if( ident > 4)
    				bVal = true;
    			else
    				bVal = false;
    		}
    		catch( Exception^ ex)
    		{
    			Display( ex);
    		}
    		return( bVal);
    	}

    je me fait jeter par le compilateur:

    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool operator >(_Interface *,const _com_ptr_t<_InterfacePtr> &)' : impossible de déduire l'argument modèle pour '_Interface *' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\comip.h(957) : voir la déclaration de 'operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool operator >(int,const _com_ptr_t<_IIID> &)' : impossible de déduire l'argument modèle pour 'const _com_ptr_t<_IIID> &' à partir de 'int'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\comip.h(948) : voir la déclaration de 'operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'std::_Boolarray std::operator >(const std::valarray<_Ty> &,const std::valarray<_Ty> &)' : impossible de déduire l'argument modèle pour 'const std::valarray<_Ty> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\valarray(855) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'std::_Boolarray std::operator >(const _Ty &,const std::valarray<_Ty> &)' : impossible de déduire l'argument modèle pour 'const std::valarray<_Ty> &' à partir de 'int'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\valarray(848) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'std::_Boolarray std::operator >(const std::valarray<_Ty> &,const _Ty &)' : impossible de déduire l'argument modèle pour 'const std::valarray<_Ty> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\valarray(841) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::stack<_Ty,_Container> &,const std::stack<_Ty,_Container> &)' : impossible de déduire l'argument modèle pour 'const std::stack<_Ty,_Container> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stack(174) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::queue<_Ty,_Container> &,const std::queue<_Ty,_Container> &)' : impossible de déduire l'argument modèle pour 'const std::queue<_Ty,_Container> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\queue(187) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::vector<_Ty,_Ax> &,const std::vector<_Ty,_Ax> &)' : impossible de déduire l'argument modèle pour 'const std::vector<_Ty,_Ax> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector(1511) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : impossible de déduire l'argument modèle pour 'const std::_Tree<_Traits> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtree(1892) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)' : impossible de déduire l'argument modèle pour 'const std::list<_Ty,_Ax> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\list(1597) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::deque<_Ty,_Alloc> &,const std::deque<_Ty,_Alloc> &)' : impossible de déduire l'argument modèle pour 'const std::deque<_Ty,_Alloc> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\deque(1742) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)' : impossible de déduire l'argument modèle pour 'const std::basic_string<_Elem,_Traits,_Alloc> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(273) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const _Elem *,const std::basic_string<_Elem,_Traits,_Alloc> &)' : impossible de déduire l'argument modèle pour 'const _Elem *' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(263) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::basic_string<_Elem,_Traits,_Alloc> &,const std::basic_string<_Elem,_Traits,_Alloc> &)' : impossible de déduire l'argument modèle pour 'const std::basic_string<_Elem,_Traits,_Alloc> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(253) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)' : impossible de déduire l'argument modèle pour 'const std::move_iterator<_RanIt> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator(380) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::unique_ptr<_Ty,_Dx> &,const std::unique_ptr<_Ty2,_Dx2> &)' : impossible de déduire l'argument modèle pour 'const std::unique_ptr<_Ty,_Dx> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory(2602) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : impossible de déduire l'argument modèle pour 'const std::reverse_iterator<_RanIt> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(1376) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::_Revranit<_RanIt,_Base> &,const std::_Revranit<_RanIt2,_Base2> &)' : impossible de déduire l'argument modèle pour 'const std::_Revranit<_RanIt,_Base> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility(1202) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2784: 'bool std::operator >(const std::pair<_Ty1,_Ty2> &,const std::pair<_Ty1,_Ty2> &)' : impossible de déduire l'argument modèle pour 'const std::pair<_Ty1,_Ty2> &' à partir de 'System::Int32 ^'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility(327) : voir la déclaration de 'std::operator >'
    1>..\..\..\DBMS\DBMSManager\src\InterbaseManagerM.cpp(546): error C2676: '>' binaire : 'System::Int32 ^' ne définit pas cet opérateur ou une conversion vers un type acceptable pour l'opérateur prédéfini
    


    Jean Noël Martin

    mercredi 25 mai 2016 15:48

Réponses

  • C'est quoi la ligne 546 ???

    "4" est un int C++ pas un System::Int32^.

    Mettez vos valeurs en dures dans des constantes. C'est plus propre et elles seront correctement typées.


    Paul Bacelar, Ex - MVP VC++

    jeudi 26 mai 2016 12:39
    Modérateur

Toutes les réponses