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

Visual C++ Discussion :

Visual C++ + librarie en C (certainement c99)


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Par défaut Visual C++ + librarie en C (certainement c99)
    Bonjour,

    J'ai un souci de compilation avec un librairie spécifique.
    Dans un .h, j'ai la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void copy_int_to_uchar (
        unsigned char *restrict dst, int *restrict src, int elements);
    A la compilation sous VISUAL C++ 10, j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1>d:\developpements\imglib\imglib_v201\test_drivers\drivers\common\mem_cpy.h(27): error C2146: erreur de syntaxe*: absence de ',' avant l'identificateur 'dst'
    Je ne sais pas si j'ai une option à modifier pour compiler ce code

    Merci

    VPM

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    Je crois que la seule option, c'est de changer de compilateur, comme celui d'Intel.
    Mais vous n'êtes pas obligé de changer d'IDE.

  3. #3
    Membre confirmé Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Par défaut
    Bon en fait j'ai recompilé la librairie sous visual c++ 8 et j'ai changé les restrict en __restrict

    http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx

    A+

    VPM

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    "__restrict" semble aussi exister sous VS2010.
    http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx

    Avec une MACRO conditionnelle, je pense que la modification du code source serait inutile.

  5. #5
    Membre confirmé Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Par défaut
    Salut,

    Qu'entends tu par Macro Conditionnelle?
    Je suis là pour apprendre et j'aimerais en savoir plus?

    VPM

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // si WANT_RESTRICT n'est pas defini
    // alors __restrict est redéfini à rien
    #ifndef WANT_RESTRICT
    #define __restrict
    #endif
    et tu définis ou non WANT_RESTRICT dans les options de ton projet ou avant d'inclure de .h qui pose problème
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre confirmé Avatar de Vestaproman
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Par défaut
    Ok j'ai essayé quelques chose du genre

    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
     
    #include <math.h>
    #define WANT_RESTRICT restrict
    #include <fichier_avec_rectrict.h>
     
     
    IplImage* imgT0 = 0,*imgT1 = 0;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    #ifndef WANT_RESTRICT
    #define __restrict
    #endif
     
    char* filenameT0 = "T0.bmp";
     
        if( (imgT0 = cvLoadImage(filenameT0,-1)) == 0 )
            return 0;
     
     
    	char * dataT0 = imgT0->imageData;
    	unsigned char * data_out=new unsigned char [imgT0->width*imgT0->height];
     
    	fonction_restrict_probleme(dataT0,data_out,imgT0->width,imgT0->height);
     
        cvNamedWindow( "image", 1 );
        cvShowImage( "image", imgT0 );
        cvWaitKey(0);
        cvReleaseImage(&imgT0);
       cvDestroyWindow("image1");
    }

    Le resultat de la compilation est le suivant :
    chemin_de_la_lib\include\fichier_avec_rectrict.h(118) : error C2146: syntax error : missing ',' before identifier 'in'
    et en allant dedans je pointe sur le restrict :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void fonction_restrict_probleme
    (
        char *restrict in,   /* Input image data   */
        char       *restrict out,  /* Output image data  */
        short cols, short rows              /* Image dimensions   */
    );

    de plus j'ai le #define __restrict dans le code qui est grisé.


    Merci pour votre aide

    VPM

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

Discussions similaires

  1. JEDI Visual Component Library (JVCL)
    Par forum dans le forum Codes sources à télécharger
    Réponses: 4
    Dernier message: 08/05/2021, 01h15
  2. ABF Visual Components Library
    Par forum dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 10/08/2013, 15h32
  3. EDI Visual Component Library
    Par souminet dans le forum Débuter
    Réponses: 5
    Dernier message: 15/09/2008, 10h07
  4. Microsoft Visual C++ Runtime library
    Par azde7015 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 13/01/2007, 10h47
  5. JEDI Visual Component Library !!
    Par cat1982 dans le forum Delphi
    Réponses: 5
    Dernier message: 11/05/2006, 19h09

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