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

C

 > 

Windows

 > 

System

 > 

Charger un dll depuis une ressource


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

Charger un dll depuis une ressource

mercredi 2 août 2006 à 13:48:38 | Charger un dll depuis une ressource

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 une dll depuis une ressource ?

Je m'explique.
J'aimerais utiliser des fonctionnalités d'une dll mais je ne veut pas avoir à la distribuer avec mon exécutable.
Mon idée première était de mettre la dll dans le ressources de mon exe.
Au lancement de l'exe, je récupère la ressource, je la créée dans le dossier temporaire puis je la charge avec LoadLibrary.
Ca fonctionne.

Mais, ce que j'aimerais faire, c'est me passer de la copie dans le dossier temporaire et pouvoir charger la dll depuis la mémoire.
Est-ce possible ?

J'ai fouillé dans MSDN mais LoadLibrary ne semble pas pouvoir faire cela.
Bref, je sèche donc je suis preneur de toute idée qui pourrait faire avancer mon problème.

Merci d'avance.
mercredi 2 août 2006 à 22:38:01 | Re : Charger un dll depuis une ressource

vecchio56

Administrateur CodeS-SourceS
Je sais pas si c'est possible, mais ca m'intéreserait aussi.
J'ai trouvé une réponse ici (ce serait impossible), mais méfions nous c'est pas forcément vrai...
"The default windows API functions to load external libraries into a program
(LoadLibrary, LoadLibraryEx) only work with files on the filesystem.  It's
therefore impossible to load a DLL from memory."

Il y a peut être un moyen sans LoadLibrary

_____________________________________
Un éditeur de ressources gratuit pour Windows

mercredi 2 août 2006 à 23:38:13 | Re : Charger un dll depuis une ressource

skirby

Merci vecchio56 pour ta réponse.

Je vais jeter un oeil à ton lien qui 'a l'air intéressant.
Je vais continuer à chercher de mon côté, mais si quelqu'un à une idée lumineuse, je suis preneur.

A+
mercredi 2 août 2006 à 23:44:51 | Re : Charger un dll depuis une ressource

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Eh oui je viens de regarder et en fait je crois que c'est la solution a ton problème puisque cet article décrit comment charger une DLL sans qu'elle soit rpésente sous forme de fichier. J'avais juste lu la phrase que j'ai citée sans regarder le reste
Il y a même un code tout écrit avec ces trois fonctions:
HMEMORYMODULE MemoryLoadLibrary(const void *);
FARPROC MemoryGetProcAddress(HMEMORYMODULE, const char *);
void MemoryFreeLibrary(HMEMORYMODULE);

_____________________________________
Un éditeur de ressources gratuit pour Windows

jeudi 3 août 2006 à 15:59:14 | Re : Charger un dll depuis une ressource

skirby

Salut vecchio56,

Je viens de compiler et d'essayer l'exemple.
Ca fonctionne nickel sous Windows 2000 sp4.
Ne reste plus qu'à tester sous XP sp1 et 2 pour voir.

Pour ma culture je vais quand même essayer de comprendre le code.
Il va vraiment falloir que j'apprenne le minimum sur le format PE.

Merci beaucoup !!!
jeudi 3 août 2006 à 18:06:02 | Re : Charger un dll depuis une ressource

racpp

Administrateur CodeS-SourceS
Salut,

vecchio56 >> Merci pour ce lien. C'est très intéressant. J'espère que cela marchera avec les DLLs de hook. J'ai pas encore testé le code.



Cette discussion est classée dans : possible, ressource, dll, idée, charger


Répondre à ce message

Sujets en rapport avec ce message

Comment charger une dll en c ? [ par moloko2000 ] MOLOCHQuel est la manière la plus simple de charger une dll en c? Besoin d'une toute petite dll [ par DjPoke ] Bonjour !J'aurais un besoin urgent d'une dll qui existe peut etre deja dans l'api et je debute en C.En fait, il me faut juste une fonction qui appelle Utiliser une dll en C est-ce possible? [ par Manthis ] BonjourJ'aurais voulu savoir si on pouvais utiliser des fonctions stockées dans une dll et tout cela en utilisant uniquement du C et non du C++. Si qq Charger ressource DLL [ par garslouche ] Bonjour à tousJ'ai un curseur dans les resources d'un DLL que je voudrais utiliser dans mon EXE.J'utilise ceci:HMODULE hModule = LoadLibrary("DLLres.d Ressource ave QT ??? [ par PunkDude424 ] Salut, je me doute un peu de la réponse a ma question mais je la pose quand meme des fois que cela serait possible.Je travail avec QT et j'ai deja tra 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 LoadLibrary -> Impossible de charger la librairie (builder C++ 6) [ par franckies ] Salut à tous !Voila j'utilise builder C++ 6 et à l'aide d'un tuto j'ai recopié un hook de clavier pour pouvoir réalisé une patite appli.Pour créer ce Fmod sans dll [ par cyber_securite ] Bonjours, tout le monde... Je voudrais juste savoir s' il était possible d' utiliser fmod sans avoir à utiliser sa dll !!! Je voudrais juste lancer u Chargement de dll incluse dans les ressources [ par Mastersam ] Bonjour j'ai un problème pour charger une dll situé en ressource dans une autre dll, j'ai à présent ceci :fichier .rclibrarydll BINARY "dllconstructeu Dynamic dll et GetProcAddress [ par wizzo ] Bonjour,J'essaye actuellement de charger dynamiquement une dll.J'arrive à charger une méthode C++ d'une classe grace à un EXPORT dans un .def. Cependa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,764 sec (3)

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