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
Rejoignez-nous