IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Erreur no suittable method found to override


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut Erreur no suittable method found to override
    Bonjour,
    Je bosse sur des methode abstraite nommé "jevaisappeller" .
    Cette méthode je la définit en c# ,avec un paramétre d'entrée et de sortie.

    Dans la dll c++ cli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     
     
    using namespace System::Runtime::InteropServices;
     
    namespace testmsgbox {
     
    	public ref class CManagee
    	{
    		// TODO: Add your methods for this class here.
    	private:int monentier;
    	public:
    		CManagee()
    		{
    			monentier = 0;
    		}
    		~CManagee(void)
    		{}
    	public:
    		bool fixe(int m)
    		{
    			monentier = m;
    			return true;
    		}
    		bool Show()
    		{
    			//MessageBoxW(NULL, L"Message depuis le langage machine", L"", 0);			
    			char *tmp = new char[10];
    			itoa(monentier, tmp, 10);
    			MessageBoxA(NULL, tmp, "Ca marche !!", 0);
    			delete tmp;
    			return true;
    		}
    		bool showpstring(System::String ^ s)
    		{			
    			char* str2 = (char*)(void*)Marshal::StringToHGlobalAnsi(s);
    			MessageBoxA(NULL, str2, "eps ca mzrche !", 0);
    			//Marshal::FreeHGlobal(str2);
    			return true;
    		}
    		virtual void jevaisappeller(int u,int &o) abstract; //definit dans le c#
    		//virtual void jevaisappeller(int u) abstract; //definit dans le c#
     
     
    		void onteste()
    		{
    			for (int i = 0;i < 100;i++)
    			{
    				int o = i;
    				jevaisappeller(i,o);
    				char tmp[64];
    				itoa(o, tmp, 10);
    				MessageBoxA(NULL, tmp, NULL, MB_ICONWARNING);
    			}
    		}
    	private:
    		bool fprivate()
    		{
    			return false;
    		}
    	};
     
     
    }
    La méthode onteste en c++ appelle la métode "jevaisappeller" en c#. Et ca ne marche pas .

    Class en c#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    namespace usetestmsgbox
    {
         public class CA : CManagee
        {
            public Form1 ee;
            public override void jevaisappeller(int u,out int o) 
            {
                System.Windows.Forms.MessageBox.Show(u.ToString());
                o = u + 4;
            }
           // abstract public  void appellerlecplusplus(int v);
        }
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                CA cm = new CA();
                cm.ee = this;
                cm.fixe(10000);
                cm.Show();
     
                cm.showpstring("truc\n");
                cm.onteste();
     
            }
        }
    }

    Je cherche je cherche et ca ne marche pas.

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut
    Et ca marche.
    en final :
    c#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual void jevaisappeller(int u,int % o) abstract; //
    et c++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public override void jevaisappeller(int u,ref int o)
    Le bug était dans visual studio.
    J'ai fais un REbuild au lieu de build de la dll et puis retirer la dll des references(dans le projet C#) et remis (rereferencer), et ça remarche.
    Je ne sais pas ce qui s'est passer.

    J'utilise Visual Studio 2015 Community.

Discussions similaires

  1. [Débutant] Dispose(bool)': no suitable method found to override
    Par tintine dans le forum C#
    Réponses: 4
    Dernier message: 17/07/2015, 08h58
  2. Erreur "No suitable method found"
    Par stoner dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 26/01/2013, 18h06
  3. erreur : no office executable found!
    Par feasil dans le forum Général Java
    Réponses: 2
    Dernier message: 14/02/2008, 14h17
  4. message d'erreur en java -method nt visible
    Par meclys dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/02/2007, 15h26
  5. Erreur de la méthode FileSearch.Execute
    Par EE dans le forum Access
    Réponses: 21
    Dernier message: 09/05/2006, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo