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 :

[in] attribute error aprés migration vs2005


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut Attribute error après migration vs2005
    Bonjour,
    je suis en train de migrer un projet c++ vs2003 vers vs2005, mais je suis bloquée sur une erreur concernant un attribut 'in' d'un paramètre d'une méthode.

    error C3115: 'in': this attribute is not allowed on 'origin'. 'origin' est de type bstr
    avez-vous déjà rencontré ce problème? la solution?
    merci

  2. #2
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    tu pourrais nous donner la partie du code incriminée ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Kurisu Voir le message
    tu pourrais nous donner la partie du code incriminée ?
    HRESULT CMyWebService::Search([in,out]Point* origin,
    [out]Rect* object,
    [out, retval]BSTR* items)

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut
    Citation Envoyé par lemarin Voir le message
    [out]Rect* object
    Par curiosité, c'est quoi cette syntaxe (crochets) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    ce sont des attributs, de paramètres de méthode dans ce cas précis.
    in : paramètre attendu par la méthode
    out : paramètre retourne par la méthode

  6. #6
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Je pense qu'il voulait parler du parseur qui va lire cette syntaxe.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    ce sont des éléments de la sdk....
    voici la définition de la sdk

    The [in] attribute has a converse attribute, [out], which indicates that a parameter is to be returned from the called procedure to the calling procedure. The [in] and [out] attributes are known as directional parameter attributes because they specify the direction in which parameters are passed. A parameter can be defined as [in], [out], or [in, out].

  8. #8
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par lemarin Voir le message
    ce sont des éléments de la sdk....
    voici la définition de la sdk

    The [in] attribute has a converse attribute, [out], which indicates that a parameter is to be returned from the called procedure to the calling procedure. The [in] and [out] attributes are known as directional parameter attributes because they specify the direction in which parameters are passed. A parameter can be defined as [in], [out], or [in, out].
    On a bien compris..... Mais quand tu vas écrire ton code, est-ce que tu laisses les [in] et compagnie à côté des arguments?
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    On a bien compris..... Mais quand tu vas écrire ton code, est-ce que tu laisses les [in] et compagnie à côté des arguments?
    Oui bien sûr, la syntaxe est comme ça..
    mais je vois pas ce qui a changé entre 2k3 et 2k5 pour que ça passe plus...

  10. #10
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par lemarin Voir le message
    Oui bien sûr, la syntaxe est comme ça..
    Je pense qu'on a pas du se comprendre et que dans ton code, tu ne laisses PAS ces [in] et compagnie...
    Citation Envoyé par lemarin Voir le message
    mais je vois pas ce qui a changé entre 2k3 et 2k5 pour que ça passe plus...
    Comme on n'a toujours pas de code minimal reproduisant l'erreur, on ne risque pas de t'aider.. Par code incriminé, on parlait du bout de ton code qui provoque l'erreur, avec les variables, les valeurs des paramètres, etc....
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    Je pense qu'on a pas du se comprendre et que dans ton code, tu ne laisses PAS ces [in] et compagnie...
    Comme on n'a toujours pas de code minimal reproduisant l'erreur, on ne risque pas de t'aider.. Par code incriminé, on parlait du bout de ton code qui provoque l'erreur, avec les variables, les valeurs des paramètres, etc....
    Mais j'ai déjà mis ce code dans mon message précédent, le revoilà, les in en gras

    HRESULT CMyWebService::Search([in] BSTR address, /*erreur ici*/
    [out]Rect* object,
    [out, retval]BSTR* items)

  12. #12
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut

    Tu n'as re-pas compris ce qu'on te demande .
    Comment appelles-tu la fonction? Quelles sont les valeurs de ses arguments?
    Si par example j'ai un problème avec CMyWebService::Search(), je vais venir sur developpez.com en postant mon code d'example:
    Code example : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BSTR prout;
    Rect* pPwet = new CRect();
    BSTR* pPlop = new BSTR();
    ...
    // remplissage des variables
    ...
    CMyWebService web;
    ...
    web.Search(prout, pPwet, pPlop);
    ...
    pour ainsi indiquer comment j'utilise la fonction, quelles sont les valeurs de ses paramètres, ... ainsi de suite, de manière à donner toutes les infos au gens pour qu'ils m'aident.

    Je peux pas être plus clair!
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut langage SMS
    Citation Envoyé par spoutspout Voir le message

    Tu n'as re-pas compris ce qu'on te demande .
    Comment appelles-tu la fonction? Quelles sont les valeurs de ses arguments?
    Si par example j'ai un problème avec CMyWebService::Search(), je vais venir sur developpez.com en postant mon code d'example:
    Code example : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BSTR prout;
    Rect* pPwet = new CRect();
    BSTR* pPlop = new BSTR();
    ...
    // remplissage des variables
    ...
    CMyWebService web;
    ...
    web.Search(prout, pPwet, pPlop);
    ...
    pour ainsi indiquer comment j'utilise la fonction, quelles sont les valeurs de ses paramètres, ... ainsi de suite, de manière à donner toutes les infos au gens pour qu'ils m'aident.

    Je peux pas être plus clair!
    je t'ai bien compris cher ami, mais l'erreur c'est dans la définition de la méthode , dans la partie webservice, je ne suis pas en train de tester le ws avec un client...je suis en train d'essayer de compiler le ws....
    le compilateur me renvoie sur la définition de la methode..... c est une web méthode qui peux être appelé par un client et c'est sa définition qui pose problème...

    dans toutes les méthodes où il y a des attributs ça passe pas, cela veux dire certainement que la syntaxe a changé pour 2005, mais laquelle??

  14. #14
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par lemarin Voir le message
    je t'ai bien compris cher ami,
    J'en doute fort cher ami.

    Bon, pour pas te laisser dans la mouise, je vais essayer de deviner ton problème. Tu dis que le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HRESULT CMyWebService::Search([in,out]Point* origin, [out]Rect* object, [out, retval]BSTR* items)
    te provoque l'erreur suivante à la compilation
    error C3115: 'in': this attribute is not allowed on 'origin'
    Ma solution: enlève tous les [in], [out] et [out, retval]
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    En tout cas moi je t'ai bien compris mais je peux pas te satisfaire car mon erreur est au niveau de la définition d'une méthode qui n'est jamais appelé dans le programme tout simplement parce que c'est est une web méthode..... donc je peux pas te mettre un code pour dire que ça plante quand je l'appelle...mais c'est bon pas grave passons.....
    en tout cas j'ai enlevé tout comme tu m'as dit ça compile bien, mais je me demande est ce que je modifie pas les caractéristique de la web méthode en faisant ça.
    Est ce qui il y a pas d'autre moyen pour garder les attributs et compiler correctement..

    merci

  16. #16
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    CMyWebService est une classe. De quelle classe de base hérite-t-elle?
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  17. #17
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par lemarin Voir le message
    en tt cas j'ai enlevé tt comme tu m'as dit ça compile bien, mais je me demande est ce que je modifie pas les caractéristique de la web méthode en faisant ça.
    je vx est ce qui il y a pas d'autre moyen pr garder les attributs et compiler correctement..
    Le texte que je t'ai fait enlever n'est pas du code C++. C'est juste une notation de la documentation que tu as consultée qui t'indique l'utilisation qui sera faite des arguments de la fonction. En aucun cela ne correspond à du code C++, et c'est d'ailleurs pour cette raison que tu rencontres une erreur de compilation, car ton compilateur ne comprend pas ce texte.
    Donc pour te répondre, non tu ne modifie pas la méthode en faisant cela et oui tu l'utilises comme elle a été prévue .
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  18. #18
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    Le texte que je t'ai fait enlever n'est pas du code C++. C'est juste une notation de la documentation que tu as consultée qui t'indique l'utilisation qui sera faite des arguments de la fonction.
    Pas forcément. Il y a des extentions au langage, spécifiques microsoft, liée à COM entre autre, qui ressemblent à ça.

    Citation Envoyé par spoutspout Voir le message
    En aucun cela ne correspond à du code C++
    Ca, c'est vrai. Peut-être trouverait-il plus d'information dans un forum lié à l'environnement utilisé (non précisé je crois dans la discussion) plus qu'ici ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  19. #19
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Pas forcément. Il y a des extentions au langage, spécifiques microsoft, liée à COM entre autre, qui ressemblent à ça.
    Ah, je savais pas.
    J'attends justement la classe de base pour voir un peu le contexte et trouver plus d'infos.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Alors pour la classe de base c'est une interface IMyWebService qui n'hérite d'aucune autre classe...
    Les méthodes de l'interface sont définies de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [id(1)] HRESULT Draw([in, out] Data* data, [out, retval] BSTR *res);
    ............etc
    L'environnement de développement est le suivant :
    VS 2005,
    ATL server + MFC
    donc ws via utilisation de ATL Server
    Merci en tout cas pour votre aide.

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

Discussions similaires

  1. ERROR 1045 (28000): Access denied - après migration
    Par ApocKalipsS dans le forum Administration
    Réponses: 1
    Dernier message: 27/08/2011, 13h06
  2. Format date dans état après migration
    Par guiguikawa dans le forum Access
    Réponses: 10
    Dernier message: 21/06/2006, 14h27
  3. make-kpkg HS après migration sarge-etch
    Par le mage tophinus dans le forum Debian
    Réponses: 4
    Dernier message: 18/04/2006, 08h21
  4. PB Rowid après migration Oracle7 à 9i
    Par Chonchon dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/02/2006, 14h20
  5. Mysql DB Error: après installation de extcal
    Par lemonsoda dans le forum Installation
    Réponses: 1
    Dernier message: 10/01/2006, 17h05

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