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.
> Jordan wrote: > > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not bee n > > declared
> C'est défini dans urlmon.h (ci-dessous) > Mettre à jour le SDK depuis MS et/ou changer de compilo... > Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme da ns > la KB292485 > ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
On 26 juin, 00:42, Jordan <jordan...@gmail.com> wrote:
On 25 juin, 23:34, Christian ASTOR <casto...@club-internet.fr> wrote:
> Jordan wrote:
> > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not bee n
> > declared
> C'est défini dans urlmon.h (ci-dessous)
> Mettre à jour le SDK depuis MS et/ou changer de compilo...
> Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme da ns
> la KB292485
> ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code
clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le
programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
> Jordan wrote: > > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not bee n > > declared
> C'est défini dans urlmon.h (ci-dessous) > Mettre à jour le SDK depuis MS et/ou changer de compilo... > Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme da ns > la KB292485 > ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
Jordan
On 26 juin, 00:46, Jordan wrote:
On 26 juin, 00:42, Jordan wrote:
> On 25 juin, 23:34, Christian ASTOR wrote:
> > Jordan wrote: > > > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not b een > > > declared
> > C'est défini dans urlmon.h (ci-dessous) > > Mettre à jour le SDK depuis MS et/ou changer de compilo... > > Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme dans > > la KB292485 > > ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
> J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code > clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le > programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
Sinon pas possible de faire plus court sous visual studio vu que la lib urlmon marche?
On 26 juin, 00:46, Jordan <jordan...@gmail.com> wrote:
On 26 juin, 00:42, Jordan <jordan...@gmail.com> wrote:
> On 25 juin, 23:34, Christian ASTOR <casto...@club-internet.fr> wrote:
> > Jordan wrote:
> > > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not b een
> > > declared
> > C'est défini dans urlmon.h (ci-dessous)
> > Mettre à jour le SDK depuis MS et/ou changer de compilo...
> > Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme dans
> > la KB292485
> > ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
> J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code
> clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le
> programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
Sinon pas possible de faire plus court sous visual studio vu que la
lib urlmon marche?
> > Jordan wrote: > > > Mon compilo me renvoi une erreur : `LPBINDSTATUSCALLBACK' has not b een > > > declared
> > C'est défini dans urlmon.h (ci-dessous) > > Mettre à jour le SDK depuis MS et/ou changer de compilo... > > Sinon, les autres méthodes simples sont avec IHTMLDocument2, comme dans > > la KB292485 > > ou par Wininet (InternetReadFile() ou FtpGetFile() par FTP)
> J'ai essayé avec DEV C++, rien ne marche c'est encore pire que code > clocks, j'ai essayé visual studio 2008, il arrive a compiler mais le > programme ne fait rien.
Erreur de ma par, avec visual studio ca fonctionne.
Sinon pas possible de faire plus court sous visual studio vu que la lib urlmon marche?
Christian ASTOR
Jordan wrote:
Sinon pas possible de faire plus court sous visual studio vu que la lib urlmon marche?
Tu appelles juste : CoInitialize(NULL); suivi de URLDownloadToFile(...)
return 0; } Mais maintenant il me dit error LNK2019: unresolved external symbol referenced in function ___tmainCRTStartup C'est surement lié a argv[] Comment le résoudre? Merci encore pour ta patience :D.
On 26 juin, 07:56, Christian ASTOR <casto...@club-internet.fr> wrote:
Jordan wrote:
> Sinon pas possible de faire plus court sous visual studio vu que la
> lib urlmon marche?
Tu appelles juste :
CoInitialize(NULL);
suivi de
URLDownloadToFile(...)
return 0;
}
Mais maintenant il me dit error LNK2019: unresolved external symbol
_WinMain@16 referenced in function ___tmainCRTStartup
C'est surement lié a argv[]
Comment le résoudre?
Merci encore pour ta patience :D.
return 0; } Mais maintenant il me dit error LNK2019: unresolved external symbol referenced in function ___tmainCRTStartup C'est surement lié a argv[] Comment le résoudre? Merci encore pour ta patience :D.
Sylvain SF
Jordan a écrit :
Merci de ta patience, mais j'ai un dernier problème (qui n'en étai pas un sous code blocks :D) , j'ai fait ceci :
int main(int argc, char* argv[]) { ... } Mais maintenant il me dit error LNK2019: unresolved external symbol referenced in function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
tu connais donc la réponse.
SF.
Jordan a écrit :
Merci de ta patience, mais j'ai un dernier problème (qui n'en étai
pas un sous code blocks :D) , j'ai fait ceci :
int main(int argc, char* argv[]) { ... } Mais maintenant il me dit
error LNK2019: unresolved external symbol _WinMain@16 referenced in
function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
Merci de ta patience, mais j'ai un dernier problème (qui n'en étai pas un sous code blocks :D) , j'ai fait ceci :
int main(int argc, char* argv[]) { ... } Mais maintenant il me dit error LNK2019: unresolved external symbol referenced in function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
tu connais donc la réponse.
SF.
Jordan
On 26 juin, 12:05, Sylvain SF wrote:
Jordan a écrit :
> Merci de ta patience, mais j'ai un dernier problème (qui n'en étai > pas un sous code blocks :D) , j'ai fait ceci :
> int main(int argc, char* argv[]) { ... } Mais maintenant il me dit > error LNK2019: unresolved external symbol referenced in > function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
> Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
>> int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
tu connais donc la réponse.
SF.
Avec ceci de nouvelles erreurs apparaissent. Bon je résume. Je cherche a faire un truc qui télécharge un fichier. J'ai essayer pendant 3 jours tout ce que j'ai pu trouver sur internet mais a chaque foie une erreur apparait ou un problème ce pose comme par exemple absence de lib ou erreur dans la lib ou impossible de récupérer les paramètres mis a l'exécutable ou erreur de syntaxe, e t j'en passe. 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 block s (Ca serai vraiment vraiment cool)? Merci d'avance.
On 26 juin, 12:05, Sylvain SF <sylv...@boiteaspam.info> wrote:
Jordan a écrit :
> Merci de ta patience, mais j'ai un dernier problème (qui n'en étai
> pas un sous code blocks :D) , j'ai fait ceci :
> int main(int argc, char* argv[]) { ... } Mais maintenant il me dit
> error LNK2019: unresolved external symbol _WinMain@16 referenced in
> function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
> Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
>> int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
tu connais donc la réponse.
SF.
Avec ceci de nouvelles erreurs apparaissent.
Bon je résume.
Je cherche a faire un truc qui télécharge un fichier.
J'ai essayer pendant 3 jours tout ce que j'ai pu trouver sur internet
mais a chaque foie une erreur apparait ou un problème ce pose comme
par exemple absence de lib ou erreur dans la lib ou impossible de
récupérer les paramètres mis a l'exécutable ou erreur de syntaxe, e t
j'en passe.
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 block s
(Ca serai vraiment vraiment cool)?
Merci d'avance.
> Merci de ta patience, mais j'ai un dernier problème (qui n'en étai > pas un sous code blocks :D) , j'ai fait ceci :
> int main(int argc, char* argv[]) { ... } Mais maintenant il me dit > error LNK2019: unresolved external symbol referenced in > function ___tmainCRTStartup C'est surement lié a argv[]
ou c'est lié à l'absence de _WInMain (comme indiqué).
> Comment le résoudre?
selon ton post du 25/06 @ 20:55, tu utilisais:
>> int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
tu connais donc la réponse.
SF.
Avec ceci de nouvelles erreurs apparaissent. Bon je résume. Je cherche a faire un truc qui télécharge un fichier. J'ai essayer pendant 3 jours tout ce que j'ai pu trouver sur internet mais a chaque foie une erreur apparait ou un problème ce pose comme par exemple absence de lib ou erreur dans la lib ou impossible de récupérer les paramètres mis a l'exécutable ou erreur de syntaxe, e t j'en passe. 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 block s (Ca serai vraiment vraiment cool)? Merci d'avance.
Steph
"Jordan" a écrit dans le message de news:
Avec ceci de nouvelles erreurs apparaissent.
Quelles erreurs ? C'est ce qui soi-disant marchait au-dessus, et tu as changé le WinMain en main (GUI et Console, c'est pas pareil)
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?
Le code qu'on t'a donné marche parfaitement, sur toutes les versions de Visual Studio depuis des années. Mais si tu ne configures pas ton IDE comme il faut et ne mets pas à jour ton environnement de Dév (SDK surtout), rien ne marchera comme voulu...
"Jordan" <jordan038@gmail.com> a écrit dans le message de news:
1cd7924a-5ec8-497b-be56-77f76020cb2b@l5g2000vbp.googlegroups.com...
Avec ceci de nouvelles erreurs apparaissent.
Quelles erreurs ?
C'est ce qui soi-disant marchait au-dessus, et tu as changé le WinMain en
main (GUI et Console, c'est pas pareil)
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?
Le code qu'on t'a donné marche parfaitement, sur toutes les versions de
Visual Studio depuis des années.
Mais si tu ne configures pas ton IDE comme il faut et ne mets pas à jour ton
environnement de Dév (SDK surtout), rien ne marchera comme voulu...
Quelles erreurs ? C'est ce qui soi-disant marchait au-dessus, et tu as changé le WinMain en main (GUI et Console, c'est pas pareil)
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?
Le code qu'on t'a donné marche parfaitement, sur toutes les versions de Visual Studio depuis des années. Mais si tu ne configures pas ton IDE comme il faut et ne mets pas à jour ton environnement de Dév (SDK surtout), rien ne marchera comme voulu...
Jordan
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, je ne comprend pas du tout ceci : int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) J'ai toujours fait int main(int argc, char* argv[]) 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, je ne comprend
pas du tout ceci : int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
J'ai toujours fait int main(int argc, char* argv[])
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, je ne comprend pas du tout ceci : int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) J'ai toujours fait int main(int argc, char* argv[]) Merci d'avance.
Christian ASTOR
Jordan wrote:
Pour CommandLineToArgvW() il n'y a pas quelque chose a déclarer avan ou un .h a appeler? Le compilo me dit identifier not found.
C'est toujours dans la doc : http://msdn.microsoft.com/en-us/library/bb776391(VS.85).aspx
Mais __argv[1] est bon aussi. Ce qui ne se fait normalement pas est d'appeler en dur la version Ansi URLDownloadToFileA()
Et tu as enlevé CoInitialize(), qui est nécessaire pour ne pas que cela plante sur certains environnements.
Jordan wrote:
Pour CommandLineToArgvW() il n'y a pas quelque chose a déclarer avan
ou un .h a appeler? Le compilo me dit identifier not found.
C'est toujours dans la doc :
http://msdn.microsoft.com/en-us/library/bb776391(VS.85).aspx
Mais __argv[1] est bon aussi.
Ce qui ne se fait normalement pas est d'appeler en dur la version Ansi
URLDownloadToFileA()
Et tu as enlevé CoInitialize(), qui est nécessaire pour ne pas que cela
plante sur certains environnements.
Pour CommandLineToArgvW() il n'y a pas quelque chose a déclarer avan ou un .h a appeler? Le compilo me dit identifier not found.
C'est toujours dans la doc : http://msdn.microsoft.com/en-us/library/bb776391(VS.85).aspx
Mais __argv[1] est bon aussi. Ce qui ne se fait normalement pas est d'appeler en dur la version Ansi URLDownloadToFileA()
Et tu as enlevé CoInitialize(), qui est nécessaire pour ne pas que cela plante sur certains environnements.
Sylvain SF
Jordan a écrit :
Alors je me suis remis sur le truc, j'ai jamais utiliser visual studio, j'ai un peu du mal.
yaka utiliser autre chose.
J'ai le script suivant qui fonctionne :
c'est un source ou un programme, pas un scipt.
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, je ne comprend pas du tout ceci : [..] _tWinMain vs main
tu n'aurais oublié de le dire plus tôt ??
le point d'entré d'un programme *avec GUI* (avec _fenêtre_) est _tWinMain, de tels programmes ne recoivent pas de paramêtres ligne de commande puisqu'ils n'interagissent pas avec une console (mais uniquement leur _fenêtre_). les programmes mode console utilisent le point d'entrée main et reçoivent les paramètres de la ligne de commande.
il convient donc simplement de choisir au départ (lorsque l'on créé le project) le bon modèle, Studio créera le bon point d'entrée.
évidemment choisir de créer une appli. console pour y coller un WinMain ou une appli. window pour y coller un main est juste une façon (un peu stérile) de perdre son temps.
Sylvain.
Jordan a écrit :
Alors je me suis remis sur le truc, j'ai jamais utiliser visual
studio, j'ai un peu du mal.
yaka utiliser autre chose.
J'ai le script suivant qui fonctionne :
c'est un source ou un programme, pas un scipt.
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, je ne comprend
pas du tout ceci : [..] _tWinMain vs main
tu n'aurais oublié de le dire plus tôt ??
le point d'entré d'un programme *avec GUI* (avec _fenêtre_)
est _tWinMain, de tels programmes ne recoivent pas de paramêtres
ligne de commande puisqu'ils n'interagissent pas avec une console
(mais uniquement leur _fenêtre_).
les programmes mode console utilisent le point d'entrée main et
reçoivent les paramètres de la ligne de commande.
il convient donc simplement de choisir au départ (lorsque l'on
créé le project) le bon modèle, Studio créera le bon point d'entrée.
évidemment choisir de créer une appli. console pour y coller
un WinMain ou une appli. window pour y coller un main est juste
une façon (un peu stérile) de perdre son temps.
Alors je me suis remis sur le truc, j'ai jamais utiliser visual studio, j'ai un peu du mal.
yaka utiliser autre chose.
J'ai le script suivant qui fonctionne :
c'est un source ou un programme, pas un scipt.
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, je ne comprend pas du tout ceci : [..] _tWinMain vs main
tu n'aurais oublié de le dire plus tôt ??
le point d'entré d'un programme *avec GUI* (avec _fenêtre_) est _tWinMain, de tels programmes ne recoivent pas de paramêtres ligne de commande puisqu'ils n'interagissent pas avec une console (mais uniquement leur _fenêtre_). les programmes mode console utilisent le point d'entrée main et reçoivent les paramètres de la ligne de commande.
il convient donc simplement de choisir au départ (lorsque l'on créé le project) le bon modèle, Studio créera le bon point d'entrée.
évidemment choisir de créer une appli. console pour y coller un WinMain ou une appli. window pour y coller un main est juste une façon (un peu stérile) de perdre son temps.