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

VC++ .NET Discussion :

[debutant]Utilisation de la classe SmtpClient


Sujet :

VC++ .NET

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut [debutant]Utilisation de la classe SmtpClient
    Bonjour a tous,
    Je debute sous VC++ express edition et j'ai trouvé dans l'aide la classe SmtpClient . Je voudrais dérivée cette classe pour utiliser ses composants. Comment faire pour préciser au compilateur qu'il doit inclure le fichier qui contient cette classe : sous borland c'était include "<SmtpClient.h>" par exemple. La j'ai chercher et ya pas de .h qui correspond a la classe dans les fichiers de VC++ . COmment faut il faire pour inclure une classe de l'aide dans un fichier source que l'on créer soit même ??

  2. #2
    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
    Par défaut
    c'est normal, c'est une classe .Net
    voir dans la faq : http://dotnet.developpez.com/faq/cpp...al#refassembly

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok merci pour le lien vers la FAQ. Si j'ai bien compris je dois utiliser un #using. Par contre quel type de fichier c'est ?? Un .dll .h ?C'est une classe que j'ai trouvé dans l'aide de VC++.

  4. #4
    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
    Par défaut
    c'est un assembly, et comme dit dans la faq l'assembly se décrit toute seule, il n'y a nul besoin d'inclure de .h pour l'utiliser.
    Il faut simplement referencer cette assembly (qui porte l'extension .dll), de l'une ou l'autre facon décrit dans la faq

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok il fait partie de l'assembly System donc pas besoin de faire le using. Par contre quand je dérive la classe de cette facon dans mon .h :

    "class MonClientSmtp : public SmtpClient("smtp.monServeurDeMail")"

    Il me marque cette erreur à la compilation :

    "error C2504: 'SmtpClient' : base class undefined"

    Y'a t'il autre chose a faire pour utiliser la classe SmtpClient du framework .NET ??

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Correction : j'ai utilisé le using namespace System::Net::Mail pour corriger l'erreur que je décri dans mon précédent post. Du coup il trouve la classe mais maintenant j'ai cette erreur la :

    "error C3625: 'MonClientSmtp': an unmanaged type cannot derive from a managed type 'System::Net::Mail::SmtpClient'"

    D'après les tuto que j'ai pu lire sur VC++ je dirais que c'est une histoire de classe managée ?!
    Je dois donc rendre ma classe managée ?
    Comment faire ?
    Est ce que cela va me restreindre dans la suite de ma programmation ??

  7. #7
    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
    Par défaut
    en admettant que tu veuilles faire une classe qui dérive de smtpclient,
    il faut déjà définir une classe managée (mot clé ref), et ensuite il faut soit spécifier spécifiquement la classe System::Net::Mail::SmtpClient, soit inclure le namespace System::Net::Mail http://dotnet.developpez.com/faq/cpp...taxe#namespace

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Citation Envoyé par nico-pyright(c)
    en admettant que tu veuilles faire une classe qui dérive de smtpclient,
    il faut déjà définir une classe managée (mot clé ref), et ensuite il faut soit spécifier spécifiquement la classe System::Net::Mail::SmtpClient, soit inclure le namespace System::Net::Mail http://dotnet.developpez.com/faq/cpp...taxe#namespace
    J'ai bien fait le using namespace System::Net::Mail; mais j'ai l'erreur de dérivation d'un classe managée dans une classe non-managée! Donc si je suis ton raisonnement il faut que je déclare ma classe MonClientSmtp managée!
    Seulement je ne sais pas comment faire ??

  9. #9
    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
    Par défaut
    je me rend compte que la définition dans la faq est incomplète, je vais veiller à approfondir ca http://dotnet.developpez.com/faq/cpp...e#objetmanaged
    il faut alors déclarer la classe comme je te le sugérais dans mon précédent post, avec ref, comme indiqué dans cette partie de la faq http://dotnet.developpez.com/faq/cpp...#typereference

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok j'avais compris le truc de managée/non-managée. Donc j'ai ajouté le ref.
    Du coup ca fonctionne.
    Nouveau problème : j'ai rajouté un argument dans mon constructeur de classe de type string ; et la quand je compil il me cri dessus : le type string n'est pas géré sous VC++ ??

  11. #11
    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
    Par défaut
    soit un peu plus précis sur les erreurs
    s'il s'agit du type String de .net, il fait parti du namespace System (attention à la majuscule)
    s'il s'agit du type string du c++, il faut utiliser le namespace std et inclure les .h en conséquence

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Je viens de QT4 moi donc je suis habitué à utiliser QString avec un #include QString la ou j'utilise des QString. Comment utiliser des chaine de caractères sous VC++ ? La classe String permet elle de faire des transtypages faciles ?

  13. #13
    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
    Par défaut
    bien sur, tu peux faire moultes conversions avec les String de .Net, elles sont très simples d'utilisation
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String ^ str = gcnew String("Ma chaine");
    voir plus de détails sur msdn http://msdn.microsoft.com/library/de...mberstopic.asp

  14. #14
    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
    Ici, la dernière version de la doc de String :
    http://msdn2.microsoft.com/en-us/lib...rs(VS.80).aspx
    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.

  15. #15
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok merci. Juste une petite question : quand je déclare mon String comme j'ai l'habitude :
    String monString;
    le compilateur m'envoie balader;
    Quand je rajoute le petit "^" ca passe :
    String ^ monString;
    à quoi ser le "^" apès le String?

    PS : y'a t'il un bouquin que vous me recommenderiez pour apprendre le fonctionnement de VC++ (express ou complete) à un prix raisonnable ??

  16. #16
    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
    Par défaut
    je te conseille de lire la faq dans un premier temps http://dotnet.developpez.com/faq/cpp...syntaxe#handle
    et pourquoi pas consulter les tutos qu'il y a sur mon site http://nico-pyright.developpez.com/

  17. #17
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok merci pour les tutos. Pour le bouquin personne n'a de suggsetion ?

  18. #18
    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
    Par défaut
    ca dépend de ce que tu appelles raisonnable,
    y a le bouquin de ivor horton à 35 € (en anglais)
    Pas trop mal pour débuter, sachant qu'il traite rapidement de tous les aspects de base, en passant par les notions de C++, pour aller jusqu'aux Winforms et le C++/CLI en passant par les MFC.

    A noter que c'est bien un livre pour débuter, on ne trouvera pas de notions approfondies

    NB : MFC => version complète de VS2005

  19. #19
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Par défaut
    Ok mais si je cherche un livre c'est pour mieux comprendre! Alors en anglais je préfere éviter.
    Je repose ma question : quel(s) livre(s) utiliser pour débuter en VC++?

  20. #20
    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
    Par défaut
    c'est bien là le problème, en général, les bons livres sont en anglais.
    Un bon développeur doit savoir lire l'anglais.

    Tente ta chance pour commencer du coté des tutoriels de developpez.com
    Pour MFC, il y a les tutos de farscape

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/01/2008, 15h29
  2. debutant : classe utilisant une autre classe
    Par zoubla dans le forum Débuter
    Réponses: 6
    Dernier message: 20/10/2006, 15h40
  3. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01
  4. [Debutant(e)]importer une classe
    Par ber_jp dans le forum Eclipse Java
    Réponses: 18
    Dernier message: 12/05/2004, 17h39
  5. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30

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