Fonction standard et asm inline [Résolu]

Signaler
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Bonsoir,

Voila, j'ai essayé a plusieurs reprises d'appeler une fonction une fonction standard tel que strcpy, strcmp, memset (n'est pas standard mais marche pas)...

call dword ptr strcpy (j'ai essayé sans dword ptr oci)

error C2415: type d'opérande incorrect
error C2420: 'strcpy' : symbole non conforme dans premier opérande

Je les appelle a partir d'un code asm inline (naked), et je ne comprends vraiment pas, les headers correspondant sont bien inclues pourtant. Enfin, si quelqu'un a une solution, je la prends !
Merci ++

15 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Mais qu'ai-je dit plus haut ????
strcpy N'EXISTE PAS EN TANT QUE FONCTION.
C'est une MACRO.
on ne fera donc pas
call macro , n'a aucun sens
en asm ce sera direct
...
mamacro
....
et le code est mis en place du jeton 'mamacro'.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Ce ne sont pas des fonctions mais des MACROS quand tu compiles.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Ok, ca je savais pas, mais tu parles de toutes les fonctions standard ? Elles sont toutes des MACROS ?
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
et pour l'histoire de l'appel a strcpy ki ne marche, j'ai remplacé par fonction perso..
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
si tu remplaces la macro par une fonction, tu ralentis inutilement le prog.

Un bon compilo C insere beaucoup de choses directement en macro, memcpy, memcmp, strcat etc...

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Mais justement, ca compile pas, et je ne sais pas koi faire pour kil compile.
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Et la fonction ke j'ai substitué a strcpy est inline, donc a le mm effet.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
prends exemple sur la mienne, inline bien entendu.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
"j'ai remplacé par fonction perso.. ", je l'avoue, inspiré de ta fonction bnstrcpy()...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
alors doit compiler.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
ah oui au fait, la mienne n'est pas fonction mais bien macro, il y a 'inline' au debut.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
uè ca compile avec ta fonction mais pas avec la standard, et jvoulais juste savoir pkoi, jtrouve ca bizar !
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
ben donne voir son proto et comment tu l'appelles.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
char *strcpy(char *, const char *)
et je fais un call dword ptr strcpy
C la fonction standard !
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Ah je ne savais pas qu'une macro s'appelait de cette maniere, dsl...

merci ++