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

MFC Discussion :

"a required ressource was unavailable"


Sujet :

MFC

  1. #1
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut "a required ressource was unavailable"
    Bonjour,
    j'ai dans mon projet une DLL qui contient des dialogs.
    Je viens de rajouter des ic�nes pour ces dialogs, et j'ai un message qui remonte sous la forme de bo�tes de dialogue windows empil�es qui me dit "a required ressource was unavailable". Ca ne plante pas l'appli, elle continue � tourner en t�che de fond.

    Ma question :
    Qu'est-ce que c'est que ce message : :

    si vous avez des id�es...


    Pour info, je charge les ic�nes avec ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    		hIcon = (HICON)::LoadImage(	AfxFindResourceHandle(MAKEINTRESOURCE(IDI_NOK_1),RT_GROUP_ICON), 
    												MAKEINTRESOURCE(IDI_NOK_1), 
    												IMAGE_ICON, 
    												16,16,LR_DEFAULTSIZE);

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    quand un exe est li� a une dll ,les fonctions de chargement des ressources situ�es dans l'executable chargeront les ressources de l'executable.
    dans la dll les fonctions chargeront les ressources de la DLL....
    donc si l'exe essaye de lire les ressources de la dll pb .

    Essaye de rajouter cette macro de synchronisation avant ton code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    sinon on verra une autre solution..

  3. #3
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    ok, merci, j'essaye �a.

  4. #4
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    rat�, �xactement pareil...
    pourtant j'ai fait �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    		AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
    		hIcon = (HICON)::LoadImage(	AfxFindResourceHandle(MAKEINTRESOURCE(IDI_OK_1),RT_GROUP_ICON), 
    												MAKEINTRESOURCE(IDI_OK_1), 
    												IMAGE_ICON, 
    												16,16,LR_DEFAULTSIZE);
    je ne vois pas trop comment m'en sortir...

  5. #5
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    d'ou est fait l'appel (exe ou dll ) ?
    ,et ou est situ�e la ressource ,dans la dll ou dans l'exe ?

  6. #6
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    l'exe fait appel � une fonction de la DLL qui par classes d'interfaces interpos�es va faire appel � une fonction qui chargera la ressource, donc le code qui charge la ressource se situe dans le code de la DLL, mais il est appel� � partir de l'exe.
    La ressource est une ressource de la DLL.

    Ca fonctionne 9 fois sur 10, mais de fa�on a priori al�atoire, �a plante.
    Il doit y avoir un acc�s concourant ou un truc du style...

  7. #7
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    tu es en DLL MFC partag�es ou statiques ?

  8. #8
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Apparement ton icone et charg� depuis un dossier (dans la RessourceView de ta DLL) qui s'appelle "RT_GROUP_ICON" et ton icone s'appelle "IDI_NOK_1"
    Je sais pas mais est-ce-que les deux existent ?

  9. #9
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    eventuellement si c'est bien un probleme de lecture ressources tu peux essayer �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    HINSTANCE hsav=AfxGetResourceHandle();
    AfxSetResourceHandle(::GetModuleHandle("mydll.dll");
    // ton traitement
     
    // restore
    AfxSetResourceHandle(hsav);
    si �a ne fonctionne pas l'erreur est ailleurs....


  10. #10
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    @Matazz : RT_GROUP_ICON est d�fini comme "A hardware-independent group icon resource type."

    @Farscape : toujours pas...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	HINSTANCE hsav=AfxGetResourceHandle();
    	AfxSetResourceHandle(::GetModuleHandle("os.dll"));
    	hIcon = (HICON)::LoadImage(	AfxFindResourceHandle(MAKEINTRESOURCE(IDI_OK_1),RT_GROUP_ICON), 
    											MAKEINTRESOURCE(IDI_OK_1), 
    											IMAGE_ICON, 
    											16,16,LR_DEFAULTSIZE); 
    	AfxSetResourceHandle(hsav);
    Qu'est-ce que tu veux dire par DLL partag�e ou statique ?
    je ne charge pas explicitement les DLL par du code, mais j'utilise les "dependencies" du projet pour les lier � l'exe.
    Donc DLL en statique, a priori.

Discussions similaires

  1. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 23/02/2006, 12h38

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