IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Convertion VB6 à VB.Net - Byval


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut Convertion VB6 à VB.Net - Byval
    Salut
    Toujours en conversion du programme de VB6 à VB.Net,, je bloque sur un dernier point du programme.

    Il s'agit d'une procedure "ReadProcessMémory".

    voici la code d'origine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Function GetFloat(ByVal Address As Integer) As Single
            On Error Resume Next
    
            hProcess = OpenProcess(PROCESS_READ_WRITE_QUERY, False, pid)
            Test = ReadProcessMemory(hProcess, Address, sngbuffer, ByVal 4 ,0)
            CloseHandle(hProcess)
            GetFloat = sngbuffer
    End Function
    
    
    Public Function GetLong(ByVal Address As Long) As Long
            On Error Resume Next
            hProcess = OpenProcess(PROCESS_READ_WRITE_QUERY, False, pid)
            Test = ReadProcessMemory(hProcess, Address, longBuffer, ByVal 4, 0)
            CloseHandle(hProcess)
            GetLong = longBuffer
        End Function
    Les erreurs concernent les "ByVal"

    Après quelques recherches et info, glané à droite et gauche. Il semblerait que le problème vienne de cette ligne suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    J'ai réalisé plusieurs modification en suprimant des ByRef pour des Byval, des Long pour des Integer et autre.

    Mais je sèche la.

    Merci de m'aider.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    les ByRef et ByVal ne se mettent que dans les définitions de fonction / procédure et non dans l'appel de celle-ci. Donc essayes de le supprimer tout simplement

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Bonsoir,

    les ByRef et ByVal ne se mettent que dans les définitions de fonction / procédure et non dans l'appel de celle-ci. Donc essayes de le supprimer tout simplement
    J'avoue que je l'ai joué un peu débile, car j'avais virer le ByVal comme tu disait. et l'erreur se déplaçais sur "Address, sngbuffer".

    Ceci parce que en fait au début voila comment était déclaré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Int32(), ByVal lpBuffer As Int32(), ByVal nSize As Long, ByVal lpNumberOfBytesWritten As Long) As Long
    Que j'ai modifié en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Et donc j'avais pas pensé à supprimer les ByVal, mais effectivement maintenant il n'y a plus d'erreur.

    Merci

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    Citation Envoyé par kitcarflo Voir le message
    J'ai réalisé plusieurs modification en suprimant des ByRef pour des Byval
    si tu as remplacé des byref par des byval ou l'inverse c'est du grand n'importe quoi
    de plus pour transformer un programme vb6 en vb.net il convient de le repenser et de le réécrire, pas de recopier bêtement en adaptant la syntaxe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème convertion vb6 vb.net
    Par azräel dans le forum VB.NET
    Réponses: 5
    Dernier message: 06/04/2009, 12h45
  2. Convertion code Delphi.net vers C#
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 31/03/2006, 21h08
  3. Réponses: 2
    Dernier message: 23/03/2006, 10h56
  4. [VB6>VB.NET] Comment coder "break on all errors"
    Par RiiiDD dans le forum VB.NET
    Réponses: 5
    Dernier message: 07/03/2006, 12h53
  5. [VB.NET] Migration VB6---VB.NET
    Par billyyy dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/01/2005, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo