Copie d'une page html avec VB2005 : A l'aide

[Résolu]
Signaler
Messages postés
91
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
15 mars 2013
-
Messages postés
91
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
15 mars 2013
-
Bonjour,

Partant du code ci joint (trouvé sur ce site et qui fonctionne parfaitement bien avec VB6 et VBA)qui me permet d'enregistrer une page HTML au format TxT .
Je me retrouve avec l'erreur suivante :

"Un appel à la fonction PInvoke 'SpirVal!SpirVal.ModCours::URLDownloadToFile' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible."

j'ai cherché dans l'aide : Nada, j'ai l'impression de lire du javanais (je pense que cela provient de l'API mais je suis incapable de déterminer l'erreur)

Quelqu'un peut-il me dire se qui "cloche" dans mon code Merci d'avance à ceux qui prennent le temps d'aider les débutants comme moi.

Voici  l'API et le code :

Private
Declare
Function URLDownloadToFile
Lib
"urlmon"
Alias _

"URLDownloadToFileA" (
ByVal pCaller
As
Long,
ByVal szURL
As
String, _

ByVal szFileName
As
String,
ByVal dwReserved
As
Long, _

ByVal lpfnCB
As
Long)
As
Long

   Public
Sub FichierHtml()

'On spécifie le chemin de la page HTML
url =

"http://www.fedem.fr/cours_metaux/cours.php?page=CU&repere=CU_CAT&ts=JOURNALIERE&source=GIRM&unite=EUR/tonne&titre=Les%20cours%20du%20cuivre&nom_repere=Cathodes+grade+A&popup=1"

'On spécifie le chemin ou l'on veut enregistrer ce fichierlocalFileName =

"c:\FichierCours.txt"

'On appelle la fonction api de téléchargementerrcode = URLDownloadToFile(0, url, localFileName, 0, 0)

If errcode = 0
Then

'Message de confirmation que le fichier a bien été téléchargéeMsgBox(

"Fichier bien reçu")

Else

'Sinon on affiche le message d'erreur"MsgBox(

"Une erreur c'est produite durant la mise à jour des cours. " & vbCr &
"Cause probable : Votre connection internet est défectueuse.", vbExclamation)

End
If
end sub

2 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

t'es en DotNet, pas en VB6, dans une déclaration d'API, les type Long sont à transformer en Integer :

PrivateDeclareFunction URLDownloadToFile
Lib"urlmon"Alias _
"URLDownloadToFileA" (
ByVal pCaller
As <strike>Long</strike> Integer,
ByVal szURL
As String, _

    ByVal szFileName
As String,
ByVal dwReserved
As<strike>Long</strike> Integer, _ByVal
lpfnCB
As <strike>Long</strike> Integer) As
<strike>Long</strike> Integer

Ps : Ta coloration est tronquée entre As et le type, utilise celle de Renfield ou PCPT/La mienne

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
91
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
15 mars 2013

Merci Mortalino
Bonne journée
JF