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 :

Un vrai débutant


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut Un vrai débutant
    Bonjour à tous,

    Je suis assez bien rôdé sous Delphi, langage avec lequel j'ai développé une DLL que souhaite utiliser un développeur en VC++

    Il me faut donc en C++ déclarer constantes variables, types et appel de fonctions de la DLL...

    Un coup de main serait bien venu.

    J'ai commencé sous VC++ 2008 en déclarant une unité header que j'ai commencé à rédiger comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static const int NREFL = 36;
     
    typedef bool TPeekBoolVec[];
    typedef TPeekBoolVec TPeekBoolTab[];
    typedef float TPeekSingleVec[NREFL];
    Je ne doute pas que j'ai du écrire une monstruosité. Comment vérifier la syntaxe ? Comment la compiler ?

    Autant de question pour lesquelles je n'ai pas de réponse...

    Quelqu'un peut-il m'aider ?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je n'ai pas compris le rapport entre ton code et ce que tu souhaites faire.

    Pour utiliser ta DLL, il y a deux façons:
    • La façon "implicite", qui nécessite une bibliothèque statique d'importation (fichier .lib) générée par le même outil que la DLL. Si tu n'en as pas, c'est mort de ce côté-ci
    • La façon "explicite", avec des fonctions comme LoadLibrary() et GetProcAddress(). Pour ça, tu dois typiquement déclarer des types de pointeurs de fonction dans un fichier d'en-tête C.


    Par exemple, si ta DLL expose une fonction prenant en paramètre deux entiers 32 bits par valeur, ta déclaration de type devra ressembler à ceci:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef void (__stdcall * PMaFonction)(int, int);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par colorid Voir le message
    Bonjour à tous,
    Bonjour,
    Citation Envoyé par colorid Voir le message
    Je ne doute pas que j'ai du écrire une monstruosité.
    Je te confirme

    Citation Envoyé par colorid Voir le message
    Comment vérifier la syntaxe ? Comment la compiler ?
    Un compilateur vérifie assez bien les syntaxes en général...
    Citation Envoyé par colorid Voir le message
    Quelqu'un peut-il m'aider ?
    Vu que tu débutes de zéro, je te conseille de commencer par consulter les tutoriels, éventuellement de t'aider d'un livre, et de te procurer un compilateur.
    Sans ces premières étapes, cela reviendrait à te faire un cours particulier sur le forum...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut Ok pour le tutoriel et la compilateur
    Bonjour,

    J'ai bien entendu un compilateur puisque j'ai déclaré que j'avais VC++ 2008.

    Pour le tutoriel je fais des aller et retour sur le NET pour connaitre la syntaxe de ce que j'ai déjà déclaré en Delphi.

    Ce dont j'ai besoin c'est savoir comment avec VC++ je peux vérifier mes syntaxes, j'ai créé un header mais à la compilation il ne le compile pas, comment obliger le compilateur VC++ à compiler le Header que j'ai écrit ?

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu dois compiler un fichier source C ou C++ qui inclut ce header.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par colorid Voir le message
    Bonjour,

    J'ai bien entendu un compilateur puisque j'ai déclaré que j'avais VC++ 2008.

    Pour le tutoriel je fais des aller et retour sur le NET pour connaitre la syntaxe de ce que j'ai déjà déclaré en Delphi.

    Ce dont j'ai besoin c'est savoir comment avec VC++ je peux vérifier mes syntaxes, j'ai créé un header mais à la compilation il ne le compile pas, comment obliger le compilateur VC++ à compiler le Header que j'ai écrit ?
    Et bien, c'est le compilateur en te remontant des erreurs qui t'indique où sont tes erreurs de syntaxe.
    Si on part de ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static const int NREFL = 36;
     
    typedef bool TPeekBoolVec[];
    typedef TPeekBoolVec TPeekBoolTab[];
    typedef float TPeekSingleVec[NREFL];
    Le compilateur te dit :
    error C2087: 'TPeekBoolTab' : missing subscript
    Ce qui veut dire que tu ne peux déclarer un tableau sans donner sa dimension.

    Maintenant, je vois que tu veux faire des tableau. En C++, on privilégie l'usage de conteneur (std::vector par exemple) pour ce genre de chose. C'est pourquoi, je t'invite à commencer par des exemples simples avec un bon cours de C++ avant d'essayer de t'attaquer à un gros portage sans connaître le langage cible.

    P.S. Ton code corrigé pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static const int NREFL=5;
     
    typedef bool TPeekBoolVec[NREFL];
    typedef TPeekBoolVec TPeekBoolTab[NREFL];
    typedef float TPeekSingleVec[NREFL];
    Mais ça traduit que tu te diriges vers des soirées difficiles

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Par défaut Ok
    Mais avec une précision de taille :
    On ne peut pas créer des tableaux dynamiques en C++ ?

  8. #8
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par colorid Voir le message
    Mais avec une précision de taille :
    On ne peut pas créer des tableaux dynamiques en C++ ?
    Si, bien sûr, il est possible de créer des tableaux dont la taille est gérée dynamiquement...

    Le problème que l'on rencontre en C et en C++, par comparaison avec d'autres langages tels que java ou C#, c'est que l'utilisation de cette technique nécessite un attention accrue pour éviter les fuites mémoires, ainsi que l'utilisation massive de pointeurs...

    Comme le domaine de l'utilisation de pointeurs est particulièrement complexe à comprendre et à mettre en oeuvre, il est largement recommandé de ne les utiliser que lorsque l'on n'a pas d'autre solution.

    C'est la raison pour laquelle on conseille très volontiers de s'intéresser en priorité aux différents conteneurs de la STL car ils t'évitent d'avoir à "réinventer" continuellement la roue et te facilitent énormément la vie, en t'apportant une sécurité accrue
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. un vrai débutant
    Par halimelio dans le forum Outils
    Réponses: 1
    Dernier message: 23/05/2011, 13h53
  2. Réponses: 7
    Dernier message: 28/10/2007, 10h56
  3. (vrai débutant) Installation Oracle 9i
    Par nasolam dans le forum Installation
    Réponses: 2
    Dernier message: 27/05/2007, 00h37
  4. Vrai débutant de SQL
    Par kurama dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2007, 20h23
  5. [Servlet - Tomcat] Help - question d'un vrai débutant
    Par ShinJava dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 05/10/2004, 16h06

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