begin process at 2012 05 28 07:45:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Chargement de dll incluse dans les ressources


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Chargement de dll incluse dans les ressources

vendredi 30 décembre 2005 à 12:21:16 | Chargement de dll incluse dans les ressources

Mastersam

Bonjour j'ai un problème pour charger une dll situé en ressource dans une autre dll, j'ai à présent ceci :

fichier .rc
librarydll BINARY "dllconstructeur.dll"

fichier .h
#define librarydll 1

fichier .c

      static HGLOBAL hgbl;
      static BYTE *pdata;
      static HRSRC hrsrc;
      DWORD len, v;
      static HANDLE hfl;

      GetModuleFileName(NULL,&chemindlltemp,MAX_PATH);
      *(strrchr(chemindlltemp, '\\')+1)=0;
      strcat(chemindlltemp,"Temp\\");
       if( (_access(chemindlltemp, 0 )) == -1 )CreateDirectory(chemindlltemp,0);
      strcat(chemindlltemp,"dllconstructeurtemp.dll");
      
      hrsrc = FindResource(0, (LPCTSTR)librarydll, "BINARY");
      if(hrsrc){
      hgbl = LoadResource(0, hrsrc);
      if(hgbl){
          len = SizeofResource(0, hrsrc);
         
         if(len == 3584){
             
              hfl = CreateFile(
                                       chemindlltemp,
                                       GENERIC_WRITE,
                                       FILE_SHARE_WRITE,
                                       NULL,
                                       CREATE_ALWAYS,
                                       FILE_ATTRIBUTE_NORMAL,
                                       NULL);
                                      
                 if(hfl != INVALID_HANDLE_VALUE){
                  pdata = (BYTE*) LockResource(hgbl);
                  v = 0;
                  if(!WriteFile(hfl, pdata, len, &v, 0))strcat(errorlog,"Impossible d'écrire le fichier\n");
               
                  CloseHandle(hfl);
                  FreeResource(hgbl);
                      if(len == v){
                            
                             hModDll = LoadLibrary(chemindlltemp);
                             if(!hModDll)strcat(errorlog,"Impossible de charger la dll\n");
                   
                            
                      }else{
                           //DeleteFile(chemindlltemp);
                           if(v==0)strcat(errorlog,"la dll est vide\n");
                           else strcat(errorlog,"la dll n'a pas la taille attendue\n");
                      }
      }else strcat(errorlog,"la dll n'a pas pu être créé\n");
     
     
      }else strcat(errorlog,"la dll ressource n'a pas la taille attendue\n");
     
     
      }else strcat(errorlog,"la dll ressource n'a pas pu être chargée\n");             
    
     }else strcat(errorlog,"la dll ressource n'a pas été trouvée\n"); 
       
    
sauf que je suis bloqué au premier pas "la dll ressource n'a pas été trouvée" je pense que j'ai pourtant bien définit le type de ressource et je n'ai pas d'erreur de ressources.
qu'est-ce qui cloche ?

vendredi 30 décembre 2005 à 12:26:37 | Re : Chargement de dll incluse dans les ressources

BruNews

Administrateur CodeS-SourceS
GetModuleFilename il faur le handle DLL en 1er param sinon tu as nom exécutable.

_access() n'a rien à faire dans du code Windows:
if(0 > (long)GetFileAttributes(szfile)) ABSENT

ciao...
[ Lien ]
BruNews, MVP VC++
vendredi 30 décembre 2005 à 12:40:17 | Re : Chargement de dll incluse dans les ressources

Mastersam

Oui le GetModuleFilename sans premier param c'est fait pour, c'est pour loger la dlltemp dans un sousdossier "Temp" de l'exe maitre. Merci pour le _acces() c'est corrigé.

Mais mon problème est un peu plus loin et je ne vois pas pourquoi il n'arrive pas à me retourner quelquechose pour mon FindRessource.





vendredi 30 décembre 2005 à 12:49:20 | Re : Chargement de dll incluse dans les ressources

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Le 1er param idem GetModuleFilename, faut consulter MSDN.

ciao...
[ Lien ]
BruNews, MVP VC++
samedi 31 décembre 2005 à 11:15:59 | Re : Chargement de dll incluse dans les ressources

Mastersam

Merci bcp, je croyais que dans Load et FindResource si on mettait 0 en premier param ça prenait le handle du module dans lequel la fonction est écrite, mais c'est celui de l'exe maitre quand c'est une dll.



Cette discussion est classée dans : ressource, dll, strcat, chemindlltemp, errorlog


Répondre à ce message

Sujets en rapport avec ce message

dll loadstring ressource [ par yanousbie ] J'ai un petit soucy au boulot, on me demande de faire une version en étranger (anglais espagnol....au choix) d'une appli assez complexe, je sais pas p Inclure une DLL dans une ressource .... [ par MorbhAck ] Hello world,Donc voila j'aimerai savoir comment inclure une DLL dans une ressource.J'utilise FMOD et sa DLL elle me psikose, jaime pas trop la voir c' Charger un dll depuis une ressource [ par skirby ] Bonjour tout le monde,Je me pose une question dont je n'ai évidemment pas la réponse.D'ailleur, je me demande même si c'est possible.Peut t'on charger Créer une dll en C avec Code::Blocks [ par seb5 ] Salut à tous,Je souhaite placer certaines de mes fonctions dans une dll pour pouvoir les réutilisé dans plusieurs programmes. Je programme en C sous W Problème chargeur dll [ par M5i9k ] Bonjour,j'ai écrit un programme qui permet de charger une dll dans un processus, mais le programme fonctionne seulement en DEBUG, en RELEASE, j'ai un Hooks [ par M5i9k ] Bonsoir,je voulais savoir si il était possible de creer un hook lors du chargement d'un dll c'est à dire dans la fonction DllMain d'un dll, j'essaye d Compiler une Lib en dll [ par xbabilone ] Salut j'ai telecharge la zlibQue j'ai decompressé et jobtient des fichiers . c et .hAlors comment faire pour en faire un fichier .dll et un fichier.li Trouver les entetes des dll [ par usbeck ] Bonjour,  Je travaille en ce moment sous un projet avec Visual C++Et je cherche à utiliser la dll HID.dll Malheureusement je ne comprends pas comment Question Injection DLL et Hook [ par Taron31 ] Bonjour, je me pose une question conernant la fonction SetWindowsHookEx, notamment concernant l'injection de la DLL. J'ai en effet un programme de hoo Bitmap Ressource [ par MorbhAck ] Hello World !!Voila, J'AI UN GROS PROBLèME QUI CASSELES C******* !!!!!!!!!Donc, mon problème est le suivant :   - J'utilise Visual C++ 6.0   - J'ai un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,215 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales