ZeroMemory()

Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009 - 18 avril 2004 à 15:01
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.

16 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 avril 2004 à 15:06
ZeroMemory n'abuse de rien en ce qui concerne librairie C, c'est un alias de RtlZeroMemory().

ciao...
BruNews, Admin CS, MVP Visual C++
0
Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
18 avril 2004 à 15:23
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 ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 avril 2004 à 15:26
memset est impec, le code asm est mis directement inline.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
18 avril 2004 à 15:31
A l'utilisation de ZeroMemory()

fgest.obj : error LNK2001: unresolved external symbol _memset
Release/fgest.dll : fatal error LNK1120: 1 unresolved externals
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 avril 2004 à 15:37
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++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 avril 2004 à 15:42
mais inline c'est supporté par c99 uniquement donc ca doit pas etre le cas pour tout les compilo
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 11:33
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?).
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
19 avril 2004 à 11:44
ca apporte si tu écris un programme sous windows (comme c'est souvent demandé dans les boites ...)
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 11:51
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?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2004 à 11:52
Et puis on verra rarement un code generique tourner aussi vite qu'un code specialise.

ciao...
BruNews, Admin CS, MVP Visual C++
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 11:57
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++.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2004 à 12:06
D'autres trouveront des raisons d'etre anti Linux, chacun son truc.

ciao...
BruNews, Admin CS, MVP Visual C++
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 12:09
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...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2004 à 12:11
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++
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 12:17
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...
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
19 avril 2004 à 19:44
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
0
Rejoignez-nous