IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

Utilisation de CreateThread sur Windows


Sujet :

Threads & Processus C++

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut Utilisation de CreateThread sur Windows
    Bonjour à tous,

    Tout d'abord, je précise que je développe à l'aide de Visual Studio 2010 C++ Express sur Windows 7.

    EDIT: Mon message étant un peu compliqué, je l'ai entièrement édité. En effet, je me suis aperçu que même un thread très basique ne fonctionnait pas.


    J'ai donc un souci avec les threads sur Windows, lorsque je lance mon thread (quoiqu'il y ait dedans), mon programme plante. Je pense qu'il est possible que ce soit un problème de syntaxe au niveau de l'appel des fonctions/paramètres de la méthode CreateThread (j'ai pourtant fait un bon tour sur le msdn et ailleurs).

    Voici mon code concernant la création du thread et l'appel de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    char* thread_var = "Test";
    HANDLE thread = NULL;
    DWORD thread_id;
    LPTHREAD_START_ROUTINE lpThreadRoutine = &MyThreadFunction;
     
    thread = CreateThread(NULL, 0, lpThreadRoutine , (void*)thread_var, 0, &thread_id);
    if( thread == NULL )
    {
    	printf("Failed to launch the Thread!\n");
    	return 1;
    }
    Et voici le code de la fonction appelé par le thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DWORD WINAPI MyThreadFunction( LPVOID arg )
    {
    	char* the_var = (char*)arg;
    	printf("Variable is : %s\n", the_var);
     
    	ExitThread(0);
    }

    J'ai lu par ci, par là, que la méthode CreateThread pouvait planter si on passer NULL au dernier paramètre (le ThreadId), donc même si je ne m'en sert pas je lui passe un DWORD.
    J'ai aussi lu qu'il pouvait y avoir un problème avec l'appel de la fonction, ce qui explique la ligne où je défini la routine.
    Et enfin, pour assigner les paramètres de la fonction, j'ai lu qu'il fallait faire ainsi ( (void*)param ) ou encore (&param). Dans les deux cas sa plante.


    Voilà donc si certains qui ont l'habitude de se servir des threads windows passent par là, je serais ravis d'avoir quelques explications

    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut
    Mon problème était simplement une mauvaise allocation mémoire, je passe le message en résolu.
    Désolé pour le post inutile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser un .exe sur Windows NT qui utilise GTK+
    Par suzan_ dans le forum Windows 2000/Me/98/95
    Réponses: 0
    Dernier message: 30/08/2010, 14h59
  2. Utiliser gparted sur windows
    Par chou-estelle dans le forum Windows
    Réponses: 5
    Dernier message: 02/02/2009, 18h50
  3. Compiler pour utilisation sur Windows
    Par bit_o dans le forum Linux
    Réponses: 3
    Dernier message: 25/04/2007, 21h07
  4. [Font] utiliser une même police sur Windows et sur Linux ?
    Par iubito dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 10/05/2005, 16h41
  5. [Utilisation Postgresql sur windows]
    Par xhercule dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/01/2004, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo