AS any sur VB 2008

galamot Messages postés 30 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 5 mars 2011 - 12 mai 2010 à 08:53
galamot Messages postés 30 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 5 mars 2011 - 13 mai 2010 à 11:34
Bonjour,

je ne connais rien en Vusual basic j'ai une source qui est refusée par visual 2008 qui veut la mettre a jour.

il y a cette ligne de code contenant as any comment la modifier?

Private Declare Function WritePrivateProfileString _
Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationname As String, ByVal lpKeyName As Any, _
ByVal lsString As Any, ByVal lplFilename As String) As Long


Merci

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2010 à 09:23
Salut

Bizarre d'avoir choisi la catégorie VB6 pour poser une question .Net !

En effet, Any est proscrit de .Net
Il te faut déclarer finement le type, quitte à déclarer plusieurs fois la fonction.
Dans ton cas, avec cette API, tu peux remplacer les Any par String puisque la clé sera toujours une chaine et que la donnée associée aussi.
Au cas où ta clé ou ta donnée seraient un chiffre, il te suffira de penser à la convertir en chaine au moment de t'en servir.

Dernier mot : Le type Long de VB6 (32 bits) est devenu Integer sous .Net
Private Declare Function WritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationname As String, _
    ByVal lpKeyName As String, _
    ByVal lsString As String, _
    ByVal lplFilename As String) As Integer

Tu peux aussi imaginer spécialiser une déclaration par type, en changeant le nom de la fonction, exemple pour une clé qui serait de type numérique entière 32 bits :
Private Declare Function WritePrivateProfileString_ValNum _  ' nom modifié
    Lib "kernel32" Alias "WritePrivateProfileStringA" ( _  
    ByVal lpApplicationname As String, _
    ByVal lpKeyName As String, _
    ByVal lsString As Integer, _                      ' type numérique au choix
    ByVal lplFilename As String) As Integer

Voir utilisation de Alias pour se référer au vrai nom de la fonction dans l'API (ici, déjà déclaré)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
galamot Messages postés 30 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 5 mars 2011
12 mai 2010 à 10:12
Bonjour,

Merci je vais essayer de comprendre celà

j'aurais aussi vite fait de trouver VB6 pour ne rien avoir a modifier mais je ne le trouve pas gratuit et pour le peu que je vais en faire.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2010 à 00:53
dispo via abonnement MSDN


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
galamot Messages postés 30 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 5 mars 2011
13 mai 2010 à 11:34
Bonjour,

Un ami qui ne se sert plus de la Version 6 me l'a confiée "quelque temps...".
Donc plus de conversions hasardeuses.
ET mes modifs avancent et je prends gout a cette façon de programmer (comprendre et modifier pour l'instant) assez aggréable.

Merci a Tous
0
Rejoignez-nous