Débutant pb de fonction

Résolu
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012 - 5 août 2007 à 12:06
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012 - 5 août 2007 à 20:43
Bonjour tout le monde, je suis un débutant dans le language C++, j'utilise Visual C++ express.

Je tente de programmer un client ftp spécifique mais je bloque sur la première étape, snifff.
Mon programme doit détecter la connection internet avant de joindre un serveur sql, pour cela j'utilise la fonction InternetCheckConnection de la librairie wininet, mais je n'arrive pas à rentrer les paramètres correctement, si quelqu'un peut m'aider, ça serait l'amérique !

Voila mon code :

<quote>
            private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
            this->label1->Visible = true;
            this->label1->Text = L"Test de connection internet";
            this->progressBar1->Visible = true;   
   
                if (bool InternetCheckConnection("http://www.google.fr", 0, 0) = true) {
                this->label1->Text = L"Connecté à google !!!!!!!!";
                this->progressBar1->Value = 100;
                }
            else {
                this->label1->Text = L"Non connecté";
                }
            }
</quote>

J'ai bien défini la librairie mais j'obtient ces messages d'erreur je pense qu'il faut que je déclare la variable, enfin je sais pas ...

error C2059: erreur de syntaxe : 'chaîne'
error C2072: 'InternetCheckConnection' : initialisation d'une fonction
error C2205: 'InternetCheckConnection' : impossible d'initialiser des variables extern avec une portée bloc
error C2440: 'initialisation' : impossible de convertir de 'bool' en 'bool (void)'

Voila si qulqu'un peur me venir en aide et m'expliquer ce que j'ai surement loupé dans un tutorial, cela serait super cool , merci d'avance !

8 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 août 2007 à 18:03
 if (InternetCheckConnection("http://www.google.fr", 0, 0) ){...
3
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 août 2007 à 18:50
Et ben c'est louche...
déclaration :

#include "Wininet.h"
#pragma comment(lib,"Wininet.lib") // à moins que tu l'aies déjà dans les options par défaut
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 août 2007 à 20:04
Suffis pas de copier un .h pour que tout roule parfaitement.
Télécharge la PSDK pour faire du Win32.
http://www.cppfrance.com/code.aspx?ID=38359

En passent, si tu débutes, commence par apprendre le vrai C++ et non le C++.NET.

C++ (@++)<!--
3
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012
5 août 2007 à 18:14
Ok pas de soucis et si je veut faire une condition du genre : "Si le pc n'est pas connecté", je fait :
"if (!InternetCheckConnection("http://www.google.fr, 0, 0)) { ... }

Jusqu'à là c'est bon mais j'ai encore une erreur :
error C3861: 'InternetCheckConnection' : identificateur introuvable

Je pense que je doit déclarer InternetCheckConnection, non ? si oui mais où ? lol
Je potasse mon bouquin de 1500 pages sans trouver de solutions, je vais encore chercher, je n'aime pas abandonner

Merci encore !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012
5 août 2007 à 18:36
Sa évolue, désolé de spammé le forum

Alors mon code devient ceci après avoir presque compris qu'il falait déclarer tout sa :

<quote>

            bool InternetCheckConnection();
            if (InternetCheckConnection("http://www.google.fr", 0, 0) ){
            this->label5->Text = L"Connecté ...";
            this->progressBar1->Value = 25;
            }
            else {
            this->label5->Text = L"Non connecté ...";
            }

</quote>

A vu de nez sa me parait correct mais voila je me retrouve avec une erreur du genre :
error C2660: 'InternetCheckConnection' : la fonction ne prend pas 3 arguments

Mais je suis sur le ---, en fouillant dans la MSDN à l'adresse http://msdn2.microsoft.com/en-us/library/aa384346.aspx, pis la fonction comprend bien 3 arguments => l'URL, l'option et réservé.

A moins que j'ai mal déclarer la fonction ... je potasse ... et je rame ...
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 août 2007 à 18:53
Chuis naze j'avais pas regardé ton code. Bien sûr, la déclaration est absurde, il faut utiliser Wininet.h où elle est déclarée correctement (comme j'ai mis au-dessus).
0
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012
5 août 2007 à 19:31
Ouais d'accord pas de soucis j'ai oublié cette ligne (honte à moi) , je l'ai rajouté mais je vais vraiment être chiant ...

J'ai trouvé wininet.h dans le répertoire include de codeblocks que j'ai ensuite coller parmis les lib de VC mais jpense pas que sa soit le bon puisque j'obtient 45 erreur(s), 132 avertissement(s) ou alors je doit faire un piti réglage sur Visual C++.
0
cs_yann68moh Messages postés 12 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 25 mars 2012
5 août 2007 à 20:43
Ok sa marche je suivrait tes conseils et je vous remercie tous pour votre aide
0
Rejoignez-nous