Héhé.^^
Pour la carte graphique, c'est OBLIGATOIRE, vraiment.^^
Sinon, ça rame, mais ça rame...du genre la fenêtre qui s'affiche petit à petit, ou même le défilement dans les pages qui se fait par saccades.
Pour la langue, j'ai formaté (j'avais pas encore lu ton message...pardon.
) et ça a marché tout seul...
Je confirme pour ta réponse pleine de sagesse, mais la patience, ça n'a jamais été mon fort ! Pas plus que l'informatique ! ^^
En même temps, je n'ai aucune excuse, tu es toujours présent et enclin à m'aider...J'avoue.
J'vais faire un effort, cette fois...(Ca reformate. xD)
Pour l'installation "non traduite", c'est tout à fait normal...
Si tu avais prêté attention à la petite ampoule en haut à droite, tu aurais vu qu'elle t'indiquait "La prise en charge linguistique n'est que partielle, cliquez ICI pour l'installer"
Pour le son, je n'ai pas d'idée sur le problème. Enfin pour la CG, si c'est une nvidia, dans Système > Administration > Pilotes propriétaires tu devrais trouver ton bonheur.
Chris non j'ai utilisé les threads à la gtk partout :D
La raison, c'est que je n'utilise pratiquement que des gtype, et donc mes fonctions de callback renvoient des gboolean. Du coup, pour les threads je suis "obligé" d'utiliser ceux qui gèrent ces types là.
Je pourrais également recommencer depuis le début en n'utilisant pas les gtype, mais étant donné que mon GUI est en gtk, j'ai tous les outils de la glib... autant s'en servir, même si c'est le souk.
J'ai poste il y a quelques jours que MS office avait un support natif des fichiers ODF. Un article dans /. d'aujourd'hui ( http://slashdot.org/articrticle.pl?sid=09/05/04/1246249 ) nous explique que MS a fait le maximum pour atteindre le respect de la norme mais conserver la non-interoperabilite des systemes. Ils sont fort chez MS. Il reste a savoir si c'est de l'incompetence technique ou un choix strategique.
Jackass059 : c'est cohérent (même si du coup c'est absolument pas portable). Mais du coup je ne peux pas trop t'aider pour tes histoires de threads.
godrik : oui, ils sont très fort. On aura beaucoup plus de mal à râler sur des .odt moisis, et eux ils ont respecté la norme, donc ce n'est pas leur faute. D'ailleurs, c'est scandaleux que la norme de ce format soit remplie de trou à un point tel que microsoft arrive à faire ça, donc au final, microsoft n'a vraiment pas trop pour moi. ![]()
en fait ca a l'air assez con, le nsamespace des formules dans les tableurs n'etait pas normalise. Il devrait l'etre dans la prochaine norme.
À vrai dire, je n'ai pas pu aller voir le lien sur /. car s'était cassé tout à l'heure. ![]()
Pour mon problème de threads, en fait que ce soit avec les POSIX ou les autres ça ne change pas grand chose au comportement.
Ma théorie, c'est que le problème vient de la durée des opérations.
Sur un proc quad-core, peut être que le problème est moindre, mais dans mon cas, le thread de téléchargement était trop long (2-3s), du coup le processus "principal" continuait de tourner, et les thread étaient bien en concurrence, mais comme le téléchargement n'était pas terminé, les autres threads étaient en attente...
Parce que sur les débugs, on voyait bien la poursuite du processus.
Ce que j'ai donc fait, c'est lancer le téléchargement en bg, et mon thread se contente de boucler en attendant la fin du téléchargement (grâce à un g_file_test). Ce test est très court, et me permet de boucler en alternant plusieurs threads.
Maintenant je peux me tromper, mais c'est mon sentiment
Z'en pensez quoi ?
Il y a une race condition dans ton code ce qui est mauvais.
"mais comme le téléchargement n'était pas terminé, les autres threads étaient en attente... "
Si les threads sont en attente c'est qu'ils sotn en attente sur quelquechose, une condition, un mutex, quelque chose. attache un debuugeur et arrete l'execution au moment du blocage et regarde sur quelle primitive ils bloquent.
Plutôt que de faire des boucles d'attente, fait des sémaphores, non?
http://www.dil.univ-mrs.fr/~massat/ens/docs/thread-sem.html
heu... non certainment pas un semaphore. Un semaphore sert a compter des ressources disponibles.
Ici ce dont il a besoin c'est d'un evenement. En posix les fonctions sont pthread_cond_*, et de mutex pthread_mutex_*
Je viens de découvrir un IDE qui m'a l'air sympa pour le C/C++ : anjuta
J'aime pas trop la coloration syntaxique (qui utilise les mêmes couleurs que gedit), mais pour le reste, débugage, etc. ça me semble sympa.
Sinon, j'essaie de corriger les warnings, mais j'ai un soucis avec les pointeurs de fonction.
Voici mon affectation :
cid->pMonitorList->p_fPlayPause = (CidControlFunction) _playPause_amarok;
la déclaration :
void _playPause_amarok (void);
Et le reste des infos utiles :
typedef void (* CidControlFunction) (void);
struct _CidControlFunctionsList {
// fonction 'play/pause'
CidControlFunction (*p_fPlayPause)(void);
// fonction 'next'
CidControlFunction (*p_fNext)(void);
// fonction 'previous'
CidControlFunction (*p_fPrevious)(void);
};
typedef struct _CidControlFunctionsList CidControlFunctionsList;
struct _CidMainContainer {
...
// fonctions de monitoring
CidControlFunctionsList *pMonitorList;
...
};
Le warning :
cid-amarok.c:218: warning: assignment from incompatible pointer type
J'ai la même erreur en faisant mon affectation comme ça :
cid->pMonitorList->p_fPlayPause = &_playPause_amarok;
oui en effet.
CidControlFunction (*p_fPlayPause)(void); est une pointeur vers une focntion aui ne prends pas de paremetre et qui retourne un CidControlFunction.
tu voulais ecrire : CidControlFunction p_fPlayPause; C'est l'interet du typedef
l'affectation est :
cid->pMonitorList->p_fPlayPause = _playPause_amarok;
Bien vu
Merci
Autre question tant que je suis dans la correction des warnings.
warning ignoring return value of ‘fscanf’ declared with attribute warn_unused_result
comment je peux configurer ça pour ne pas qu'il me warn ? Parce que le retour de system c'est pas des plus interessant (je sais il faut vérifier TOUS les retours, mais celui là quand même, c'est pas critique :p )
Pour ton warning, ça veut dire qu'il faut faire un truc du genre :
if (fscanf(....) < NB_DE_TRUC_A_SCANFER)
{
perror("...");
exit(1);
}
Et si, ça peut être assez critique si le scanf n'a pas fait ce qu'il faut. ![]()
(void) fscanf(...) permettra d'ignorer l'erreur et
chris+1
Si une fonction systeme ne marche pas, tu veux le savoir immediatement. Encore une fois, ne pas programmer defensif releve du suicide.
Oui je sais bien que là je dois tester les valeurs.
Mais il s'agit de la fonction 'system' qui n'est pas le coeur de mon appli. Donc si l'appel foire, c'est pas dramatique.
Mais comme le compilo me parle d'une variable "warn_unused_result", je me suis dit que c'était peut être paramétrable.
P.S.: la copie que j'avais mise au dessus provient de google ^^ dans mon cas c'est bien un :
« warning: ignoring return value of ‘system’ declared with attribute warn_unused_result »
Salut.
C'est officiel, je suis maintenant sous linux (dual bot avec vista)
Je tourne sous ubuntu, et je débute. ![]()
Je voulais juste raconter ma vie, bonne soirée ! ![]()
Jackass059 : dans ce cas, fais une macro ou une fonction my_fscanf se contente d'appeler scanf et d'émettre un warning ou une entrée dans les logs, et utilise my_fscanf au lieu de scanf. Tu n'es pas non plus obligé de faire des perror avec des messages méga précis sur des trucs pas critiques et qui normalement se passent bien.
[sf] : Bienvenue chez les barbus.
Au passage, n'oublie pas qu'il y a un chan #linux sur irc.deblan.fr. ![]()
Au final j'ai testé tous mes retours de system() ^^ En même temps j'avais 5-6 warnings seulement (sur 7500 lignes, c'est relativement peu :D )
Donc maintenant je n'ai plus de warnings à la compilation. Ça fait tout de suite plus sérieux
Sinon, je viens de me mettre à zsh, et bien ça m'a l'air vachement sympathique ![]()