Je
ne vois pas pourquoi il m'affiche ce message d'erreur alors que la
conversion a bien été faite de Long à Integer ? Si vous avez quelque
chose qui peut m'aider, il faut absolument que je résolves cette erreur... Merci d'avance
Cordialement,
Ginger
A voir également:
Sous VB2008 : problème AccessViolationException...
cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010 12 févr. 2009 à 10:16
Bonjour
Je dois en fait réaliser la migration d'une appli de vb6 à vb.net (version 2008), j'ai fait ça grâce à l'assistant de mise à niveau, maintenant il faut que je déboggue l'appli.
Mon API c'est à dire ?
Je remet mon code (mais pas tout pour des raisons de confidentialités d'entreprise) :
------------------------------
Private Sub ReadIniFile()
'Déclarations
Dim s_retour As String
Dim i_free As Short
Dim l_ret As Integer
' Si le fichier OPA.ini n'existe pas, on le crée à vide pour le paramétrer ensuite via l UF
If UCase(Dir(gs_fichier_ini)) <> UCase(gs_fichier_ini_name) Then
i_free = FreeFile
FileOpen(i_free, gs_fichier_ini, OpenMode.Output)
' Ferme le fichier
FileClose(i_free)
Exit Sub
End If
Polack77
Messages postés1095Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 12 févr. 2009 à 12:33
Houla je remarque que des espaces on été "mangé" :
"PrivateDeclareFunction" : est à remplacé par "Private/Public Declare Function"
"AsString" : est à remplacé par "As String"
"AsInteger" : est à remplacé par "As Integer"
cs_ginger4957
Messages postés69Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention 3 septembre 2010 12 févr. 2009 à 14:50
Merci Polack, j'ai testé ton code que j'ai mis à la place du mien, sauf que j'ai gardé à la ligne 5 (d'après ce qui suit) le type String (As String au lieu de As IntPtr comme tu avais mis) parce que le programme attend une chaine de caractères.
Voici ma déclaration initiale (avant d'y avoir touché avec ton code) de GetPrivateProfileString, en sachant que j'ai changé "As Any" sous visual studio 6.0 pour "As Object" sous Visual studio 2008 :
1. Public Declare Function GetPrivateProfileString Lib "kernel32"
2. Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String,
3. ByVal lpKeyName As Object,
4. ByVal lpDefault As String,
5. ByVal lpReturnedString As String,
6. ByVal nSize As Integer,
7. ByVal lpFileName As String) As Integer
Les différences avec ton code :
1. ... Lib "kernel32.dll"
3. lpKeyName As String,
5. lpReturnedBuffer As IntPtr,
J'ai lancé l'appli, elle me demande si je veux vider un des répertoires à initialiser, je clique sur OK, et ensuite l'initialisation a eu l'air de fonctionner puisque plus de msg d'erreur n'apparaît plus. Donc oui ça a l'air de marcher :P