:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 06/07/2006, 14h02   #1
spyk
Membre
 
Date d'inscription: 04/06/2006
Messages: 33
Par défaut Problème avec OSL et declaration de fonction

Bonjour a tous!
Tout d'abord, voici mon code:
Code PHP:
//La librairie principale OSLib
#include <oslib/oslib.h>

//Les librairies pour le WiFi
#include <pspnet.h>
#include <pspnet_inet.h>
#include <pspnet_apctl.h>
#include <pspnet_resolver.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h> 
#include <netdb.h>




//les callbacks
PSP_MODULE_INFO("My PSP GamePad"011);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);
//#define debug_level 1


int declar_error(int debuglvlchar argu1char argu2)
{
 
oslprintf(argu1);
 return 
0;
}

int main()
{
       
//Initialisation de la librairie
    
oslInit(0);
    
//Initialisation du mode graphique
    
oslInitGfx(OSL_PF_88880);
    
//Initialisation de la console texte
    
oslInitConsole();

    
//affiche sur l'écran le nom du programme
    
oslPrintf("--MyPSPGamepad V0.002--");
//********************************************************************************************
//
//--------------------------"Centre du programme"---------------------------------------------
//
//********************************************************************************************
declar_error(1"Charchement des modules inet""");
    if(
pspSdkLoadInetModules() < 0)
    {
        
declar_error(3"Error, could not load inet modules\n""");
        
    }











//********************************************************************************************
//
//--------------------------"Fin du programme"---------------------------------------------
//
//********************************************************************************************



    //attend l'appui sur une touche
    
oslWaitKey();   
    
//on quitte l'application
    
oslEndGfx();
    
oslQuit();
    return 
0;

Voila, donc je suis parti du tuto hello world.
Sauf, que au lieu d'utiliser oslprintf, a chaque fois que je veux indiquer quelque chose, pour facilité le debuggage, je me suis dit, que je devrais faire une fonction declar_error(), la ou on indique le msg d'erreur, et le niveau de priorité, comme ca , quand mon programme bug, je me DEBUG_LEVEL = 0, ainsi, tout les message passe, sinon, je met DEBUG_LEVEL=2, ainsi, seul les message important passe.
(Inutile de chercher dans la fonction, je n'ai pas encore codé, pour que sa prenne en charge le niveau de priorité, pour l'instant, sa fait que afficher)

Cependant, voici mon probleme.
Quand dans la fonction, je dit d'utiliser oslprintf, la librairie OSL, n'a pas encore été initialisé, puisque elle est initialisé au debut de main()...
Du coup, le compilateur me dit
Citation:
main.o: In function `declar_error':
main.c.text+0x8): undefined reference to `oslprintf'
Si quelqun pouvais m'aider svp...

Merci!

Dernière modification par M@cZér0 ; 26/09/2007 à 18h16.
spyk est déconnecté   Réponse avec citation

Publicité

Vieux 06/07/2006, 14h07   #2
spyk
Membre
 
Date d'inscription: 04/06/2006
Messages: 33
Par défaut

Mea coulpa....

Je n'ai pas mit de P majuscule a oslPrintf

Que je suis con...

Voici comme ca devait etre:
Code PHP:
//La librairie principale OSLib
#include <oslib/oslib.h>

//Les librairies pour le WiFi
#include <pspnet.h>
#include <pspnet_inet.h>
#include <pspnet_apctl.h>
#include <pspnet_resolver.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>




//les callbacks
PSP_MODULE_INFO("My PSP GamePad"011);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);
//#define debug_level 1


void declar_error(int debuglvlchar *argu[])
{
oslPrintf(argu[1]);

}

int main()
{
     
//Initialisation de la librairie
    
oslInit(0);
    
//Initialisation du mode graphique
    
oslInitGfx(OSL_PF_88880);
    
//Initialisation de la console texte
    
oslInitConsole();

    
//affiche sur l'écran le nom du programme
    
oslPrintf("--MyPSPGamepad V0.002--");
//********************************************************************************************
//
//--------------------------"Centre du programme"---------------------------------------------
//
//********************************************************************************************
declar_error(1"Charchement des modules inet");
    if(
pspSdkLoadInetModules() < 0)
    {
        
declar_error(3"Error, could not load inet modules\n");
        
    }











//********************************************************************************************
//
//--------------------------"Fin du programme"---------------------------------------------
//
//********************************************************************************************



    //attend l'appui sur une touche
    
oslWaitKey();   
    
//on quitte l'application
    
oslEndGfx();
    
oslQuit();
    return 
0;

Cependant, j'ai encore un petit probleme :
Citation:
main.c: In function 'main':
main.c (47) : warning: passing argument 2 of 'declar_error' from incompatible pointer type
main.c (48) : warning: implicit declaration of function 'pspSdkLoadInetModules'
main.c (50) : warning: passing argument 2 of 'declar_error' from incompatible pointer type
Je comprend pas bien en quoi est le probleme...

Dernière modification par spyk ; 06/07/2006 à 14h10.
spyk est déconnecté   Réponse avec citation
Vieux 06/07/2006, 15h01   #3
Kyros
Membre
 
Date d'inscription: 10/11/2005
Localisation: Grenoble
Messages: 38
Par défaut

Citation:
Envoyé par spyk
main.c: In function 'main':
main.c (47) : warning: passing argument 2 of 'declar_error' from incompatible pointer type
main.c (48) : warning: implicit declaration of function 'pspSdkLoadInetModules'
main.c (50) : warning: passing argument 2 of 'declar_error' from incompatible pointer type
, en fait c'est juste que quand tu appelles ta fonction "declar_error" le 2e arguments est pas du "bon" type :

Citation:
void declar_error(int debuglvl, char *argu)
" argu " est un pointeur puisque " argu " est un tableau , ta fonction demande donc un pointeur (char*) de pointeur (argu) comme 2e argument .

Citation:
void declar_error(int debuglvl, char *argu)
ou
Citation:
void declar_error(int debuglvl, char argu)
Ca marchera mieux (pointeur de caractère) puisque "Error, could not load inet modules\n" est une chaine de caractère .

Enfin bon c'est que des warnings , pas d'grosses erreurs .
Sinon pour la déclaration implicite ... bah j'sais pas ce que c'est " pspSdkLoadInetModules " , mais faudrait le déclarer en prototype en en-tête de ton fichier .

Voila c'est tout j'pense , ca devrait marcher sans warning ...
Kyros est déconnecté   Réponse avec citation
Vieux 06/07/2006, 15h41   #4
spyk
Membre
 
Date d'inscription: 04/06/2006
Messages: 33
Par défaut

Merci de tes reponses, ca m'a éclairé.
Sinon, pspSdkLoadInetModules, c'est pour le wifi
spyk est déconnecté   Réponse avec citation
Vieux 06/07/2006, 15h46   #5
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Il faut inclure le bon fichier, probablement #include <pspinet.h> ou un truc du style
Brunni est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Problème étrange avec NDS, suis je le seul? Tiwaz [NDS] Divers 1 05/04/2007 12h32
NDS Problème de compilation d'un .c en .nds avec PAlib et devkitPro @NOTIZ@ Aide au développement 4 15/03/2007 14h08
NDS problème avec ds2key enckil Archives - Divers (NDS) 15 15/11/2006 19h03
NDS probleme avec SCUMMVM DS M@TtEoCORSICA Archives - Divers (NDS) 12 01/10/2006 09h41
NDS Liste de jeux avec fonction link GBA vvedge Jeux 7 16/08/2006 19h23


Fuseau horaire GMT +2. Il est actuellement 23h05.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince