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

  1. #1
    Membre du Club
    application se bloque (freeze) apres deconnection - reconection de l'ecran
    Bonjour,

    J'utilise un pc embarqué pour faire une animation dynamique sur une dalle de LED.
    j'ai un problème de déconnexion de cette écran virtuel (je cherche une solution à ce problème en //).

    pour mon application en c++ qui géré une fenêtre d'affichage (ça ressemble a une fenêtre vidéo au fait), l'application se plante si l'écran est déconnecté et puis reconnecté.

    il y a un t'il un moyen de relancé l’application ou l’empêché de se bloquer au débranchement d'un écran ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Salut,

    A vrai dire, cela dépendra énormément de la manière dont ton application a été développée, et donc, du code que tu utilises.

    Du coup, si tu veux une aide efficace, je te suggérerais de respecter la règle d'or sur n'importe quel forum dédié à l'informatique : aides nous à t'aider, entre autres, en nous fournissant un code minimal compilable capable de reproduire le problème
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre du Club
    Merci,

    voici la structure/corps du programme:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {	
    	bool fDone;
     
    	HWND hWnd;
    	if (GenerateWindow(hInstance, nCmdShow, L"Direct3D", L"My prog", 9, 6, 1792, 128, hWnd))
    	{
    		MSG msg;
    		game = new Game();
     
    		if (game->Initialize(hWnd))
    		{
    			fDone = false;
    			while (!fDone)
    			{
    				while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    				{
    					if (msg.message == WM_QUIT)
    					{						
    						fDone = true;
    						break;
    					}
    					TranslateMessage(&msg);
    					DispatchMessage(&msg);
    				}
     
    				game->Run();
     
    				std::this_thread::sleep_until(nextStartTime);
    				currentStartTime = std::chrono::system_clock::now();
    				nextStartTime = (currentStartTime + intervalPeriodMillis);
    			}
     
    			delete game;
    		}
    	}
     
    	return 0;
    }


    avec la procedure WindowProc:

    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
     
    LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch (message)
    	{
    	case WM_CLOSE:
    		DestroyWindow(hWnd);
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		break;
    	default:
    		return DefWindowProc(hWnd, message, wParam, lParam);
    	}
    	return 0;
    }

  4. #4
    Expert éminent sénior
    C'est du DirectX.
    Il manque beaucoup de "détails" pour répondre efficacement.
    Le code donné semble très "rudimentaire" et la gestion des pertes d'accès exclusif au device graphique avec DirecX demande (ou demandait, ça fait longtemps) du code spécifique à cela.

  5. #5
    Membre du Club
    Merci pour l'aide,
    avez vous un site, lien qui pourrait m'aiguillé un petit peux,
    toute informations est bonne à prendre.
    merci d'avance.