Bonjour,
Je cherche un bout de code qui me permettrai de t=E9l=E9charger un fichier
en c++. La seul lib qui semblai simple est plut=F4t impossible a
installer, UrlMon. Il manque tout le temps un fichier, d'abord
msxml.h, apr=E8s log4cxx, relou.
Je code avec CodeBlocks une appli win32.
Merci d'avance.
Alors je me suis remis sur le truc, j'ai jamais utiliser visual studio, j'ai un peu du mal. J'ai le script suivant qui fonctionne : #include <urlmon.h> #include <windows.h> #include <tchar.h>
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { CoInitialize(NULL); URLDownloadToFile (NULL, TEXT("http://monurl/fichier.ext"), TEXT ("destination.ext"), 0, NULL );
return 0; } Maintenant j'aimerai a la place de TEXT("http://monurl/fichier.ext") et TEXT("destination.ext") mettre quelque chose qui prendrai en compte les paramètres passé au programme. Jusqu'à maintenant je faisais ca avec argv mais la il semblerai que ce soit différent
Alors je me suis remis sur le truc, j'ai jamais utiliser visual
studio, j'ai un peu du mal.
J'ai le script suivant qui fonctionne :
#include <urlmon.h>
#include <windows.h>
#include <tchar.h>
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
CoInitialize(NULL);
URLDownloadToFile (NULL, TEXT("http://monurl/fichier.ext"), TEXT
("destination.ext"), 0, NULL );
return 0;
}
Maintenant j'aimerai a la place de TEXT("http://monurl/fichier.ext")
et TEXT("destination.ext") mettre quelque chose qui prendrai en compte
les paramètres passé au programme. Jusqu'à maintenant je faisais ca
avec argv mais la il semblerai que ce soit différent
Alors je me suis remis sur le truc, j'ai jamais utiliser visual studio, j'ai un peu du mal. J'ai le script suivant qui fonctionne : #include <urlmon.h> #include <windows.h> #include <tchar.h>
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { CoInitialize(NULL); URLDownloadToFile (NULL, TEXT("http://monurl/fichier.ext"), TEXT ("destination.ext"), 0, NULL );
return 0; } Maintenant j'aimerai a la place de TEXT("http://monurl/fichier.ext") et TEXT("destination.ext") mettre quelque chose qui prendrai en compte les paramètres passé au programme. Jusqu'à maintenant je faisais ca avec argv mais la il semblerai que ce soit différent
On 26 juin, 12:05, Sylvain SF wrote: Donc on vas faire comme si rien n'a été écrit au dessus. Est -t-il possible de faire un logiciel fantôme qui télécharge le fichier spécifié en paramètre? Si oui est ce possible avec code blo cks (Ca serai vraiment vraiment cool)? Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une personne qui me parle de la même chose, et pour l'instant rien ne marche. Donc déjà si je veux quelque chose fantôme, que on ne voix pas de fenêtre, il faut créer un projet console fenêtre ou autre chose? En suite, en fonction de ca quel sera le prototype de la fonction principal, int main, int winmain, autre chose, avec en paramètre quoi, char* argv[], autre chose? Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT (argv[x]), autre chose? Merci d'avance.
On 26 juin, 18:30, Jordan <jordan...@gmail.com> wrote:
On 26 juin, 12:05, Sylvain SF <sylv...@boiteaspam.info> wrote:
Donc on vas faire comme si rien n'a été écrit au dessus.
Est -t-il possible de faire un logiciel fantôme qui télécharge le
fichier spécifié en paramètre? Si oui est ce possible avec code blo cks
(Ca serai vraiment vraiment cool)?
Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une
personne qui me parle de la même chose, et pour l'instant rien ne
marche.
Donc déjà si je veux quelque chose fantôme, que on ne voix pas de
fenêtre, il faut créer un projet console fenêtre ou autre chose?
En suite, en fonction de ca quel sera le prototype de la fonction
principal, int main, int winmain, autre chose, avec en paramètre quoi,
char* argv[], autre chose?
Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT
(argv[x]), autre chose?
Merci d'avance.
On 26 juin, 12:05, Sylvain SF wrote: Donc on vas faire comme si rien n'a été écrit au dessus. Est -t-il possible de faire un logiciel fantôme qui télécharge le fichier spécifié en paramètre? Si oui est ce possible avec code blo cks (Ca serai vraiment vraiment cool)? Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une personne qui me parle de la même chose, et pour l'instant rien ne marche. Donc déjà si je veux quelque chose fantôme, que on ne voix pas de fenêtre, il faut créer un projet console fenêtre ou autre chose? En suite, en fonction de ca quel sera le prototype de la fonction principal, int main, int winmain, autre chose, avec en paramètre quoi, char* argv[], autre chose? Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT (argv[x]), autre chose? Merci d'avance.
Jordan
On 27 juin, 15:08, Jordan wrote:
On 26 juin, 18:30, Jordan wrote:
> On 26 juin, 12:05, Sylvain SF wrote: > Donc on vas faire comme si rien n'a été écrit au dessus. > Est -t-il possible de faire un logiciel fantôme qui télécharge le > fichier spécifié en paramètre? Si oui est ce possible avec code b locks > (Ca serai vraiment vraiment cool)? > Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une personne qui me parle de la même chose, et pour l'instant rien ne marche. Donc déjà si je veux quelque chose fantôme, que on ne voix pas de fenêtre, il faut créer un projet console fenêtre ou autre chose? En suite, en fonction de ca quel sera le prototype de la fonction principal, int main, int winmain, autre chose, avec en paramètre quoi, char* argv[], autre chose? Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT (argv[x]), autre chose? Merci d'avance.
S'il vous plait, vraiment besoin d'aide...
On 27 juin, 15:08, Jordan <jordan...@gmail.com> wrote:
On 26 juin, 18:30, Jordan <jordan...@gmail.com> wrote:
> On 26 juin, 12:05, Sylvain SF <sylv...@boiteaspam.info> wrote:
> Donc on vas faire comme si rien n'a été écrit au dessus.
> Est -t-il possible de faire un logiciel fantôme qui télécharge le
> fichier spécifié en paramètre? Si oui est ce possible avec code b locks
> (Ca serai vraiment vraiment cool)?
> Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une
personne qui me parle de la même chose, et pour l'instant rien ne
marche.
Donc déjà si je veux quelque chose fantôme, que on ne voix pas de
fenêtre, il faut créer un projet console fenêtre ou autre chose?
En suite, en fonction de ca quel sera le prototype de la fonction
principal, int main, int winmain, autre chose, avec en paramètre quoi,
char* argv[], autre chose?
Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT
(argv[x]), autre chose?
Merci d'avance.
> On 26 juin, 12:05, Sylvain SF wrote: > Donc on vas faire comme si rien n'a été écrit au dessus. > Est -t-il possible de faire un logiciel fantôme qui télécharge le > fichier spécifié en paramètre? Si oui est ce possible avec code b locks > (Ca serai vraiment vraiment cool)? > Merci d'avance.
Si c'est possible comment, car la pour l'instant il y a pas une personne qui me parle de la même chose, et pour l'instant rien ne marche. Donc déjà si je veux quelque chose fantôme, que on ne voix pas de fenêtre, il faut créer un projet console fenêtre ou autre chose? En suite, en fonction de ca quel sera le prototype de la fonction principal, int main, int winmain, autre chose, avec en paramètre quoi, char* argv[], autre chose? Après, dans l'instruction URLDownloadToFile je met quoi, argv[x], TEXT (argv[x]), autre chose? Merci d'avance.
S'il vous plait, vraiment besoin d'aide...
Christian ASTOR
Jordan wrote:
S'il vous plait, vraiment besoin d'aide...
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual) (CommandLineToArgvW() également)
Jordan wrote:
S'il vous plait, vraiment besoin d'aide...
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual)
(CommandLineToArgvW() également)
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual) (CommandLineToArgvW() également)
Jordan
On 27 juin, 19:21, Christian ASTOR wrote:
Jordan wrote: > S'il vous plait, vraiment besoin d'aide...
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual) (CommandLineToArgvW() également)
J'ai essayé avec CommandLineToArgvW(), j'obtiens un warning a la compilation et un jolie plantage a l'exécution. Voila le warning : uninitialized local variable 'argv' used Et voila le code : #include "stdafx.h" #include <urlmon.h>
On 27 juin, 19:21, Christian ASTOR <casto...@club-internet.fr> wrote:
Jordan wrote:
> S'il vous plait, vraiment besoin d'aide...
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual)
(CommandLineToArgvW() également)
J'ai essayé avec CommandLineToArgvW(), j'obtiens un warning a la
compilation et un jolie plantage a l'exécution. Voila le warning :
uninitialized local variable 'argv' used
Et voila le code :
#include "stdafx.h"
#include <urlmon.h>
Jordan wrote: > S'il vous plait, vraiment besoin d'aide...
Ben comme je t'ai dit au-dessus (__argv[1] sous Visual) (CommandLineToArgvW() également)
J'ai essayé avec CommandLineToArgvW(), j'obtiens un warning a la compilation et un jolie plantage a l'exécution. Voila le warning : uninitialized local variable 'argv' used Et voila le code : #include "stdafx.h" #include <urlmon.h>
int _tmain() { LPCWSTR *argv; CommandLineToArgvW(*argv, NULL);
Avec ce code, heureusement que ça plante ! J'ai l'impression que tu programmes au pifomètre...
Par ex =>
// On obtient les arguments dans le tableau pArgv int nNbArgs; LPWSTR* pArgv = CommandLineToArgvW(GetCommandLineW(), &nNbArgs);
Jordan
Il semblerai que tout le problème réside dans une simple conversion char* vers LPCWSTR. Donc après quelque recherche j'ai fait ceci ; LPCWSTR *param = wcsdup(A2W(__argv[1])); URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
Mais A2W est inconnu, normal sinon c'est pas drolle :D. Un .h doit surement être inclue, mais je ne sais pas encore le quel.
Il semblerai que tout le problème réside dans une simple conversion
char* vers LPCWSTR.
Donc après quelque recherche j'ai fait ceci ;
LPCWSTR *param = wcsdup(A2W(__argv[1]));
URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
Mais A2W est inconnu, normal sinon c'est pas drolle :D. Un .h doit
surement être inclue, mais je ne sais pas encore le quel.
Il semblerai que tout le problème réside dans une simple conversion char* vers LPCWSTR. Donc après quelque recherche j'ai fait ceci ; LPCWSTR *param = wcsdup(A2W(__argv[1])); URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
Mais A2W est inconnu, normal sinon c'est pas drolle :D. Un .h doit surement être inclue, mais je ne sais pas encore le quel.
Jordan
Je pense etre sur la voie maintenant, mais un probleme est toujours la, le programme plante. Voila mon code : int _tmain() { LPCWSTR param = NULL; WCHAR paramwchar[256]; MultiByteToWideChar(CP_ACP, 0, __argv[1], strlen(__argv[1])+1, paramwchar, sizeof(paramwchar)/sizeof(paramwchar[0])); // Convertion char* to LPCWSTR param = paramwchar; URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
return 0; }
Je pense etre sur la voie maintenant, mais un probleme est toujours
la, le programme plante. Voila mon code :
int _tmain()
{
LPCWSTR param = NULL;
WCHAR paramwchar[256];
MultiByteToWideChar(CP_ACP, 0, __argv[1], strlen(__argv[1])+1,
paramwchar, sizeof(paramwchar)/sizeof(paramwchar[0])); // Convertion
char* to LPCWSTR
param = paramwchar;
URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
Je pense etre sur la voie maintenant, mais un probleme est toujours la, le programme plante. Voila mon code : int _tmain() { LPCWSTR param = NULL; WCHAR paramwchar[256]; MultiByteToWideChar(CP_ACP, 0, __argv[1], strlen(__argv[1])+1, paramwchar, sizeof(paramwchar)/sizeof(paramwchar[0])); // Convertion char* to LPCWSTR param = paramwchar; URLDownloadToFile (NULL, param, TEXT("test.jpg"), 0, NULL );
return 0; }
Jordan
Bon j'ai réussit. Deja tout ce qui est _tmain ou APIENTRY _tWinMain fait planter le programme, donc je suis revenu a mon bon vieux main comme j'ai toujours fait, et j'ai ajouter un A à URLDownloadToFile, ce qui fait URLDownloadToFileA, et a partir de la on est en mesure d'écrire un programme qui marche, soit : int main() { URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL); return 0; }
Oulala c'est dur, je me sens trop blazé d'avoir passé 4 jours a trouver ca. On est loin des 20ene de ligne des codes du début. Voila. @+ pour de nouvelles aventures...
Bon j'ai réussit. Deja tout ce qui est _tmain ou APIENTRY _tWinMain
fait planter le programme, donc je suis revenu a mon bon vieux main
comme j'ai toujours fait, et j'ai ajouter un A à URLDownloadToFile, ce
qui fait URLDownloadToFileA, et a partir de la on est en mesure
d'écrire un programme qui marche, soit :
int main()
{
URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL);
return 0;
}
Oulala c'est dur, je me sens trop blazé d'avoir passé 4 jours a
trouver ca. On est loin des 20ene de ligne des codes du début.
Voila. @+ pour de nouvelles aventures...
Bon j'ai réussit. Deja tout ce qui est _tmain ou APIENTRY _tWinMain fait planter le programme, donc je suis revenu a mon bon vieux main comme j'ai toujours fait, et j'ai ajouter un A à URLDownloadToFile, ce qui fait URLDownloadToFileA, et a partir de la on est en mesure d'écrire un programme qui marche, soit : int main() { URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL); return 0; }
Oulala c'est dur, je me sens trop blazé d'avoir passé 4 jours a trouver ca. On est loin des 20ene de ligne des codes du début. Voila. @+ pour de nouvelles aventures...
Christian ASTOR
Jordan wrote:
et a partir de la on est en mesure d'écrire un programme qui marche, soit : int main() { URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL); return 0; }
Tout est faux. Mais si tu ne lis pas les réponses...
Jordan wrote:
et a partir de la on est en mesure d'écrire un programme qui marche, soit :
int main()
{
URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL);
return 0;
}
Tout est faux.
Mais si tu ne lis pas les réponses...
et a partir de la on est en mesure d'écrire un programme qui marche, soit : int main() { URLDownloadToFileA (NULL, __argv[1], __argv[2], 0, NULL); return 0; }
Tout est faux. Mais si tu ne lis pas les réponses...