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 :

[ATL] inclure un jpg dans une ressource de DLL COM


Sujet :

MFC

  1. #1
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut [ATL] inclure un jpg dans une ressource de DLL COM
    Bonjour,
    j'essaye depuis trois jours d'inclure une image jpg en tant que ressource dans un projet de dll atl mais apparemment je n'arrive à rien (J'ai du faire projet/ajouter une ressource/personnaliser et préciser le type "Data" ou encore projet/ajouter une ressource/importer...) J'ai essayer de suivre la FAQ qur la partie utilisatioin d'une dll de ressource de langue mais le but n'est apparament pas le même...
    Quelqu'un pourrait il m'indiquer si cela est possible ou si je peux faire autrement, le but est de fournir un composant pouvant récupérer le contenu d'une image pour l'afficher dynamiquement dans un navigateur (s'il est utiliser depuis IIS avec ASP) ou de le sauver sur disque si le composant est utilisé depuis vbscript... Je dois livré le composant sous forme de DLL com d'où mon choix d'ATL, par contre je ne peux me permettre de livrer la dll avec un fichier image que le client pourra écraser avec la sienne en lui donnant le même nom....
    Comment pourrais je m'y prendre??

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 703
    Points
    10 703
    Billets dans le blog
    3
    Par défaut
    Tu en es où ? Tu as fait quoi ?

  3. #3
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    En fait je n'arrive toujours pas à seulement inclure le JPG en tant que ressources...
    Ensuite si j'arrive à l'inclure j'aimerai utiliser le code suivant pour en récupérer le contenu dans un buffer :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    LPCTSTR pName; LPCTSTR pType = RT_RCDATA; HMODULE hInst = NULL;
     
    //Récupération de la ressource : New/IDR_NEW1
             pName = "IDR_NEW1";
    	 pType = "NEW";
    	 hInst = 0;
     
    	HRSRC hResource = ::FindResource( hInst , pName,pType);
    	if (!hResource){
     
    		return false;
    	}
    	DWORD imageSize = ::SizeofResource(hInst, hResource);
    	if (!imageSize){
     
    		return false;
    	}
    	const void* pResourceData = ::LockResource(::LoadResource(hInst, hResource));
    	if (!pResourceData){
     
    		return false;
    	}
     
     
     
    HGLOBAL m_hBuffer;
    	m_hBuffer  = ::GlobalAlloc(GMEM_MOVEABLE, imageSize);
     
    	if (m_hBuffer)
    	{
     
    		void* pBuffer = ::GlobalLock(m_hBuffer);
    		if (pBuffer)
    		{
     
    			CopyMemory(pBuffer, pResourceData, imageSize);
     
    			IStream* pStream = NULL;
    			if (::CreateStreamOnHGlobal(m_hBuffer, FALSE, &pStream) == S_OK)
    			{
     
    				//récupérer taille buffer
    // get the size of the stream
    ULARGE_INTEGER ulnSize2;
    LARGE_INTEGER lnOffset2;
    lnOffset2.QuadPart = 0;
    if(pStream->Seek(lnOffset2, STREAM_SEEK_END, &ulnSize2) != S_OK)
    {
     
        pStream->Release();
            return S_OK;
    }
     
    // now move the pointer to the beginning of the file
    if(pStream->Seek(lnOffset2, STREAM_SEEK_SET, NULL) != S_OK)
    {
     
    	pStream->Release();
        return S_OK;
    }
     
     
     char *pBuff2 = new char[ulnSize2.QuadPart];
     
        // Read the stream directly into the buffer
        ULONG ulBytesRead2;
        if(pStream->Read(pBuff2, ulnSize2.QuadPart, &ulBytesRead2) != S_OK)
        {
            pStream->Release();
            delete pBuff2;
            return S_OK;
        }
    Petite précision, j'utilise VS 2003...

  4. #4
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    voir ce post de la faq ,la problematique pojur le stockage est la meme a priori:
    http://c.developpez.com/faq/vc/?page=Divers#PlaySound

  5. #5
    LEK
    LEK est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 715
    Points : 470
    Points
    470
    Par défaut
    Bon apparemment en mixant certaines informations de cette FAQ et d'un tutorial sur Internet m'ont aidé sur ce point.
    Merci encore de vous être penchés sur la question

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

Discussions similaires

  1. [ATL]Embarqué ocx dans une ressource?
    Par LEK dans le forum Visual C++
    Réponses: 11
    Dernier message: 22/01/2008, 15h47
  2. Lire un texte dans une ressource en dll
    Par fred78 dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 18h08
  3. Inclure une dll dans une ressource
    Par bgcode dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2003, 11h12
  4. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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