Connexion
Vous n'avez pas encore de compte personnel ? Vous devriez en créer un. Une fois enregistré vous aurez certains avantages, comme pouvoir modifier l'aspect du site, ou poster des commentaires signés...
Support
Activité du Site

Pages vues depuis 06/01/2019 : 12 705 719

  • Nb. de membres 366
  • Nb. d'articles 2 837
  • Nb. de forums 24
  • Nb. de sujets 13
  • Nb. de critiques 0

Top 10  Statistiques

Index du forum »»  Développement »» Problème avec SimpleCat

Problème avec SimpleCat#1666

2Contributeur(s)
pierrepJeckel
2 Modérateur(s)
PapiosaurBeWorld
pierrep pierrepicon_post
j'ai testé SimpleCat et j'ai un problème:

dans le fichier .c généré par SimpleCat, dans la fonction GetString il y a la définition :

l = (LONG *)CatCompBlock;

make me dit :`CatCompBlock' undeclared (first use in this function)

et je n'ai pas trouvé de référence à CatCompBlock dans les !!!include!!!s !
Jeckel Jeckelicon_post
Citation : pierrep 
l = (LONG *)CatCompBlock;

make me dit :`CatCompBlock' undeclared (first use in this function)


Le CatCompBlock fait partie du .h généré contenant les chaînes par défaut.
Le tableau y est encadré par une balise #ifdef CATCOMP_BLOCK.
pierrep pierrepicon_post
voici in extenso le fichier .h genéré par simple cat :

#ifndef HELLOLOCALWORLD_SIMPLECAT_H
#define HELLOLOCALWORLD_SIMPLECAT_H 1

/*
** HelloLocalWorld_simplecat.h
**
** (c) 2006 by Guido Mersmann
**
** Object source created by SimpleCat
*/

/*************************************************************************/

#!!include!! "locale_strings.h" /* change name to correct locale header if needed */

/*
** Prototypes
*/

BOOL Locale_Open( STRPTR catname, ULONG version, ULONG revision);
void Locale_Close(void);
STRPTR GetString(long ID);

/*************************************************************************/

#endif /* HELLOLOCALWORLD_SIMPLECAT_H */

il n'y a pas CatCompBlock ! :-(
Jeckel Jeckelicon_post
Ce .h est celui de l'API de traduction.

Les définitions se trouvent dans l'autre .h, celui qui contient la traduction par défaut.
Par défaut il s'appelle "locale_strings.h" et contient l'anglais comme langue (en pratique, les définitions de ce fichier sont utilisées lorsque le catalog n'est pas disponible).
pierrep pierrepicon_post
La définition de CatCompBlock est dans le fichier .c généré par la rubrique "C Source (.c).." du memu Export.
J'ai remplacé le .c généré par "Locale Code Source (.c/.h)..." par ce fichier, je n'ai plus de pb avec CatCompBlock mais make me dit que msghello n'existe pas.

Pourtant dans le .c précédent il y a :

/****************************************************************************/


#ifdef CATCOMP_NUMBERS

#define msgHello 0

#define CATCOMP_LASTID 0

#endif /* CATCOMP_NUMBERS */


/****************************************************************************/


#ifdef CATCOMP_STRINGS

#define msgHello_STR "Hello, world!"

#endif /* CATCOMP_STRINGS */


/****************************************************************************/
#ifdef CATCOMP_ARRAY

struct CatCompArrayType
{
LONG cca_ID;
STRPTR cca_Str;
};

static const struct CatCompArrayType CatCompArray[] =
{
{msgHello,(STRPTR)msgHello_STR},
};

#endif /* CATCOMP_ARRAY */


/****************************************************************************/

et dans mon source j'ai :
printf("%s", msgHello);
et c'est la seule instruction.
Jeckel Jeckelicon_post
De mon côté, j'ai configuré ce fichier en tant que cible avec les catalogs.

Tu as dû cocher de mauvaises options pour les defines pour la génération du fichier C, car de mon côté je n'ai jamais eu de problème. ;-)
pierrep pierrepicon_post
je n'ai rien coché et ça ne marche toujours pas ! :-(

SimpleCat est simple pour faire des catalogues mais tres compliqué pour localiser un programme !!!
Jeckel Jeckelicon_post
Je t'ai envoyé un message privé avec mon email, écris-moi et je t'enverrai des exemples qui marchent pour moi, tu pourras comparer avec ce que tu fais.