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

MFC Discussion :

--> int�rop�rabilit� c++ c#


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut [RESOLU] --> int�rop�rabilit� c++ c#
    Bonjour,
    je voudrais savoir comment il est possible d'utiliser une bibliotheque de classe �crite en c#.net dans une application vs c++.net.
    je sais que c possible mais je ne sais pas comment.
    merci
    fabien

  2. #2
    Membre actif

    Inscrit en
    Mars 2002
    Messages
    83
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 83
    Par d�faut Re
    De la m�me mani�re que tu integres tes librairies dans un projet C#. En fait avec .NET c'est un peu l'aspect qui change ( A savoir le language que tu utilises importe peu) mais au final le r�sultat est le m�me. Puisque le compilateur g�nerera dans tous les cas un CLR (Pseudo langage de base).

    Donc ex :

    Un projet C# : ClassLibrary1
    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
     
    using System;
     
    namespace ClassLibrary1
    {
    	/// <summary>
    	/// Description résumée de Class1.
    	/// </summary>
    	public class Class1
    	{
    		public Class1()
    		{
    		}
     
    		public void Test () 
    		{
    			System.Console.WriteLine( "Class1::Test [Calling]" );
    		}
    	}
    }

    Un projet C++ : ClassTest
    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
     
    #include "stdafx.h"
     
    #using <mscorlib.dll>
    #using <ClassLibrary1.dll>
    #include <tchar.h>
    #include <stdio.h>
     
    using namespace System;
     
     
    // Il s'agit du point d'entrée pour cette application
    int _tmain(void)
    {
      Console::WriteLine(S"Hello World");
     
    	ClassLibrary1::Class1 * pClasse1 = new ClassLibrary1::Class1();
    	pClasse1->Test();
    	return 0;
    }

    Important :
    Pour que �a ne plante pas, il faut imperativement que : La dll "ClassLibrary1.dll" soit :
    - dans le m�me r�pertoire que l'ex�cutable
    - Ou dans le repertoire FrameWork (ex:C:\WINNT\Microsoft.NET\Framework\v1.0.3705)
    - Ou dans le rep System32.

    Enfin dans un chemin valide d�fini dans le path de WIndows. Pour quelle soit link�e au d�part.


    Il y a une petite subtilit� pour le destructeur En C# il faut utilisr la m�thode finalize. Et de plus force ton projet � utiliser le mode managed avec


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    le probleme c que le projet n'est pas manag�; cela pose-t-il un gros probl�me?
    Je n'ai pas compris ce que tu voulais dire pour la methode finalize?cela ne concerne que le code c# ?
    merci
    fabien

  4. #4
    Membre actif

    Inscrit en
    Mars 2002
    Messages
    83
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 83
    Par d�faut Re
    Je pense que oui. Renseignes toi sur le forum D�veloppement DotNet.
    http://213.186.40.31/forums/viewforum.php?f=49
    Ils(elles) sont beaucoup plus califi�(es)

    sinon :

    http://www.dotnet-fr.org/documents/andymc_csharp_faq_fr.html#3.5

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    Je te remercie grandement pour ton aide
    Cordialement
    Fabien

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    J' ai un autre petit probleme, qui vient sans doute du fait que mon code c++ ne soit pas manag�, lorsque j'ajoute les directive suivante :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    #using <mscorlib.dll> 
    #using <ClassLibrary1.dll>
    l'erreur est la suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    fatal error C1190: le code cible managé requiert '#using <mscorlib.dll>' et l'option '/clr'
    Je ne sais pas ce qu'est l'option /clr
    fabien

  7. #7
    Membre actif

    Inscrit en
    Mars 2002
    Messages
    83
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 83
    Par d�faut Re
    Pour d�finir cette option du compilateur dans l'environnement de d�veloppement Visual Studio

    Ouvrez la bo�te de dialogue Pages de propri�t�s du projet. Pour plus d'informations, consultez D�finition des propri�t�s de projets Visual C++.
    Cliquez sur le dossier Propri�t�s de configuration.
    Cliquez sur la page de propri�t�s G�n�ral.
    Modifiez la propri�t� Compilation comme code manag�.
    Pour obtenir des informations sur la fa�on d'indiquer que vous voulez cr�er un module, consultez /NOASSEMBLY.
    apr�s utilises
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    #pragma managed
    #pragma unmanaged
    Pour d�sactiv� partiellement le management.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    j'y suis presque arriv�,
    compilation + edition de lien ok, mais a l'execution ca plante si je fais simplement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     
    	ClassLibrary1::Class1* pClass1;
    	pClass1 = new ClassLibrary1::Class1() ;
    par contre l'editeur reconnait tres bien la classe et lorsque je fait simplement
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    ClassLibrary1::Class1* pClass1;
    //   pClass1 = new ClassLibrary1::Class1() ;
    La ca marche .
    Le message d'erreur qu'il me donne est :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    ne exception non gérée du type 'System.IO.FileNotFoundException' s'est produite dans Module inconnu.
     
    Informations supplémentaires : Le fichier ou l'assembly nommé ClassLibrary1, ou l'une de ses dépendances, est introuvable.
    Je sens que j'y suis presque ....
    Je suis sur que tu vas pouvoir m'aider

  9. #9
    mat.M
    Invit�(e)
    Par d�faut
    La ca marche .
    Le message d'erreur qu'il me donne est :
    Comme l'a indiqu� � juste titre Zebiloute , as-tu d�clar� les pragma managed et unmanaged avant le bloc de code posant probl�me ??

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    oui je l'ai bien fait,
    le pire c que j'ai fait foonction� l'exemple de zebiloute !
    Mais avec mon code et les #pragma en plus ca ne marche pas !
    Peut �tre le probl�me vient-il du fait que le projet est bas� sur les MFC ??
    Cela m'embete franchement
    fabien

  11. #11
    Membre actif

    Inscrit en
    Mars 2002
    Messages
    83
    D�tails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 83
    Par d�faut Re
    Est-ce que tu as v�rifi� ce point : Par ce que g�n�ralement ce genre de message appar�t quand le framework ne peut pas acc�der � une dll.


    Important :
    Pour que �a ne plante pas, il faut imperativement que : La dll "ClassLibrary1.dll" soit :
    - dans le m�me r�pertoire que l'ex�cutable
    - Ou dans le repertoire FrameWork (ex:C:\WINNT\Microsoft.NET\Framework\v1.0.3705)
    - Ou dans le rep System32.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    34
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 34
    Par d�faut
    Yeappeah , je sui vraiment un co*,
    j'avais bien mis la dll dans le repertoire de source,(compilation edition de lien ok), mais pas dans le r�pertoire de l'executable.
    C bon ca marche tres bien.
    Je te remercie bcp zebiloute ainsi que tout les autres qui m'ont aider.
    Tu m'aides a sauver la face devant mes boss
    fabien

    PS : Peut-etre faudrait-t-il mettre ce sujet dans la FAQ pour permettre a d'autre utilisateur d'en profiter.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Int�rop�rabilit� C et C#
    Par oxa dans le forum C++/CLI
    R�ponses: 4
    Dernier message: 18/12/2006, 13h50
  2. Int�rop�rabilit� entre un client java et serveur dot net
    Par miss_2000 dans le forum Services Web
    R�ponses: 1
    Dernier message: 01/12/2006, 10h54

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