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

Dev-C++ Discussion :

Remédier aux décorations sous Dev C++


Sujet :

Dev-C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Remédier aux décorations sous Dev C++
    Salut à tous !

    Comme beaucoup je pense, j'ai quelques problèmes avec les décorations. Je cherche à créer une DLL, pour l'utiliser avec Visual Basic. Pour cela j'utilise Dev C++, mais je suis complétement incapable de supprimer les décorations que le compilateur génére (que ce soit en liant un fichier DEF ou en entrant des commandes dans l'éditeur de liens).
    Si vous avez des suggestions, voire même des solutions, n'hésitez pas à m'en faire part !
    Merci par avance

    Tchô
    AnteManoclis

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Ben attends que Noel soit passé, les décorations partiront d'elles mêmes

    Bon plus sérieusement quel est le prototype de ta fonction ? Si c'est une fonction C++ tu ne peux pas faire grand chose, si c'est une fonction C un petit extern "C" et ça devrait aller mieux (ou compilation en C).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    L'exemple sur lequel je travail est celui-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #define export __stdcall __declspec(dllexport)
     
    export short Somme(short *a,short *b)
    { return *a+*b; }
    L'ennui c'est que j'ai besoin d'utiliser les classes, et je me suis donc porté sur le C++, maintenant, s'il y a moyen d'utiliser les classes en C, j'hésite pas un instant

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le prototype des fonctions que tu vas exporter ne comporteront pas de classe ou autre spécificité du C++ j'imagine (sinon comment manipuler ça en VB ?), donc tu peux sûrement toujours t'en tirer avec un extern "C" :

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Le code suivant fonctionne, et peut être appelé par VB, mais il faut déclarer la fonciton avec les décorations, et si j'pouvais éviter...

    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
    #define export __stdcall __declspec(dllexport)
     
    //Classes:
    //////////
    class D3DCOLORVALUE
    {public:float r;float v;float b;float a;};
     
    //Fonctions:
    ////////////
     
     
    export D3DCOLORVALUE DxColor(float *r,float *v,float *b,float *a)
    {
      D3DCOLORVALUE DxC;
      DxC.r=*r;
      DxC.v=*v;
      DxC.b=*b;
      DxC.a=*a;
      return DxC;
    }

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    D3DCOLORVALUE est une structure, tu peux utiliser un extern "C" pour exporter cette fonction. Les trucs à éviter que je voyais c'était surtout les classes avec héritage, méthodes virtuelles, etc... Enfin je ne suis pas un pro de ce genre de choses c'était juste un avis .

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Okky dukky, l'ennui que j'ai avec le extern "C" c'est le passage d'arguments qui ne fonctionne pas avec VB mais ce problème ne se pose pas avec __stdcall, donc en somme, il ne me reste plus qu'à utiliser les structures, seulement... (et oui, y'a encore un truc qui coince...) j'arrive même pas à compiler une structure de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #define export extern "C" __declspec(dllexport)
     
    struct D3DCOLORVALUE
    {
      float r;
      float g;
      float b;
      float a;
    }
     
    struct D3DCOLORVALUE DxColor(D3DCOLORVALUE *Dxc) //C'est là  que ça coince
    { return DxC; }

    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Attention export est un mot clé réservé du C++. Comme c'est un #define, met le en majuscule.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Okky, c'est bon à savoir

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Arf... j'ai essayé en évitant d'utiliser le "export", mais ça coince toujours... l'un de vous saurait exporter une structure en C ?

Discussions similaires

  1. wcout sous dev-c++ : Comment l'activer?
    Par Médinoc dans le forum Dev-C++
    Réponses: 3
    Dernier message: 03/10/2005, 14h37
  2. Peut-on faire appel aux interruptions sous Windows ?
    Par lorenfar dans le forum Assembleur
    Réponses: 10
    Dernier message: 09/05/2005, 19h42
  3. Problème d'include sous Dev-c++ 4.9.8.0
    Par Argonz dans le forum Dev-C++
    Réponses: 16
    Dernier message: 20/11/2003, 18h36
  4. Couleur sous DEV C++ ou Turbo C ++
    Par bootix dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 19/12/2002, 10h28
  5. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 15h55

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