forum_ma
Messages postés112Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention31 juillet 2006
-
16 mars 2006 à 18:52
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
16 mars 2006 à 20:42
Bonjour je suis en train de convertir un programme qui est à la base en VB6, je le converti en VB.net.
Cependant je ne suis pas excellent en VB6 et j'ai deux ligne que je ne suis pas capable de convertir , voici les lignes :
Dim PIds()
As
Long, PIdsCount
As
Long
(...)
ReDim PIds(1&
To 1&) <===== Convertir cette ligne
(...)
Mon 2e probleme est dans ce code :
' WindowClassname function returns window's class name.
Private
Function WindowClassname(
ByVal hwnd
As EnumWindowsDelegate)
As
String
WindowClassname = String$(255&, 0) <===== LA FONCTION String$ a convertir
WindowClassname = Left(WindowClassname, GetClassName(hwnd, WindowClassname, 255&))
End
Function
Pour ce qui est du string$, J'ai trouvé StrDup qui a l'air de ressembler, mais sa marche pas a cause du 255&...
Donc si vous pouvez m'aider sa serait apprécier :)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 mars 2006 à 19:15
Première chose, oublie le signe & collé au nombres, c'était pour indiqué le type du nombre. Je crois que ce n'est plus utilisé, de toute façon ça n'a jamais été très utile car pas du tout clair quand tu relis un code.
Pour la string, tu peux effectivement utilisé StrDup comme ceci donc : StrDup(255,0)
Pour Redim par contre, il faut savoir qu'en .Net les tableaux commencent toujours à 0 contrairement à VB6 ou on pouvais les faire commencé ou on voulais.
Donc ReDim(1 to 1) en VB6 te déclarait un tableau avec une cellule ayant pour index 1
En .Net soit tu fait Redim(1), alors tu auras un tableau de 2 cellules (index 0 et 1) et tu continu à utiliser ta cellule index 1 comme vant dans le code, soit il te faut obligatoirement un tableau de taille 1, dans ce cas tu met ReDim(0) et tu modifi ton code pour utiliser la cellule d'index 0.
forum_ma
Messages postés112Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention31 juillet 2006 16 mars 2006 à 20:33
Bon j'ai une autre question... Le type Any n'existe plus, c'est quoi qui le remplace??
Voici ou il est utilise :
Declare
Function RegSetValueEx
Lib "advapi32.dll"
Alias "RegSetValueExA" (
ByVal hKey
As
Long,
ByVal lpValueName
As
String,
ByVal Reserved
As
Long,
ByVal dwType
As
Long,
ByVal lpData
As
Any,
ByVal cbData
As
Long)
As
Long
Je ne sais pas par koi le changer et je ne trouve pas de doc sur cette API...
Vous n’avez pas trouvé la réponse que vous recherchez ?
forum_ma
Messages postés112Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention31 juillet 2006 16 mars 2006 à 20:37
J'ai p-e trouvé quelque chose mais je ne sais pas trop comment l'utiliser :
VB4-32,5,6
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
VB.NET
Microsoft.Win32.RegistryKey.SetValue
Ce qui voudrait dire que j'ai juste a changer la function par Microsoft.Win32.RegistryKey.SetValue ????
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 mars 2006 à 20:42
Justement j'étais en train de regarder un exemple, je te le donne ci-dessous :
Imports System
Imports Microsoft.Win32
Public Module modmain
Sub Main()
'The KPD-Team 2001
'URL: http://www.allapi.net/dotnet/ 'E-Mail: KPDTeam@Allapi.net
'Create a new registry key
' HKEY_CURRENT_USER\Software\AllAPI.net
Dim RegKey as RegistryKey = Registry.CurrentUser.CreateSubKey( _
"Software\AllAPI.net")
'Set the value of 'URL' to 'http://www.allapi.net/'
RegKey.SetValue("URL", "http://www.allapi.net/")
'Delete 'URL'
RegKey.DeleteValue("URL")
'Delete the subkey AllAPI.net
Registry.CurrentUser.DeleteSubKey("Software\AllAPI.net")
'Close the registry key
RegKey.Close()
End Sub
End Module