Bonjour,

je souhaite développer en VC++ sous Visual Studio 2005, pour une plateforme Windows, un petit programme permettant de lancer une application java.

Mon programme se lance bien mais par contre, même si j'arrête mon programme java, le thread java continue à tourner...

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
       // En réalité, le pointeur commandeDos se construit dynamiquement en  fonction de la première JRE trouvée dans le répertoire jre
       char* commandeDos = ".\\jre\\jre1.6.0_07\\bin\\javaw.exe"
 
       // Conversion d'un char* en LPWSTR
       size_t nSize1 = 1 + strlen( commandeDos );
       LPWSTR wCmdeDos = new WCHAR[nSize1];
       mbstowcs( wCmdeDos, commandeDos, nSize1 );
 
       // Libération de la mémoire...
       free(commandeDos);
 
       // Creation d'un processus
       STARTUPINFO         siStartupInfo;
       PROCESS_INFORMATION piProcessInfo;
 
       memset(&siStartupInfo, 0, sizeof(siStartupInfo));
       memset(&piProcessInfo, 0, sizeof(piProcessInfo));
       siStartupInfo.cb = sizeof(siStartupInfo);
 
       if(CreateProcess(NULL,wCmdeDos,NULL,NULL,0, NORMAL_PRIORITY_CLASS, NULL, NULL, &siStartupInfo, &piProcessInfo) == FALSE) {
	       // erreur
              MessageBox(NULL, _T("Impossible de lancer l'application java..."), _T("Erreur..."), MB_OK + MB_ICONERROR);
              return 1;
       }
       return 0;
}
Ce bout de code fonctionne mais je ne comprends pas, le thread javaw continue à tourner même après l'arrêt de l'application.
Par contre, le processus du programme VC++ s'arrête bien dès le lancement de l'application java.

Avez-vous une idée pour corriger le problème du processus persistant ?

Merci,
F.