hibou Le 06/10/2003 à 10:07 j'ai une librairie statique dans laquelle j'ai une fonction qui a besoin en parametre d'une fonction d'affichage :
void fct_comp(...args..., TypeFctDraw fct_draw) {
...
if (fct_draw!=NULL)
fct_draw(...params...);
...
}
ensuite, dans un autre prog, j'utilise cette lib et je fais un appel de cette fonction :
void fct_draw(...param...) {
DrawStr(x1,....);
}
void _main() {
fct_comp(...,fct_draw);
}
et la, c'est plantage assuré...
et si je mets un DrawLine a la place de DrawStr, c'est pareil.
Mais si je mets juste un printf, ca marche nickel...???
Si qq'un sait d'ou ca peut venir ?
j'ai pas les sources la, donc je peux pas les mettre. Quand a la version de tigcc, ca doit etre la 94 SP4
je peux pas passer a la 95 car j'ai pas le net chez moi, et le seul moyen de récupérer des données depuis mon ecole (la ou j'accede a internet) sont les disquettes....
PpHd Le 06/10/2003 à 11:52 C'est quoi la methode pour appeller les romcalls ? OPTIMIZE_ROM_CALLS ?
hibou Le 06/10/2003 à 12:05 normalement, ca y est dans les deux....
mais je vais veriifier
De toute façon OPTIMIZE_ROM_CALLS est vraiment un hack sale, qui peut facilement être source de plantages... Et le gain est vraiment très faible.
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Sally Le 06/10/2003 à 14:04 très faible ? ça dépend, non ?

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
Oui, ça dépend. Mais pour un certain nb de fonctions, ça ne fait que gaspiller un registre.
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Normalement, OPTIMIZE_ROM_CALLS est un gain assez important.
Sally Le 07/10/2003 à 16:08 sous unix : fais man dd
la syntaxe, ça donne dd if=larchivequetuveuxdecouper of=lepremiermorceau bs=1k count=1350 (ou peut-être un peu plus je ne sais pas combien exactement tient sur une disquette)
puis dd if=larchivequetuveuxdecouper of=lautremorceau bs=1k skip=1350
et pour reconstituer : cat lepremiermorceau lautremorceau > larchivereconstituée

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
hibou Le 08/10/2003 à 16:00 #13 Kevin>ah ca veut dire ca callback.... j'avais vu mais je pensait pas que c'est ce que je faisait. mea coulpa.
Pollux>si j'ai bien compris, la solution que tu me donne est pour le programme, pas pour la librairie. Car mon prog est juste la pour tester la librairie. Ce sera donc a l'utilisateur de la lib de savoir ce qu'il fait...
Ben non, OPTIMIZE_ROM_CALLS ne suit pas la documentation (parce que ce n'est pas du tout supporté), et ne marche donc pas pareil.
Sally Le 10/10/2003 à 19:05 Au fait, est-ce que -fomit-frame-pointer permet d'utiliser a6 pour faire ce qu'on veut (par exemple y mettre une variable globale) ?

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
Sally Le 10/10/2003 à 19:13 Oui ben je me vois mal me passer de variables globales dans foblub...
(remarque qu'à l'origine c'était du code que j'ai récupéré, et j'ai bien éliminé les deux tiers des variables globales... mais il en reste plein)

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
Sally Le 10/10/2003 à 19:39 Pollux > Oui, mais quand tu compiles en plusieurs fichiers objets, tu n'aurais pour tous sauf un qu'une déclaration extern... donc si le compilateur peut décider suivant les fichiers de ne pas mettre les mêmes variables dans des registres, ça signifie qu'à chaque fois que l'un d'eux appelle une fonction d'un autre il faut préalablement qu'il copie la variable en mémoire, et que la fonction appelée doit aller chercher celles qu'elle veut, elle, mettre dans des registres ?
Bon, évidemment, le problème ne se pose que pour les vraies variables globales, pas pour les "static".

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#