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 !

Sujet : Fonction identique à memset mais pour les DWORD [ Windows / System ] (bouba)

mercredi 27 décembre 2006 à 14:51:15 | Fonction identique à memset mais pour les DWORD

bouba

Bonjour, j'ai besoin de réaliser une copie de plusieurs DWORD dans un buffer mémoire. En faire je cherche l'identique de la fonction memset mais pour des "doubles octets".

par exemple je veux faire: memset(buffer, UneValeur, nombre);

mais au lieu de copier des octets je veux copier des DWORD.
Connaissez-vous la fonction pour faire ça ?

Merci.

Bouba

mercredi 27 décembre 2006 à 16:05:41 | Re : Fonction identique à memset mais pour les DWORD

SAKingdom

Membre Club
Réponse acceptée !
void lmemset (DWORD *buffer, DWORD val, int len)
{
    if(!buffer || len <= 0) return;

    len--;
    while(len >= 0)
    {
       buffer[len] = val;
       len--;
    }
}

C++ (@++)


mercredi 27 décembre 2006 à 16:12:51 | Re : Fonction identique à memset mais pour les DWORD

SAKingdom

Membre Club
ou (je suis pas sûr pour celui-la):
void lmemset (void *buffer, DWORD val, int len)
{
    DWORD *c = (DWORD*)buffer;
    if(!c || len <= 0) return;

    len--;
    while(len >= 0)
    {
       c[len] = val;
       len--;
    }
}

C++ (@++)


mercredi 27 décembre 2006 à 16:54:37 | Re : Fonction identique à memset mais pour les DWORD

BruNews

Administrateur CodeS-SourceS
De count à 0 inclus tu feras count+1, DEPASSEMENT !!!

Ensuite faudrait aller voir la traduc du compilo mais sinon pas bon de refaire sut de code début de boucle pour ressauter si fini.


Mettre en INLINE, surtout pas d'appel func pour cela.
__inline void setDWORDS(DWORD *pdw, DWORD v, DWORD len)
{
  if(!len) return; // a enlever dans code perso quand on sait ne jamais passer 0.
  do {
    *pdw++ = v;
  } while(--len);
}

ciao...
BruNews, MVP VC++

mercredi 27 décembre 2006 à 17:03:29 | Re : Fonction identique à memset mais pour les DWORD

BruNews

Administrateur CodeS-SourceS
oups j'avais zappé le len-- au début...

ciao...
BruNews, MVP VC++

mercredi 27 décembre 2006 à 17:38:12 | Re : Fonction identique à memset mais pour les DWORD

SAKingdom

Membre Club
Voyon brunews, tu m'as assé grondé sur ce sujet pour que ça me rentre bien dans la tête ;). Pour ce qui est du double saut inutile, je n'y avait pas pensé. Je metterai la bonne méthode en pratique la prochaine fois.

C++ (@++)


jeudi 28 décembre 2006 à 09:13:55 | Re : Fonction identique à memset mais pour les DWORD

bouba

Ok, merci pour ces réponses.
Mais n'existe t'il pas une fonction déjà existante dans l'API Win32 qui fait ça ?

Merci.

Bouba

jeudi 28 décembre 2006 à 19:44:09 | Re : Fonction identique à memset mais pour les DWORD

BruNews

Administrateur CodeS-SourceS
Un appel API ou autre fonction pénaliserait grandement les perfs de ton prog.
memset est toujours mis inline par le compilo.

ciao...
BruNews, MVP VC++

vendredi 29 décembre 2006 à 16:21:16 | Re : Fonction identique à memset mais pour les DWORD

bouba

Ok, j'ai pigé, c'est vrai, tu as tout à fait raison.

Merci beaucoup.

Bouba



Cette discussion est classé dans : buffer, fonction, dword, memset, identique


Répondre à ce message

Sujets en rapport avec ce message

allegro+probleme de creation de buffer dans une fonction [ par xboxut ] salut je suis en train de monter mon moteur 2D avec allegro et j ai un bleme au niveau d une fonction.void buffscroll(BITMAP *bmp) //la c la fonction variable globale ou non [ par fcbouan ] quel es la bonne approche , utiliser par exemple une variable globale de buffer gMonbuffer[TAILLE] et l utiliser dans une fonction ( ecriture dans un Commande >>> Buffer [ par Stormy ] Salut à tous,Je cherche une solution afin de charger dans un Tampon une suite de commande ASM ou l'ensemble d'un code appartenant à une fonction C (co waveInOpen [ par evildido ] Bonjour à tous. J'ais une tite question pour vous. Pour mon projet j'utilise les MFC et j'aimerais lorsqu'on appuis sur un bouton lancer une capture s Opérateur bit à bit [ par minet03 ] Hello ! J'ai demandé l'autre soir sur #Programmation comment fonctionnais le passage de plusieurs DWORD sur le même paramètre DWORD de la fonction (e Tableau membre [ par ekinox17 ] Bon voila j'ai cree un tableau d'octets du type : BYTE buffer[25]; // a l'interieur de ma classe et en public autant dire que toutes les fonctions peu Passer un pointeur sur une instance à une fonction membre static ? [ par tintin72 ] Bonjour, j'ai un problème pour passer un pointeur sur une instance ou l'adresse de l'instance à une fonction callback Windows. Je m'explique J'ai créé Probleme de timer avec fonction de callback [ par julienbj ] Bonjour,j'ai un petit souci lors de la création d'un timer avec une fonction de callback.Voici un bout de code qui ne fonctionne pas, mais je ne vois strcat : fonction( char* buffer, int nb ); [ par wizard512 ] Bonsoir,Je souhaiterais savoir Si une fonction similaire a strcat() existerais,mais qui ajoute un entier ( int ) dans une Problème avec la fonction callback du timer [ par Arkadias ] Bonjour tout le monde, je suis confronté à un problème de timer.Voila la situation :Dans le cadre d'un projet de conversion de protocole, je récupère


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

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,328 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é.