none
une série de questions posées par le compilateur qui invoque des fonctions non connues sur les constructeurs RRS feed

  • Question

  • bonjour

    J'ai des diagnostiques générés par le compilateur que je ne sais pas interpréter. ils ont émis sur les constructeurs qui sont vides

    je vous met le Code et les diagnostiques

    		CWManager::CWManager()
    		{
    		}
    
    		CWManager::~CWManager()
    		{
    		}
    

    et les erreurs

    1>E:\usr\Memoria\dev\Common\com\ClasseAlignerManaged.hpp(61): warning C4482: extension non standard utilisée : enum 'enChunkType' utilisé dans le nom qualifié
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3280: 'SpecificationLoader::CWManager::Dispose' : une fonction membre d'un type managé ne peut pas être compilée comme fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3642: 'void SpecificationLoader::CWManager::Dispose(bool)' : impossible d'appeler une fonction avec la convention d'appel __clrcall à partir du code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3175: 'SpecificationLoader::CWManager::Dispose' : impossible d'appeler une méthode de type managé à partir d'une fonction non managée 'SpecificationLoader::CWManager::Dispose'
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'System::GC' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'System::GC::SuppressFinalize' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'this' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3642: 'void System::GC::SuppressFinalize(System::Object ^)' : impossible d'appeler une fonction avec la convention d'appel __clrcall à partir du code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3175: 'System::GC::SuppressFinalize' : impossible d'appeler une méthode de type managé à partir d'une fonction non managée 'SpecificationLoader::CWManager::Dispose'
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'void SpecificationLoader::CWManager::Dispose(void)' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3645: 'SpecificationLoader::CWManager::Dispose' : __clrcall ne peut pas être utilisé sur les fonctions compilées en code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(void)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3280: 'SpecificationLoader::CWManager::Dispose' : une fonction membre d'un type managé ne peut pas être compilée comme fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'SpecificationLoader::CWManager' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'SpecificationLoader::CWManager::~CWManager' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3642: 'SpecificationLoader::CWManager::~CWManager(void)' : impossible d'appeler une fonction avec la convention d'appel __clrcall à partir du code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3175: 'SpecificationLoader::CWManager::~CWManager' : impossible d'appeler une méthode de type managé à partir d'une fonction non managée 'SpecificationLoader::CWManager::Dispose'
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'System::Object' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'System::Object::Finalize' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3642: 'void System::Object::Finalize(void)' : impossible d'appeler une fonction avec la convention d'appel __clrcall à partir du code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3175: 'System::Object::Finalize' : impossible d'appeler une méthode de type managé à partir d'une fonction non managée 'SpecificationLoader::CWManager::Dispose'
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3821: 'void SpecificationLoader::CWManager::Dispose(bool)' : impossible d'utiliser un type ou une fonction managée dans une fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3645: 'SpecificationLoader::CWManager::Dispose' : __clrcall ne peut pas être utilisé sur les fonctions compilées en code natif
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::Dispose(bool)' générée par le compilateur
    1>E:\usr\Memoria\dev\Linguistic\WordReader\com\WordManager.h(60): error C3280: 'SpecificationLoader::CWManager::CWManager (static class constructor)' : une fonction membre d'un type managé ne peut pas être compilée comme fonction non managée
    1>          Le diagnostic s'est produit dans la fonction 'void SpecificationLoader::CWManager::CWManager(void)' générée par le compilateur


    Jean Noël Martin

    lundi 18 novembre 2013 15:06

Réponses

Toutes les réponses

  • Bonjour,

    Est-il possible de voir le contenu complet du fichier WordManager.h ainsi que le fichier .cpp associé ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure


    lundi 18 novembre 2013 17:05
    Modérateur
  • vous l'avez sous les yeux

    /*******************************************************************************
     * NOM: WordManager.h
     * ROLE:
     * HISTORIQUE:
        * 05/05/2001, yab, initial version
    *******************************************************************************/
    #ifndef WORDMANAGER_H
    #define WORDMANAGER_H
    /*_____INCLUDE-FILES__________________________________________________________*/
    /*_____GLOBAL-DEFINE__________________________________________________________*/
    /*_____GLOBAL-TYPES___________________________________________________________*/
    /*_____GLOBAL-DATA____________________________________________________________*/
    /*_____GLOBAL-MACROS__________________________________________________________*/
    /*_____GLOBAL-FUNCTIONS-PROTOTYPES____________________________________________*/
    	enum
    	{
    		START_READER = 1,
    		STOP_READER,
    		OPEN_DOCUMENT,
    		CLOSE_DOCUMENT,
    		INITIALIZE_POINT_BLOC,
    		READ_BLOC,
    		GO_NEXT_BLOC
    	};
    /*_____CLASS-DEFINITION_______________________________________________________*/
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace System::Runtime::InteropServices;
    	namespace Word = Microsoft::Office::Interop::Word;
    
    	public ref class CWManager
    	{
    	public:
    		CWManager::CWManager();
    		CWManager::~CWManager();
    		void CWManager::OnDocumentOpen(void);
    		static Word::Application^ objApplication = gcnew Word::Application;
    		static Word::Document^ objDocument = gcnew Word::Document;
    		static Word::Documents^ objDocuments = objApplication->Documents;
    		static Word::Paragraphs^ objParagraphs;
    		static Word::Paragraph^ objParagraph;
    //		property objParagraph->Format^ ParagraphFormat;
    		erc CWManager::GetNbWords();
    		erc CWManager::StartWordApi();
    		erc CWManager::StopWordApi();
    		erc CWManager::OpenWordDocument(std::wstring wsFullPathName/*, Word::Application^ objApplication, Word::Document^ objDocument, Word::Documents^ objDocuments*/);
    		static void CWManager::StartDocAnalysis( System::ComponentModel::BackgroundWorker^  backgroundWorker1, long ulNbWord, bool bNewDoc/*, Word::Application^ objApplication, Word::Document^ objDocument, Word::Documents^ objDocuments*/);
    		void CWManager::StartCoherenceAssertion( System::ComponentModel::BackgroundWorker^  backgroundWorker1, long ulNbWord );
    		static void CWManager::CloseDocument( System::ComponentModel::BackgroundWorker^  backgroundWorker1, Word::Application^ objApplication, Word::Document^ objDocument, Word::Documents^ objDocuments);
    		erc CWManager::InitializePointBloc(bool & bIsTextEmpty);
    		erc CWManager::ReadBloc(CBloc* pBloc);
    		erc CWManager::GoNextBloc(bool & bIsEndOfText);
    	};
    	
    };
    #endif


    Jean Noël Martin

    lundi 18 novembre 2013 17:52
  • Bonjour,

    Avez-vous essayé de supprimer le destructeur ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    lundi 18 novembre 2013 23:39
    Modérateur
  • J'ai essayé mais ça persiste

    Jean Noël Martin

    mardi 19 novembre 2013 09:08
  • Et ce problème est maintenant bloquant. En fait il manquait la directive #pragma managed dans l'include

    Jean Noël Martin


    • Modifié JeanNoel53 mardi 19 novembre 2013 16:59
    • Marqué comme réponse JeanNoel53 mardi 19 novembre 2013 16:59
    mardi 19 novembre 2013 16:52