Problème à la creation de variable (sdk)
Posté le 23/12/2013 17:06
Bonjour
Je débute dans les add-ins ,j'ai donc décidé de commencer avec un petit texte déroulant de haut en bas.
Pour se faire,j'essaie de faire ma propre variable "text" avec dedans des coordonnée et du texte.
Malheureusement j'ai des erreurs dont je ne trouve pas de solution , voici mon code ...
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[brown]#include <stdio.h>[/brown]
[brown]#include [gray]"text.h"[/gray][/brown]
[brown]#include <stdlib.h>[/brown]
[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum)
{
[purple]unsigned int[/purple] key;
Bdisp_AllClr_DDVRAM();
Text menu;
menu.x = [maroon]5[/maroon];
menu.y = [maroon]5[/maroon];
menu.text = [gray]"Menu"[/gray];
[b][blue]while[/blue][/b](1){
GetKey(&key);
}
[b][blue]return[/blue][/b] 1;
}
[brown]#pragma section _BR_Size[/brown]
unsigned long BR_Size;
[brown]#pragma section[/brown]
[brown]#pragma section _TOP[/brown]
[purple]int[/purple] InitializeSystem(int isAppli, unsigned short OptionNum)
{
[b][blue]return[/blue][/b] INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
[brown]#pragma section[/brown]
et voici mon .h
typedef struct Text Text;
struct Text
{
int x;
int y;
char text;
};
Les message d’erreurs sont :
W:\François\Documents\CASIO\Add in\defikage\defi.c(14) : C2234 (E) Illegal typedef name reference
W:\François\Documents\CASIO\Add in\defikage\defi.c(15) : C2225 (E) Undeclared name "menu"
W:\François\Documents\CASIO\Add in\defikage\defi.c(15) : C2203 (E) Illegal member reference for "."
W:\François\Documents\CASIO\Add in\defikage\defi.c(15) : C2220 (E) Modifiable lvalue required for "="
W:\François\Documents\CASIO\Add in\defikage\defi.c(16) : C2203 (E) Illegal member reference for "."
W:\François\Documents\CASIO\Add in\defikage\defi.c(17) : C2203 (E) Illegal member reference for "."
W:\François\Documents\CASIO\Add in\defikage\defi.c(17) : C2222 (E) Type not compatible for "="
Merci de prendre de votre temps pour m'aider.
Citer : Posté le 23/12/2013 18:01 | #
D'abord, yu dois déclarer menu avant Bdisp_AllClr_DDVRAM. Ensuite, les Char sont (des tanks ) des chaînes de caractères donc des tableaux, je pense(mais je ne suis pas sur) que tu devras faire char text [nombre de caractères du mot];
Citer : Posté le 23/12/2013 18:09 | #
Dans ton structure, 'text' est une chaîne de caractère, donc il ne faut pas mettre 'char text', mais 'char* text'
voilà le .h
typedef struct Text
{
int x;
int y;
char[b]*[/b] text;
} Text;
Citer : Posté le 23/12/2013 18:16 | #
tu doit effectivement déclarer toutes tes variables avant de faire quoi que ce soit (uniquement si tu es en C, en C++ on peut les déclarer n'importe ou), et les chaines de caractères doivent être comprises dans un tableau de char de taille = nombre de caractères +1
D'ailleurs, je pense que tu ne peut remplir une chaîne de caractère comme ça, tu peut juste le faire a la déclaration. Utilise memcpy ou strcat pour pallier a ce problème.
@smash : il veut l'utiliser comme chaine de caractère, il faut donc déclarer un tableau, et pas un pointeur
#include <stdio.h>
#include "text.h"
#include <stdlib.h>
#include "string.h"
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
Text menu;
Bdisp_AllClr_DDVRAM();
menu.text[0]=0; //pour eviter les problemes avec strcat
menu.x = 5;
menu.y = 5;
strcat(menu.text,"Menu");
while(1){
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
struct Text
{
int x;
int y;
char text[100];//on prend large au cas ou
};
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 24/12/2013 13:10 | #
Merci , j'ai une dernière erreur
main.c(17) : C2233 (E) Illegal array reference
ps j'ai pris la version de Dodormeur.
Citer : Posté le 24/12/2013 14:07 | #
As-tu bien créé la structure (2ème code) ?