sauvegarder code source IE dans un fichier... [c++] - C++ - Programmation
Marsh Posté le 22-09-2003 à 16:33:04
en C++Builder :
TIdHTTP *bidule = new TIdHTTP(0); |
Marsh Posté le 22-09-2003 à 16:46:21
TIdHttp *bidule = new TIdHttp.Create(NULL);
C koi cette syntaxe ?
Marsh Posté le 22-09-2003 à 16:49:18
NULL est 0 en C++, préférez cette notation s'il vous plait
Marsh Posté le 22-09-2003 à 16:50:21
ReplyMarsh Posté le 22-09-2003 à 16:52:39
chrisbk a écrit : TIdHttp *bidule = new TIdHttp.Create(NULL); |
ha merde, l'habitude de Delphi , j'édite
avec un 0 pour faire plaisir à Taz
Marsh Posté le 22-09-2003 à 16:53:56
ben c'est plus court écrire, et le NULL a été introduit comme macro pour plaisir au programmeur C: en C le typage est faible, on cast tout comme on veut, parcontre, quand il s'agit de pointeurs, ben non, faut pas déconner, si y a pas marquer NULL, ça peut pas marcher.
tiens questions subsidiaires
en C
#ifdef __CPLUSPLUS
#define NULL 0
#else
#define NULL ((void*)0) /* 0 ou n'importe quoi, la norme n'impose rien en C */
#endif
pourquoi cette différence ? pour quoi en C if(ptr) est considéré comme non-portable ?
Marsh Posté le 22-09-2003 à 17:15:57
pour quoi en C if(ptr) est considéré comme non-portable ?
ptet parce que certaines plateformes n'ont aucun soucis existentiel a travailler sur 0x0
Marsh Posté le 22-09-2003 à 17:19:55
en fait la réponse est dans la question. en C NULL est une macro qui représente une adresse dont on a la garantie qu'elle ne sera jamais utilisée. mais aucune garantie que la représentation binaire de NULL soit zéro. j'ai souvenir de je sais plus qu'elle architecture (ou bibliothèque) ou NULL était différent et ou tout acces lancer une exception spécifique (par ce que sur GNU/Linux, NULL ou pointeur dans le décor, c'est erreur de segmentation par exemple)
Marsh Posté le 22-09-2003 à 17:21:08
chrisbk a écrit : |
Sous DOS (en mode réel), si ma mémoire est bonne, en 0x0, c'est la table des interruptions.
Marsh Posté le 22-09-2003 à 17:26:06
Neanmoins je continuerais a utiliser NULL en lieu et place de 0, vu que ca m'apporte l'information suivante :
Code :
|
Question de lisibilité
Marsh Posté le 22-09-2003 à 17:31:32
Taz a écrit : mais le compilo le sait-il ? |
vu que NULL est un #define, le compilo en sait rien. A vrai dire il s'en fout.
(je vois pas trop ou tu veux en venir ? a cause de la surcharge de mon exemple qui va faire que le compilo va raler?)
Marsh Posté le 22-09-2003 à 18:59:58
ben non
Code :
|
Marsh Posté le 23-09-2003 à 08:52:48
J'utilise un truc comme ca pour mes pointeurs invalides (Taz tes commentaires sont les bienvenus) :
Code :
|
Marsh Posté le 23-09-2003 à 09:13:15
merci antp (a tous en fait), mais j'ai un ptit pb, deja j'ai tout codé sur VC++ avec MFC...
et en plus, ce n'est pas une page en HTML mais c'est sous la formie d'une dll, www.bidule.fr/ismona.dll/truc?bob=5000 ...
vous connaissez ca...?
alors pour recuperer cette page, je le fais a la bourrin...je l'affiche ac un shellexec, ensuite je selectionne tout ac les evenement, je copie, j'ouvre notepad et je colle...
je voudrais faire ca proprement quoi ;-)!
merci pour tout!
Marsh Posté le 23-09-2003 à 09:22:33
husiana a écrit : |
ça te renvoie quand même une page HTML, c'est pareil normalement
Marsh Posté le 23-09-2003 à 09:27:08
dac, merci, et ton code va compiler sous VC++ ? (pas encore eu le tps d'essayer...)
Marsh Posté le 23-09-2003 à 09:28:39
husiana a écrit : dac, merci, et ton code va compiler sous VC++ ? (pas encore eu le tps d'essayer...) |
non
Marsh Posté le 23-09-2003 à 09:33:32
triste :-/!
je compile que ca en Bc++ et je fais un shell exec a partir de mon VC++! lol!
Marsh Posté le 23-09-2003 à 09:42:42
TIdHTTP *bidule = new TIdHTTP.create(NULL);
===> il ne connais pas TIdHTTP, y'a une include special...?
merci pour tout
Marsh Posté le 23-09-2003 à 09:50:24
husiana a écrit : TIdHTTP *bidule = new TIdHTTP.create(NULL); |
antp a écrit : en C++Builder :
|
Quel compilo tu utilises?
Marsh Posté le 23-09-2003 à 09:54:36
husiana a écrit : borland c++ 5 |
bah non...c'est juste que sont truc existe pas sous autre chose que BC++...
Regarde dans la doc, ca devrait être indiqué comment te servir de son brol!
Marsh Posté le 23-09-2003 à 09:56:10
Si t'as deja fait de la prog socket, et en cherchant comment ca marche le http, ca doit se faire en 1h.
edit:
ptet plus qu'1h, ca fouette vraiment trop le http. mais ca marche je confirme.
Marsh Posté le 23-09-2003 à 09:56:13
vi, j'utilise VC++ d'ab...!
je viens de compiler une premiere fois ac BC++ et comme toute les premieres fois, Make failed...
Marsh Posté le 23-09-2003 à 09:58:06
husiana a écrit : borland c++ 5 |
c'est pas pour C++5, c'est pour C++Builder (ce sont deux produits différents)
et si tu as une version antérieure à la 6 il faut downloader les composants Indy séparément (delphi indy dans google)
Marsh Posté le 23-09-2003 à 10:15:41
si c'est le compilateur, mais faut les librairies (VCL) qui vont avec, et aussi un compilateur Delphi pour Indy (intégré dans C++Builder).
Marsh Posté le 23-09-2003 à 10:17:40
t'as pas un lien pour le DL, j'ai pas envie de m'inscrire sur borland...
Marsh Posté le 23-09-2003 à 10:22:00
je suppose que tu as regardé dans la MSDN pour savoir si la MFC proposait une classe permettant le telechargement de page HTML ?
Marsh Posté le 23-09-2003 à 10:22:00
husiana a écrit : t'as pas un lien pour le DL, j'ai pas envie de m'inscrire sur borland... |
heu c'est un truc payant normalement hein puis t'es pas obligé d'utiliser ça; y a moyen de faire des appels à IE pour downloader un fichier (une dizaine de lignes de code il me semble), mais je ne sais plus comment.
Marsh Posté le 23-09-2003 à 10:25:06
antp a écrit : |
les fonctions WinInet, comme InternetOpenUrl() ou InternetReadFile()
Marsh Posté le 23-09-2003 à 11:40:49
j'ai essayé wininet, alors tout compile niquel, et tt fonctionne presque niquel...:-/!
mon buff est vide, voila le code:
Code :
|
PS: il ne faut pas oublier de mettre winInet.lib et #include <wininet.h>
pk mon buff est-il vide ?
Marsh Posté le 23-09-2003 à 13:04:36
husiana a écrit : |
ben paske tu rates fort :
deja t'aurais testé ton bRet avec un GetLastError() ca t'aurait indiqué la source de l'erreur.
et y a 2 fois InternetCloseHandle() aussi.
Marsh Posté le 23-09-2003 à 13:23:04
comment on test bRet ac GetLastError() stp...?
et si y'a deux fois InternetCloseHandle() c'est que j'en ai deux a fermer...? non?!
Marsh Posté le 23-09-2003 à 13:41:14
husiana a écrit : comment on test bRet ac GetLastError() stp...? |
euh... tu te foutrais pas de ma gueule la ?
comment tester un BOOL ? ben je dirais comme une autre variable.
Code :
|
et pour le InternetCloseHandle(), faut l'appeler seulement quand t'as terminé les opérations sur ta session, et y en a bien 1 de trop (je vois qu'un seul InternetOpen())
.
Marsh Posté le 23-09-2003 à 13:48:31
husiana a écrit : vi, je fais du C/UNIX, pas du C++/windows :-/! |
toi t'es dans un bahut de merde.
Marsh Posté le 22-09-2003 à 16:06:14
voila, j'aimerais sauvegarder les sources d'une page automatiquement en C++, est-ce possible...?
j'ai des valeures a recup ds la page...
---------------
http://husiana.myftp.org/phpsysinfo