begin process at 2012 05 29 03:47:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Inline asm + classe = erreur!


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

Inline asm + classe = erreur!

jeudi 15 janvier 2004 à 02:30:31 | Inline asm + classe = erreur!

Darkneon

Salut a tous.

Lorsque je mets du codes assembleur dans ma classe le compilateur me renvoit l'erreur suivante.
"Inline assembly not allowed in inline and template functions"

Pour mettre le code j'utilise _asm { ... }, c'est dans une function dans la section public de la classe. La class est dans un header.

Quelqu'un sait comment contourner se probleme sans utiliser REGS ou les registres directes comme _AX. J'utilise TC++.

Merci d'avance !



Party 'till you drop !!!
jeudi 15 janvier 2004 à 12:28:26 | Re : Inline asm + classe = erreur!

ymca2003

apparement selon l'erreur, tu ne pas mettre d'asm dans un fonction inline(définie dans le corps de la classe) :



class test
{
void ma func();
};


void test::func()
{
__asm{
... de l'asm ici
}
}

ça devrait marcher
jeudi 15 janvier 2004 à 18:30:26 | Re : Inline asm + classe = erreur!

Darkneon

*se cogne le front contre le mur*

C'etait trop evident

Mais j'ai un autre probleme, lorsque j'utilise une variable declaree dans la section private de ma class, dans un bloque asm, cela me donne une erreur de "expression syntax error"?

Party 'till you drop !!!
jeudi 15 janvier 2004 à 19:45:01 | Re : Inline asm + classe = erreur!

ymca2003

le bloc asm est-il dans une méthode de la classe ?

met exemple pour voir l'erreur.
jeudi 15 janvier 2004 à 20:09:24 | Re : Inline asm + classe = erreur!

Darkneon

Oui, c'est dans la meme methode

Ex:


class ClassA() {
private:
int var;
public:
void Func();
};

void ClassA::Func() {
_asm MOV [var], AX;
}


Party 'till you drop !!!
jeudi 15 janvier 2004 à 20:13:04 | Re : Inline asm + classe = erreur!

Darkneon

Le compilateur me renvoit a la ligne ou il y a l'expression asm.


Party 'till you drop !!!
jeudi 15 janvier 2004 à 20:50:47 | Re : Inline asm + classe = erreur!

vecchio56

Administrateur CodeS-SourceS
tu n'as qu'a appeler une fonction non membre à partir de la fonction membre, ce qui te permettra de récupérer sans probleme les variables en private

jeudi 15 janvier 2004 à 20:58:52 | Re : Inline asm + classe = erreur!

Darkneon

Vecchio, je suis pas sur d'avoir tout a fait compris ce que tu veux dire, met un exemple.

En faite, je suis meme pas sur si t'as bien compris le probleme?

Party 'till you drop !!!
jeudi 15 janvier 2004 à 21:02:31 | Re : Inline asm + classe = erreur!

vecchio56

Administrateur CodeS-SourceS
ton problème c'est que dans ton code asm tu ne peux pas utiliser certaines variables parce qu'elles sont privées non?
Si elles étaient publiques, tu aurais le meme probleme ou pas?

jeudi 15 janvier 2004 à 21:06:46 | Re : Inline asm + classe = erreur!

Darkneon

Attend, je vais aller tester plus. Les variables sont privee en dehors de la class, mais peuvent etre utiliser partout dans la class. Le bloque asm est dans la class.

Je teste, je reviens.

Party 'till you drop !!!

1 2

Cette discussion est classée dans : erreur, utilise, classe, asm, inline


Répondre à ce message

Sujets en rapport avec ce message

protocole DLC en c++ [ par syl81 ] SalutJ'utilise le protocole DLC pour communiquer avec une imprimante et j'ai un problème avec la fonction AcsLan() : à l'édition de liens j'ai une err ClassName [ par garslouche ] Bonjour à tous,quand j'utilise Spy++ sur des fenêtres de programmes qui ne sont pas de moi, il donne le texte de la fenêtre et le nom de la classe. Co asm inline [ par tintin72 ] Bonjour,Je programme un petit jeu en OpenGL et j'aimerai savoir comment faire pour que les commandes clavier soit fluides et pas saccadées comme c'est erreur de compilation [ par Battousai ] salut tt le monde !1. pour quoi la ligne suivante est erronée ou plutot n'est pas accepte par le compilateur que j'utilise(turbo borland c++)char * ec LNK2005 Already defined erreur [ par mortiis ] Bonjour à tousJe fait un projet win32 et il y a 3 fichiersmain.cpp ou il y a la fonction WinMainPMKApp.h ou il y a la déclaration de la classe CPMKApp Erreur de segmentation... Qu'est ce que c'est ??? :o [ par Rouliann ] Salut tout le monde j'ai un gros problème et malgré tous mes essais je n'arrive pas à le résoudre... Il n'y a pas d'erreurs à la compilation mais lors variable private et static dans une classe [ par simtiers ] Salut ! Voilà, j'aimerais savoir comment fait-on pour utiliser une variable statique dans une classe, et que cette variable soit dans le bloc private erreur dans la classe [ par Miss1 ] je n'arrive pas a compiler. le sujet est de crée une taille, un pointeur sur le 1er element du tableau, un constructeur, un constructeur par recopie , Problème avec une Dll [ par nicooooo1 ] Bonjour, J'ai fait une Dll c++ que j'utilise sous VB6 sans problèmes, par contre lorsque je l utilise en c++ gros plantage........ Voilà un bout de co [c++mfc] DB [ par philo71 ] Bonjour,§Je developpe une apli avec acces aux donnée Slq serveur, j'utilise visual c++ 6.0 sp5,deplus j'utilise une classe CBaseRecord or MFC , tous s


Nos sponsors


Sondage...

Comparez les prix

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 : 1,139 sec (4)

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