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.
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);
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."
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.