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++/CLI Discussion :

Etat téléchargement par evenement en c++/cli


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut Etat téléchargement par evenement en c++/cli
    Bonjour a toutes et tous

    Voila j'ai un problème pour récupérer l'état d'avancement d'un téléchargement en c++/cli.

    J'ai trouver dans la msdn ce bout de code pour récupérer par évènment l'etat d'avancement du telechargement seulemen c'est en C# et je n'arrive pas a l'adapter en c++/cli.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Sample call : DownLoadFileInBackground2 ("http://www.contoso.com/logs/January.txt");
    public static void DownLoadFileInBackground2 (string address)
    {
        WebClient client = new WebClient ();
        Uri uri = new Uri(address);
     
        // Specify that the DownloadFileCallback method gets called
        // when the download completes.
        client.DownloadFileCompleted += new AsyncCompletedEventHandler (DownloadFileCallback2);
        // Specify a progress notification handler.
        client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);
        client.DownloadFileAsync (uri, "serverdata.txt");
    }

    Voila mon code en c++/cli:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objclient->DownloadFileCompleted += gcnew System::ComponentModel::AsyncCompletedEventHandler(ProgressBarCompleted);
    			objclient->DownloadProgressChanged += gcnew System::Net::DownloadProgressChangedEventHandler(ProgressBar);
    J'appelle les méthodes ProgresBarCompleted et ProgressBar qui ce charge de faire varier l'état de la progressBarre.
    Le problème c'est que sa ne compile pas

    Merci d'avance pour ceux qui ce donneront la peine de m'aider encore un fois.

  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
    quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     WebClient ^client = gcnew WebClient ();
     Uri ^uri = gcnew Uri(address);
     
     // Specify that the DownloadFileCallback method gets called
     // when the download completes.
     client->DownloadFileCompleted += gcnew AsyncCompletedEventHandler (DownloadFileCallback2);
     // Specify a progress notification handler.
     client->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler(DownloadProgressCallback);
     client->DownloadFileAsync (uri, "serverdata.txt");

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    C'est exactement ce que j'ai fais mais voila les erreurs que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Erreur	1	error C3867: &'DailymotionDownloader::Form1::ProgressBarCompleted' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'DailymotionDownloader::Form1::ProgressBarCompleted' pour créer un pointeur vers membre	d:\visual studio 2005\projects\programmes youdaily downloader\dailymotion-downloader revision n°3 en cours\dailymotion-downloader\Form1.h	556
     
    Erreur	2	error C3350: 'System::ComponentModel::AsyncCompletedEventHandler' : un constructeur délégué attend 2 argument(s)	d:\visual studio 2005\projects\programmes youdaily downloader\dailymotion-downloader revision n°3 en cours\dailymotion-downloader\Form1.h	556

  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
    héhé 'DailymotionDownloader ...

    comme indiqué, pour créer un pointeur de fonction, on utilise & devant, &Form1::Méthode

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    La reponse est vraiment rapide

    Merci pour ton aide le passage par ref marche.

    Mais j'ai encore un erreur sur le type de la fonction que j'appelle avec mon delege.

    Code d'appel de mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    objclient->DownloadFileCompleted += gcnew System::ComponentModel::AsyncCompletedEventHandler(&Form1::ProgressBarCompleted);
    objclient->DownloadProgressChanged += gcnew System::Net::DownloadProgressChangedEventHandler(&Form1::ProgressBar);
    Code de mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private: void ProgressBar(System::Object^  sender,System::Net::DownloadProgressChangedEventArgs^ e)
    {
    this->progressBarTelecharge->Value = e->ProgressPercentage;
    this->labelTelechEnCour->Text = " En cours (" + e->ProgressPercentage + "%)";
    }
     
     
    private: void ProgressBarCompleted(System::Object^  sender,System::ComponentModel::AsyncCompletedEventArgs^ e)
    {
     
    }

    Mais voila l'erreur retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Erreur	1	error C3352: 'void DailymotionDownloader::Form1::ProgressBarCompleted(System::Object ^,System::ComponentModel::AsyncCompletedEventArgs ^)' : la fonction spécifiée est incompatible avec le type délégué 'void (System::Object ^,System::ComponentModel::AsyncCompletedEventArgs ^)'	d:\visual studio 2005\projects\programmes youdaily downloader\dailymotion-downloader revision n°3 en cours\dailymotion-downloader\Form1.h	555
     
     
     
    Erreur	2	error C3352: 'void DailymotionDownloader::Form1::ProgressBar(System::Object ^,System::Net::DownloadProgressChangedEventArgs ^)' : la fonction spécifiée est incompatible avec le type délégué 'void (System::Object ^,System::Net::DownloadProgressChangedEventArgs ^)'	d:\visual studio 2005\projects\programmes youdaily downloader\dailymotion-downloader revision n°3 en cours\dailymotion-downloader\Form1.h	556
    Pourtant c'est exactement le meme type de fonction present dans la msdn

  6. #6
    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
    faut pas que ca soit une fonction static ?

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

Discussions similaires

  1. Etat téléchargement par evenement en c++/cli
    Par Zaltez dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 02/09/2007, 12h00
  2. [Etat] comparatif par année et par mois
    Par peter2587 dans le forum IHM
    Réponses: 11
    Dernier message: 05/10/2006, 17h05
  3. [Système] Téléchargement par HTTP d'un fichier
    Par Thierry8 dans le forum Langage
    Réponses: 20
    Dernier message: 06/06/2006, 10h42
  4. Etat bloqué par une table
    Par aujero dans le forum Access
    Réponses: 4
    Dernier message: 06/02/2006, 17h53

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