Posté le 13/04/2014 10:10
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 84 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 27/04/2014 12:36 | #
bizzar il me met et des Argument mismatch dans libg85
Ajouté le 27/04/2014 à 13:26 :
il y aurait pas une autre solution j ai peur de passer pour un nul mais je n'arrive pas a m'en servir il me met plein d'erreur
Ajouté le 27/04/2014 à 13:31 :
a non c'est bon j'ai du rajoutter #include "Keybios.h" et en faire un fichier .h mais c'est bon ca marche
Ajouté le 09/05/2014 à 12:47 :
slt c est moi d'abord merci pour les réponses j'ai reussi a creer mon premier jeu en C c 'est une sorte de mini mario pour l'instant il y a deux map il fait 52ko mais je peux pas le poster sur le site a chaque fois mon ordi plante.
Sinon c 'est pas pour ça que j'ai poster le message j ai cru voir que le SDK pouvait compiller du C++ et j'ai commencer a l'apprende mais je block (déjà )
{
public:
Perso(int level);
void attaquer(Perso &cible);
void morfle(int degat);
private:
int m_vie;
int m_attaque;
int m_defense;
}
le code se trouve dans un fichier .h comme demmander dans le site du zero mais il m'ecrit:
illegal token Perso
illegal token {
illegal token }
j'ai surement fait une grosse erreur mais je la vois pas :aie2:
Citer : Posté le 09/05/2014 12:54 | #
Il ne te manque pas un ';' après le '}' ?
Citer : Posté le 09/05/2014 13:04 | #
si je l'ai pas selectionné quand j'ai copier le code dsl
Ajouté le 09/05/2014 à 14:24 :
alors pas d'idee ?
Citer : Posté le 09/05/2014 15:52 | #
Ce qui est là est correct.
Pourrait-on avoir le code complet ?
Citer : Posté le 09/05/2014 16:25 | #
le fichier .c
#include "classe.cpp"
#include "classe.h"
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
Bdisp_AllClr_DDVRAM();
Perso nicolas(2), ivan(1);
nicolas.attaquer(ivan);
ivan.attaquer(nicolas);
GetKey(&key);
}
return 1;
}
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section
le .h
#define desclass
class Perso
{
public:
Perso(int level);
void attaquer(Perso &cible);
void morfle(int degat);
private:
int m_vie;
int m_attaque;
int m_defense;
};
#endif
le .cpp
void Perso::attaquer(Perso &cible)
{
cible.morfle(m-attaque);
}
void Perso::morfle(int degat)
{
m_vie-= degat;
if(m_vie<0)m_vie=0;
}
bool Perso::testvie()
{return m_vie>0;}
Perso::Perso(int level)
{
m_vie=100*level;
m_attaque=50*level:
}
Citer : Posté le 09/05/2014 16:30 | #
Dans le .cpp:
Je suppose que tu voulais m_attaque.
Citer : Posté le 09/05/2014 18:00 | #
oui merci mais sa change rien
voila les erreur
C:\Users\Nico\Desktop\casio\sdk\rpg\classe.h(3) : C2500 (E) Illegal token "Perso"
C:\Users\Nico\Desktop\casio\sdk\rpg\classe.h(4) : C2500 (E) Illegal token "{"
C:\Users\Nico\Desktop\casio\sdk\rpg\classe.cpp(3) : C2142 (E) Illegal void type
C:\Users\Nico\Desktop\casio\sdk\rpg\classe.cpp(3) : C2500 (E) Illegal token ":"
C:\Users\Nico\Desktop\casio\sdk\rpg\rpg.c(12) : C2500 (E) Illegal token "nicolas"
C:\Users\Nico\Desktop\casio\sdk\rpg\rpg.c(14) : C2203 (E) Illegal member reference for "."
C:\Users\Nico\Desktop\casio\sdk\rpg\rpg.c(15) : C2203 (E) Illegal member reference for "."
C:\Users\Nico\Desktop\casio\sdk\rpg\rpg.c(20) : C2500 (E) Illegal token "return"
C:\Users\Nico\Desktop\casio\sdk\rpg\rpg.c(21) : C2500 (E) Illegal token "}"
Citer : Posté le 09/05/2014 18:10 | #
Oui, ça ne peut pas fonctionner si tu essaie d'utiliser une classe dans un programme .c
Il faut le modifier en source C++.
Pour cela, utilise le code d'exemple (PJ du dernier post de ce topic).
Tu déplaces le contenu de ton ancien AddIn_Main dans le fonction main().
Ensuite tu supprimes le .c, tu l'enlèves des fichiers du projet et tu y ajoutes ton nouveau .cpp.
Citer : Posté le 10/05/2014 08:07 | #
ok ça marche mais il me met une erreur que je ne comprend pas
sdk\rpg\classe.h(3) : C5256 (E) Invalid redeclaration of type name "Perso" (declared at line 3)
Citer : Posté le 10/05/2014 08:09 | #
Tes #ifnedf et #define sont différents.
Citer : Posté le 10/05/2014 08:16 | #
bien vu mais maintenant il me met
** L2300 (E) Duplicate symbol "Perso::Perso(int)" in "C:\Users\Nico\Desktop\casio\sdk\rpg\Debug\classe.obj"
Citer : Posté le 10/05/2014 08:24 | #
Je ne pense pas que ce soit pour ça... mais un header C++, c'est un fichier .hpp. Si tu lui mets des .h, tu auras d'autres problèmes.
Je regarde pour l'autre erreur.
Ajouté le 10/05/2014 à 08:25 :
Pourquoi #include "classe.cpp" ? Ça n'a rien à faire là, si le fichier est dans le projet, il ne faut pas l'inclure.
C'est une règle d'or: on inclut uniquement les headers, jamais de sources.
Citer : Posté le 10/05/2014 08:29 | #
ça fonctionne dsl pour la règle d'or je ne l'avais jamais lu ou très vite oubliée :aie2:
Citer : Posté le 10/05/2014 08:54 | #
Les fichiers headers sont inclus au début des sources pour indiquer, entre autres, les define et les prototypes. C'est le texte lui-même qui est copié par le préprocesseur d'un fichier à l'autre.
Les sources, elles, sont compilées en fichiers objets (souvent .o) qui sont utilisés par l'éditeur de liens (ici OptimizageLinker) pour former ton fichier exécutable (ici le G1A). C'est pour ça qu'on ne gère les sources que par la fenêtre "Files in project".
Du coup, tu avais ton fichier classe.cpp qui contenait les fonctions de Perso, et le fichier principal qui les contenait aussi, d'où l'erreur.
Au fait, dernière chose. Lorsque tu veux inclure du code C dans ton code C++, utilise
{
...
}
C'est au moins nécessaire lorsque tu veux inclure des headers C (.h) du système (stdlib, string, math, ...), sans quoi le compilateur t'insulte en te disant qu'il ne sait pas de quel fichier tu parles.
Citer : Posté le 10/05/2014 11:44 | #
oki thank you very much
Ajouté le 11/05/2014 à 09:46 :
salut j'avais 2 autres questions:
1) les variables et les tableaux sont-elles supprimer de la memoire si je quitte l'addin ?
2) peut on creer un fichier dans la calculatrice pour stocker des donner comme pour faire une sauvegarde ?
Citer : Posté le 11/05/2014 09:48 | #
Les variables sont supprimées de la mémioire dès que tu quittes le bloc de code dans lequel elles sont définis.
Attention par contre à l'allocation dynamique.
Pour les fichiers oui. Il doit y avoir un tutoriel dessus.
M****, c'est moi qui doit l'écrire
Citer : Posté le 11/05/2014 09:58 | #
dsl j'ai un peu de mal avec les tutos en general j'ai du mal a les comprendre parcequ'il m'aprenne des truc en plus dont je ne voit pas d'utilitee et sa m'enbroulle
Citer : Posté le 11/05/2014 10:01 | #
Je suis embêté parce que la je ne pourrais pas tout t'expliquer, ce serait beaucoup trop long.
Tu as regardé dans la documentation de fxlib ?
http://wiki.planet-casio.com/fr/Fxlib.h#Fonctions_de_manipulation_des_fichiers
Citer : Posté le 11/05/2014 10:02 | #
ok est normalement le fichier creer se trouve ou dans la memoire de la calto ?
Citer : Posté le 11/05/2014 10:04 | #
Principale ou secondaire, selon la fonction que tu utilise. Tu peux aussi aller dans la carte SD.
Citer : Posté le 11/05/2014 10:12 | #
ok et encore un petit probleme
Personnage::~Personnage()
{
}
ça normalement c'est un detructeur
mais si je creer un personnage appeler nicolas et que je veux le suprimer je remplace quel Personnage du code par nicolas ?