begin process at 2012 02 12 04:10:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > COPIER UNE STRUCTURE "TYPE" DANS UNE AUTRES

COPIER UNE STRUCTURE "TYPE" DANS UNE AUTRES


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

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

Auteur : vbmore

Ecrire un message privé
Site perso
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+


 Sources du même auteur

OBTENIR À L'AVANCE LA TAILLE D'UN TEXTE DESSINÉ SUR UNE FORM...
UN SIMPLE PROGRAMME MULTI-THREAD
IMPRIMER N'IMPORTE QUEL FICHIER
Source avec Zip EVENT QUAND LA FORM BOUGE (SUBSCLASSING)
Source avec Zip ENUMÈRER LES SECTIONS D'UN FICHIER .INI

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de LordBob le 05/01/2003 20:12:39

g pas compris a koi ta source server...

Commentaire de legamer le 06/01/2003 10:33:12

moi non plus

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 ;)

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

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 )

Commentaire de zappy le 08/01/2003 13:04:38

Sympa le code :)

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales