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++/CLI Discussion :

static library et csharp


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut static library et csharp
    Bonjour,

    J'ai une librairie directement inclue dans mon projet
    qui sert de wrapper (c++/cli) pour l'utilisation d'une librairie
    c++.
    J'ouvlais savoir s'il était possible de l'utiliser en static lib
    et donc par conséquent de l'einclure dans mon exe.
    Lors de la compil,
    il n'arrive pas à trouver mon namespace.
    L'erreur est la suivante Cs0246 et j'ai checké dans
    la MSDN, il faut référencer le projet (dll etc..).
    Mais je ne peux visiblement sélectionner un .lib.


    Qq'un peut me confirmer ça ?

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je crois que le concept de librairie statique n'existe pas en .NET. Il faut que tu compiles ton wrapper en DLL et que tu le références dans ton projet

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    c'est bien ca, tu peux regarder dans mon tutoriel pour plus d'infos http://nico-pyright.developpez.com/t...c2005/interop/

  4. #4
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut
    Bonjour,

    Je m'inserre dans le sujet car il m'interrese.
    Bon, j'ai lu le tuto http://nico-pyright.developpez.com/t...c2005/interop/ qui est ma foi très fort ! Mais je ne suis malheureusement pas à la hauteur et du quoi voici ma question :

    Je souhaites écrire un wrapper C++ .Net pour la librairie mathématique GMP (http://gmplib.org) afin d'utiliser GMP depuis C#.
    J'arrive à passer des types natifs (int, double, ...), par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    GmpBigInt::GmpBigInt(int iVal)
    {
    	mpzPtr_t bitPtr = new __mpz_struct;
    	mpzPtr = (unsigned long)bitPtr;
    	GMP::mpz_init_set_si(bitPtr, iVal);
    }
    Mais je n'arrive pas à trouver la syntaxe et la méthode pour passer des chaînes. La déclaration de fonction C de la librairie est :
    int mpz_init_set_str ((mpz_ptr, __gmp_const char *, int));

    Voici, avec du code complètement faux, ce que je souhaiterai obtenir pour appeler cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    GmpBigInt::GmpBigInt(String ^ str)
    {
       int str_length = ??? ; // Comment obtenir la longeur de la chaine ?
       char * charsStr = new char[ str_length ];
       str.ToByteArray( charsStr ); // C'est faux, mais comment faire ?
       GMP::mpz_init_set_str(bitPtr, charsStr);
       delete charsStr ;
    }
    En fait les chaînes qui seront passée contiennent de simples caractères : [0-9A-F] et du coup je me demande entre autre comment passer du monde Unicode au monde des simples char ?

    Merci pour vos lumières
    Cyrille.

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    salut,

    tu peux regarder dans la faq C++/CLI pour les conversions de chaine http://dotnet.developpez.com/faq/cpp...age=conversion

  6. #6
    Membre régulier Avatar de cyrille37
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 155
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par nico-pyright(c) Voir le message
    salut,

    tu peux regarder dans la faq C++/CLI pour les conversions de chaine http://dotnet.developpez.com/faq/cpp...age=conversion
    Oups, désolé de ne pas avoir lu d'abord la FAQ ! Mea culpa ...
    Ca fonctionne très bien, merci !

    En attendant ta réponse j'avais codé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    GmpBigInt::GmpBigInt(String ^ str )
    {
    	int n = str->Length ;
    	char * strChars = new char[n];
    	for(int i=0; i<n; i++ )
    	{
    		strChars[i] = str[i];
    	}
    et ça fonctionnait. Mais c'était surement bien moins performant ;-)

    Merci
    Cyrille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/01/2010, 22h51
  2. [iPhone SDK] Ressource dans une static library
    Par dim971 dans le forum Apple
    Réponses: 2
    Dernier message: 28/01/2009, 16h29
  3. static library et inter dépendance
    Par le-roy_a dans le forum C++
    Réponses: 1
    Dernier message: 27/07/2007, 16h32
  4. [visual studio 6] De Static Library à Dynamic Library
    Par mambo dans le forum Visual C++
    Réponses: 2
    Dernier message: 30/05/2007, 15h33

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