begin process at 2012 05 30 04:13:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Memcpy


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Memcpy

mardi 14 décembre 2010 à 20:46:11 | Memcpy

LandTech

Bonjour,

Je pose cette question ici, car je n'ai trouvé la réponse nul part ailleurs.

J'aurais voulu savoir si il était possible d'utiliser une fonction comme memcpy, memset, RtlCopyMemory ou autre fonction de manipulation de la mémoire sans utiliser de librairies << auxiliaires >> ni d'utiliser la MSVCRT.lib ou la LIBCMT.lib, tout ceci pour avant tout, des raisons de taille d'executables.

Car, l'executable sur lequel je travaille fait 9,50 ko avec la LIBCMT.lib, et 5,00 ko avec la MSVCRT.lib et le manifest.

Si quelqu'un avait une solution,

Merci d'avance.

LandTech
mardi 14 décembre 2010 à 22:41:17 | Re : Memcpy

mogwai93

pour memcpy, tu as CopyMemory
pour memset, tu as FillMemory

et toutes les autres sur msdn :
http://msdn.microsoft.com/en-us/library/aa366781%28v=vs.85%29.aspx


mardi 14 décembre 2010 à 23:09:10 | Re : Memcpy

LandTech

Bonjour,

Justement, j'ai vérifié dans les headers de windows (précisément WinBase.h et WinNT.h) et en réalité CopyMemory est une simple défine de RltCopyMemory elle même define de memcpy et FillMemory et une défine de memset

J'avais utilisé ces fonctions avant de poster et je me suis rendu compte de ces defines.

Merci quand même.

Cordialement

LandTech

PS : voici les defines en question :

(WinBase.h)

Code C/C++ :
#define CopyMemory RtlCopyMemory
#define FillMemory RtlFillMemory


et

(WinNT.h)

Code C/C++ :
#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length))
#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
mercredi 15 décembre 2010 à 09:02:52 | Re : Memcpy

BruNews

Administrateur CodeS-SourceS
9.5 - 5 = 4.5 Ko

Si peu contre un énorme ralentissement, c'est le contraire de ce que l'on cherche en faisant du natif.

ciao...
BruNews, MVP VC++
mercredi 15 décembre 2010 à 09:32:49 | Re : Memcpy

buno

Administrateur CodeS-SourceS
Hello,
LanTech, je trouve que tu pinailles un peu...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
mercredi 15 décembre 2010 à 19:02:23 | Re : Memcpy

LandTech

Bonjour,

Je sais que 4.5 Ko ne vaut pas le coup de perdre en vitesse, mais en faite, si je pouvais me séparer de cette lib, je devrais tomber aux alentours de 3 Ko voir moins, ce qui serait parfait.

Or, pour cela, il faut que je trouve une fonction qui me permette de ne pas utiliser la lib, et je sèche.

buno -> je sais que je suis peut-être perfectionniste au Kilo-Octet près, mais je trouve que 9.5 Ko ou même 5 est énormee pour un programme qui fait si peut de chose. Surtout qu'il n'a pas de ressource.

Si quelqu'un avait une solution, SVP.

LandTech.

PS: je veut avoir un executable non compressé, donc inutile de me dire "Utilise UPX" par exemple.
mercredi 15 décembre 2010 à 19:20:32 | Re : Memcpy

BruNews

Administrateur CodeS-SourceS
Code C/C++ :
__inline void myMEMCPY(BYTE *pdst, BYTE *psrc, DWORD n)
{
  do {
    *pdst++ = *psrc++;
  } while(--n);
}

ciao...
BruNews, MVP VC++
mercredi 15 décembre 2010 à 19:30:51 | Re : Memcpy

LandTech

Bonjour,

Merci BruNews, je teste ça de suite, et aurai tu la même chose pour memset ?

Cordialement

LandTech
mercredi 15 décembre 2010 à 19:35:04 | Re : Memcpy

LandTech

Bonjour,

Ah, zut, ton code ne s'applique pas aux void* BruNews, mais merci quand même.

Cordialement

LandTech
mercredi 15 décembre 2010 à 19:46:37 | Re : Memcpy

LandTech

Bonjour,

J'aurai une question,

si on faisait un code asm du genre :
Code :
pop edx ; ça serait n
mov ecx, 0
START_COMPTEUR:
mov eax, DWORD PTR [ebp-1] + ecx ; Pour récupere par exemple l'octet ecx dans src
mov DWORD PTR [ebp-2] + ecx, eax ; Pour place l'octet recuper dans dst + ecx
add ecx
cmp ecx, edx
jne START_COMPTEUR


Cordialement

LandTech

1 2

Cette discussion est classée dans : fonction, utiliser, lib, msvcrt, memcpy


Répondre à ce message

Sujets en rapport avec ce message

utiliser une fonction d'une lib C dans une classe c++ [ par snook ] Bonjour,j'aimerais savoir comment doit on proceder pourappeler une fonction d'une librairie ecrite en C dansmon programme C++?exemple: ma lib possede utiliser une librairie faite pour du C dans du C++??? [ par cartouh ] Bonjour,j'essaie d'utiliser la librairie CPDFLib (http://www.fastio.com/)je l'ai compilé sous visual comme ils disent dans la doc, j'obtient un .libje differencier fichier/dossier [ par glipper ] Bonjour,je voudrais juste savoir quelle fonction utiliser pour faire la difference entre un fichier et un dossier... j'ai essayé d'utiliser la fonctio Flash OCX sans MFC [ par Bilock ] Bonjour,Depuis quelque temps je cherche un moyen d'utiliser Flash OCX sans faire appel aux MFC. Et vu mon niveau en prog ben c'est pas facile.Dernière Dlg de connection [ par coockiesch ] Hello!!!J'aimerait faire 'apparaitre' la boite de dlg de connection internet de windows.J'ai essayé InternetAutodial, mais elle semble avoir aucun eff prob avec dll et lib [ par zelze ] voila mon prob:j'ai inséré le lib dan le projet, j'ai indiqué:extern "C" __declspec(dllimport) int fonction(char*);fonction(texte);mais lorsque je veu Attendres x secondes [ par JosueClement ] Je compile tous mes programmes avec Borland Turbo C++ 4.5 !Je voudrais utiliser une simple fonction qui fasse attendre x sec.Mais la fonction sleep(); Re-utiliser une variable [ par squall51 ] J'essaie de créer un programme.J'ai du le diviser en plusieurs fonction.J'aimerai savoir si il est possible d'utiliser une variable definie dans un fo Comment utiliser SwitchToThread ?? [ par vinvay ] Losque je veux mettre un thread à la fin de la liste d'ordonnancement, il faut que j'utilise la fonction SwitchToThread() à l'intérieur du thread conc analyseur d'expression [ par loicus ] Voila, je cherche une fonction, qui pourrait transformer une expression (suite de char) en une ligne de code qui sera utiliser par le programmeex : ma


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,702 sec (3)

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