Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COPIER UNE STRUCTURE "TYPE" DANS UNE AUTRES


Information sur la source

Catégorie :API Niveau : Débutant Date de création : 05/01/2003 Date de mise à jour : 19/02/2003 18:09:55 Vu : 1 893

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Mettre la source dans un module et définir "sub main" en démarrage
 

Source

  • Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
  • ' Un type bidon
  • Type tmpEx
  • Ex1 As Long
  • VBfrance As String
  • Pe As Boolean
  • MPP As Integer
  • End Type
  • Sub main()
  • Dim t1 As tmpEx
  • Dim t2 As tmpEx
  • ' Initialise t1 avec des valeurs bidons
  • With t1
  • .Ex1 = 3465
  • .VBfrance = "Codes-Sources"
  • .Pe = True
  • .MPP = -6954
  • End With
  • ' On copy la mémoire -> on copy t1 sur t2
  • CopyMemory t2, t1, Len(t1)
  • ' on voit le résultat
  • With t2
  • MsgBox "Ex1=" & .Ex1 & vbNewLine & _
  • "VBFrance=" & .VBfrance & vbNewLine & _
  • "Pe=" & .Pe & vbNewLine & _
  • "MPP=" & .MPP, vbInformation, "Contenu de la copie t2"
  • End With
  • End Sub
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
' Un type bidon
Type tmpEx
    Ex1 As Long
    VBfrance As String
    Pe As Boolean
    MPP As Integer
End Type


Sub main()
    Dim t1 As tmpEx
    Dim t2 As tmpEx
    ' Initialise t1 avec des valeurs bidons
    With t1
        .Ex1 = 3465
        .VBfrance = "Codes-Sources"
        .Pe = True
        .MPP = -6954
    End With
    ' On copy la mémoire -> on copy t1 sur t2
    CopyMemory t2, t1, Len(t1)
    
    ' on voit le résultat
    With t2
        MsgBox "Ex1=" & .Ex1 & vbNewLine & _
            "VBFrance=" & .VBfrance & vbNewLine & _
            "Pe=" & .Pe & vbNewLine & _
            "MPP=" & .MPP, vbInformation, "Contenu de la copie t2"
    End With
End Sub
 

Conclusion

Je n'ai testé cette source qu'avec des types simples simples. Merci de me prévenir si il y a des bugs

A+
 

Commentaires et avis

signaler à un administrateur
Commentaire de LordBob le 05/01/2003 20:12:39

g pas compris a koi ta source server...

signaler à un administrateur
Commentaire de legamer le 06/01/2003 10:33:12

moi non plus

signaler à un administrateur
Commentaire de celiphane le 06/01/2003 13:12:24

sans te vexer, même si c'est très bien, VB6 peut lui même affecter une variable d'un type utilisateur dans une variable du même type.
Dans ton exemple donc,

CopyMemory t2, t1, Len(t1) ' et tout le reste

se remplace par :

t2 = t1


tchao ;)

signaler à un administrateur
Commentaire de vbmore le 06/01/2003 17:26:58

Aie !, désolé, je ne savais que VB6 le faisait automatiquement

Enfin, l'important, c'est de montrer l'API copymemory

Pour ceux qui ne l'on pas compris :
le 1er arguments est la variable destination
le 2e arg. est la variable source
le 3e est la longueur


Avec cet Api, je pense faire un MemView, Mais c'est pour plus tard

A+

VBMore

signaler à un administrateur
Commentaire de fredb26 le 06/01/2003 18:43:03

J'ai utilise ton source pour comparer deux donnees du meme type :
  * copie des type dans des strings
  * et comparaison des 2 types
Ca a l'ai de marcher sauf qu'il faut utitliser LenB a la place Len pour etre sur de son coup ( pbl d'alignement de structure )

signaler à un administrateur
Commentaire de zappy le 08/01/2003 13:04:38

Sympa le code :)

signaler à un administrateur
Commentaire de Capo le 19/02/2003 14:02:25

Grâce à ton code source (très simple), j'ai enfin compris comment utiliser CopyMemory.

Merci

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.