1

Je me suis absenté pendant quelques temps du cercle TI. Je reviens et voilà que TIGCC permet de faire des librairies et de les utiliser de la manière la plus simple du monde. Mais voilà: ça ne marche pas pour moi!

J'ai créé une librairie toute simple:
(à mettre dans un fichier "vinf")

#define USE_TI89
#include <tigcclib.h>

DLL_INTERFACE

void V_Disp(void);

DLL_ID 100000000
DLL_VERSION 1,11
DLL_EXPORTS V_Disp

DLL_IMPLEMENTATION

void V_Disp(void)
{
DrawStr ( 140, 90, "V1.11", A_NORMAL);
}

Mon problème est que je n'arrive pas à la lancer à partir de mon programme:

#define USE_TI89 // Compile for TI-89
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define MIN_AMS 100 // Compile for AMS 1.00 or higher
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files

#define V_Disp _DLL_call(void,(void),0)

// Main Function
void intro(void)
{
if (LoadDLL ("vinf", 100000000, 1, 10) != DLL_OK)
{
DlgMessage ("ERROR", "vinf.DLL introuvable ou incorrecte!", BT_OK, BT_NONE);
return;
}
clrscr ();
V_Disp ();
UnloadDLL ();
FontSetSys( F_8x10);
DrawStr ( (160-DrawStrWidth ( "TEST", F_8x10))/2, 10, "TEST", A_NORMAL);
DrawLine ((160-DrawStrWidth ( "TEST", F_8x10))/2, 20, (160-DrawStrWidth ( "TEST", F_8x10))/2 + DrawStrWidth ( "TEST", F_8x10), 20, A_THICK1);
FontSetSys( F_6x8);
ngetchx();
}

// Main Function
void _main(void)
{
intro();
}


Si vous avez une idée????

Je précise que je n'ai même pas réussi à faire l'exemple donné par la TIGCC, mon problème était le même qu'ici

2

C'est quoi ton problème? Ton programme ne compile-t'il pas? Sinon, il se passe quoi quand tu le lances?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Ah, attends, peut-être que ton problème est le suivant:
Il faut obligatoirement:
A. compresser le programme avec ExePack ou
B. définir EXECUTE_IN_GHOST_SPACE.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

Le programme se compile très bien mais j'ai le message "vinf.DLL introuvable ou incorrecte!" qui apparait (alors que je voudrai voir la fonction V_Disp se lancer)

5

Bon:
1. Relis le message n°2.
2. Si ça ne sert toujours à rien, essaye: printf("%d",LoadDLL ("vinf", 100000000, 1, 10)); pour qu'on voie le code d'erreur renvoyé par LoadDLL.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

-compresser avec ExePack? dsl mais je ne sais pas comment fairesad
-en rajoutant EXECUTE_IN_GHOST_SPACE il n'y a aucun changements
-j'ai la valeur 1 avec printf("%d",LoadDLL ("vinf", 100000000, 1, 10));

7

IroS
a écrit : -j'ai la valeur 1 avec printf("%d",LoadDLL ("vinf", 100000000, 1, 10));

1, c'est DLL_NOTINGHOSTSPACE. Le problème est donc bien ce que je pensais.
-compresser avec ExePack? dsl mais je ne sais pas comment fairesad

[glow]eek QUOI??? eek[/glow]
C'est tout bête!!!
Project / Options / Compress file
Et c'est écrit dans la documentation!!!:
You will will want to exepack the program [...] In the IDE, this can be done through a check box in the project options; when using the command line compiler, you need to use the '-pack' switch.

-en rajoutant EXECUTE_IN_GHOST_SPACE il n'y a aucun changements

Tu l'as mis où? C'est dans le programme principal, avec #define SAVE_SCREEN et compagnie, qu'il faut mettre #define EXECUTE_IN_GHOST_SPACE.
Et ça aussi est écrit dans la documentation!!!

Et l'explication de ton problème est elle-aussi écrite dans la documentation:
A program which wants to use DLLs has to be executing from the so-called "ghost address space". This means that the program either has to be started through an external launcher which calls enter_ghost_space (which is always the case if it is exe-packed), or EXECUTE_IN_GHOST_SPACE needs to be defined at the beginning of the program. You will will want to exepack the program anyway if it is large enough. In the IDE, this can be done through a check box in the project options; when using the command line compiler, you need to use the '-pack' switch.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

J'ai bien mis EXECUTE_IN_GHOST_SPACE au début:

#define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 205
#define SAVE_SCREEN
#define EXECUTE_IN_GHOST_SPACE
#include <tigcclib.h>
.....etc

mais je redis ca que j'ai dit: ca ne change rien

Mais le fait de le compresser forme un prog ppg non? alors que je veux un executable!
Franchement la je suis perdumourn

9

L'erreur est toujours la même?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

toujoursmourntsss

11

Peux-tu m'envoyer le projet entier: fichiers .c, fichiers .tpr, fichiers .89z/.9xz/.89y/.9xy, à la fois ceux de la DLL et ceux du programme, pour que je regarde ce qui se passe? Je pense que c'est la manière la plus simple de trouver rapidement l'erreur.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

c bon ca marche merci beaucoup de ton aidetoptop

par contre je me retrouve maintenant avec ma DLL, mon prog en ASM et mon prog en PPG et si je supprime le PPG, le ASM me dis qu'il en a besoin? j'ai vraiment pas tout compris sur le compression moitriso

M'enfin ca marche, c le principaltop

13

IroS a écrit :
par contre je me retrouve maintenant avec ma DLL, mon prog en ASM et mon prog en PPG et si je supprime le PPG, le ASM me dis qu'il en a besoin? j'ai vraiment pas tout compris sur le compression moitriso

Le fichier ASM est un lanceur-décompresseur, et le fichier PPG est le vrai programme, mais compressé, et donc impossible à exécuter directement. Il faut donc les 2 fichiers à la fois.

Et ce que je ne comprends pas, c'est pourquoi EXECUTE_IN_GHOST_SPACE n'a pas marché.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

EXECUTE_IN_GHOST_SPACE marche en réalité, c juste que je suis un peu trop étourdi et soit je ne mettait que EXECUTE_IN_GHOST_SPACE , soit que la compressiongrin
mais avec les 2 en même tps ca marche

15

Mais non, tu n'as rien compris. Un seul des 2 devrait suffir! EXECUTE_IN_GHOST_SPACE ne sert strictement à rien si tu as mis la compression!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

16

je viens de comprendre pourquoi:


#define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 205
#define SAVE_SCREEN
#define EXECUTE_IN_GHOST_SPACE
#include <tigcclib.h>

->Ca marche

#define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 205
#define SAVE_SCREEN
#include <tigcclib.h>
#define EXECUTE_IN_GHOST_SPACE

->ca marche pas

tu as raison un seul suffit.
je crois bien que j'ai encore beaucoup à apprendre en C, je vais m'y remettre dès ce soir

17

IroS a écrit :
je viens de comprendre pourquoi:


#define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 205
#define SAVE_SCREEN
#define EXECUTE_IN_GHOST_SPACE
#include <tigcclib.h>

->Ca marche

#define USE_TI89
#define OPTIMIZE_ROM_CALLS
#define MIN_AMS 205
#define SAVE_SCREEN
#include <tigcclib.h>
#define EXECUTE_IN_GHOST_SPACE
->ca marche pas

Normal, tous les options sont gérées par tigcclib.h, donc si tu les mets après, c'est trop tard!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité