La fonction InternetGetCookie me lance une AccessVioloationException

Résolu
juju8684
Messages postés
22
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
31 mai 2007
- 7 mai 2007 à 10:05
juju8684
Messages postés
22
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
31 mai 2007
- 7 mai 2007 à 14:47
Bonjour à tous,

Ce post pour savoir si quelqu'un a déjà rencontré le même problème que moi : lorsque je veux utiliser le fonction InternetGetCookie de l'API Wininet.dll, le compilateur me lance une exception :
AccessViolationException : Tentative de lecture ou d'écriture de mémoire partagée. Cela indique souvent qu'une autre mémoire est endommagée.

Si vous avez rencontré ce problème et trouvé la solution pourriez vous m'aider ??

Merci

Une développeuse désespérée

4 réponses

cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
7 mai 2007 à 14:43
Effectivement le 3ième paramètre recoit un buffer pour stocker les données du cookie et le dernier paramètre recoit la taille des données du cookie.

Private

Declare Auto Function InternetGetCookie
Lib "wininet.dll" (
ByVal lpszUrl
As String,
ByVal lpszCookieName
As String,
ByVal lpszCookieData
As System.Text.StringBuilder,
ByRef lpdwSize
As Integer) As Boolean

Pour l'utiliser c'est un peu plus qu'une seule ligne (voir lien msdn pour comprendre)
(ici on écrira le contenu du cookie dans un fichier texte.

dim szdata as new system.text.stringbuilder()
dim isize as integer=0

dim bret as boolean=InternetGetCookie("http://www.vbfrance.com",nothing,szdata,isize)

if bret=false and size>0 then

   szdata=new system.text.stringbuilder(isize)
   InternetGetCookie("http://www.vbfrance.com",nothing,szdata,isize)

   my.computer.filesystem.writealltext("C:\TonCookieVBFrance.com.txt",szdata.tostring(),false)

end if

+
1
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
7 mai 2007 à 11:21
Bonjour,
Peux-tu nous donner la définition de cette fonction ? Il se peut que tu es mal définit certains paramètres.

++
0
juju8684
Messages postés
22
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
31 mai 2007

7 mai 2007 à 11:56
Je la déclare ainsi :

Private

Declare
Function InternetGetCookie
Lib
"wininet.dll"
Alias
"InternetGetCookieA" (
ByVal lpszUrlName
As
String,
ByVal lpszCookieName
As
String,
ByVal lpszCookieData
As
String,
ByVal lpdwSize
As
Long)
As
Boolean

et l'utilise ainsi :

bret = InternetGetCookie(urlz, cookiename, hbcookieval,

CType(255,
Long))

Merci pour votre aide
0
juju8684
Messages postés
22
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
31 mai 2007

7 mai 2007 à 14:47
Ok merci je comprend mieux
0