ZeroMemory()

Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
- - Dernière réponse : cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
- 19 avril 2004 à 19:44
Bonjour à tous,
je voudrai s'avoir si il existe une fonction qui fait la même chose que ZeroMemory() sans que celle-ci n'use (et abuse) des librairies C.
Merci.
Afficher la suite 

16 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
ZeroMemory n'abuse de rien en ce qui concerne librairie C, c'est un alias de RtlZeroMemory().

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
0
Merci
Ca utilise memset, ayant désactiver les librairies C par défaut, je ne peux pas me permettre d'utiliser ZeroMemory(), t'es sûr qu'il n'y a pas une autre fonction pour la remplacer ?
Commenter la réponse de Hades53
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
memset est impec, le code asm est mis directement inline.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
0
Merci
A l'utilisation de ZeroMemory()

fgest.obj : error LNK2001: unresolved external symbol _memset
Release/fgest.dll : fatal error LNK1120: 1 unresolved externals
Commenter la réponse de Hades53
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Parce que tu as desactevive lib C, remets et verifie le listing asm genere, tu verras code asm inline, aucun appel de fonction.
C'est le cas au moins depuis VS 5.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5
0
Merci
mais inline c'est supporté par c99 uniquement donc ca doit pas etre le cas pour tout les compilo
Commenter la réponse de cs_djl
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
Mais pourquoi tu veux te passer de la libc? Elle est presque indispensable!
Je te conseille d utiliser plutot memset, parce que ca c est ANSI C, donc portable, et non pas uniquement fait pour windows (quand est ce que tout le monde ecrira du code PORTABLE au lieu d utiliser l API Windows qui n apporte rien?).
Commenter la réponse de MetalDwarf
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
0
Merci
ca apporte si tu écris un programme sous windows (comme c'est souvent demandé dans les boites ...)
Commenter la réponse de hilairenicolas
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
Oui je veux bien mais meme sous windows les fonctions de la lib standard ANSI sont disponibles, et elle sont de plus connues par tout le monde... Alors pourquoi utiliser quelque chose qui n est pas standard quand on peut utiliser la lib ANSI, avec comme avantage d etre compris par TOUT le monde?
Commenter la réponse de MetalDwarf
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Et puis on verra rarement un code generique tourner aussi vite qu'un code specialise.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
Ca c est completement faux!!
La bibliotheque standard n a de standard que son APIn tout le reste est specifique a chque libc (la GlibC est faite differemment de la libc de microsoft), mais en realite les API Windows sont pour un certain nombre des simples renommage ou front-end a des fonctions de la libc. Ce n est pas utiliser du code lent ou rapide, c est une simple question de compatibilite.
Si quelqu un ecrit une applications serveur sous windows par exemple, mais utilise les fonctions standard, le portage sous Linux sera tres facile par exemple. Ce cas est quand meme de plus en plus courant car Linux gagne beaucoup de terrain en entreprise pour les serveurs, et il faut dire qu il y a des raisons...
Je code sous Linux et Windows, mais mes programmes sont la plupart du temps faciles a adapter...

Morale : utiliser les API ANSI quand c est possible pour le C et la STL pour le C++.
Commenter la réponse de MetalDwarf
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
D'autres trouveront des raisons d'etre anti Linux, chacun son truc.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
Peut etre, mais pas d etre anti-standards...
Je trouve ca un peu dommage quand meme cet integrisme pro-microsoft de la part de certains admins de cppfrance...
Commenter la réponse de MetalDwarf
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
0
Merci
Et non, cppfrance n'entre pour rien dans l'affaire, c'est ouvert a tous et chacun a ses preferences et options politiques, voila tout.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006
0
Merci
certainement...pour les membres.

Mais la n est pas la question principale.
Ne doit on pas privilegier les API standards, connues par tous par rapport aux API specifiques? Je pense que si les standards existent c est pour quelque chose, et que tout programme doit rester portable au maximum, sauf lorsque cela cause de trop grandes complications dans le code ou dans la rapidité d execution. C est comme ca que j ai meme pu porter un meme programme sous Windows et sous Ti-89 sans faire de grosses modifications. Et oui les API Windows sur Ti 89...
Commenter la réponse de MetalDwarf
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5
0
Merci
moi hje suis de ton avis, enfin surtout en ce qui concerne le C, la conception du C fait qu'il est present et est meme le language natif de beaucoup de system, enormement de system ne possede que un compilo c ansi, donc plutot interret a etre standard si tu ve prevoir de porter du code.

cependant si tu code uniquement sous windows, utiliser l'api win32 comme le fait brunews est sans aucun doute ce qu'il y a de mieux au niveaux vitesse
Commenter la réponse de cs_djl