OVH Cloud OVH Cloud

[VC++] DLL en statique en ressource ??

2 réponses
Avatar
jokignac
Bonjour,
J'utilise une DLL et j'aimerais pouvoir l'inclure dans mon programme de
manière statique. Le problème est que je n'ai pas les sources de cette DLL,
et donc pas de .LIB.

J'ai donc essayé d'inclure dans mon fichier .RC2 les lignes me permettant
d'inclure de manière statique cette DLL à l'image de ce qui est faisable
avec par exemple du .html (en HTML on utilise HTML DISCARDABLE - j'ai donc
essayé DLL DISCARDABLE)
------------.rc2

toto.dll DLL DISCARDABLE "res\\cryptdll2.dll"



Mon code pour charger la dll:

-----------------.cpp

HMODULE hDLL = LoadLibrary("toto.dll");

----------------



Cela ne fonctionne pas, j'ai un pointeur hDLL null. Je pense que c'est le
mot-clé DLL DISCADABLE qui n'est pas bon, je connais celui pour le html et
le bitmap mais pas pour un code DLL. Quelqu'un pourrait-il m'orienter ??

Je vous remercie !

a++

2 réponses

Avatar
Aurélien REGAT-BARREL
> J'ai donc essayé d'inclure dans mon fichier .RC2 les lignes me permettant
d'inclure de manière statique cette DLL à l'image de ce qui est faisable
avec par exemple du .html (en HTML on utilise HTML DISCARDABLE - j'ai donc
essayé DLL DISCARDABLE)



[...]
Cela ne fonctionne pas, j'ai un pointeur hDLL null. Je pense que c'est le
mot-clé DLL DISCADABLE qui n'est pas bon, je connais celui pour le html et
le bitmap mais pas pour un code DLL. Quelqu'un pourrait-il m'orienter ??



Ta dll est bien dans ta ressource. Mais LoadLibrary n'en n'a que faire. Il
lui faut un fichier physique à part. Une dll est detinée à être partagée par
plusieurs process, que faire si un autre exe charge la dll de tes ressources
?
Il faut lier statiquement, ou alors extraire la dll de ta ressource et la
charger. J'avais vu un shareware qui transformait une .dll en .lib. Jamais
testé. Mais si le but de ta dll est de crypter, tu devrait trouver ton
bonheur avec une solution alternative, voire même sans dll supplémentaire
avec la CryptoAPI de Windows.

--
Aurélien REGAT-BARREL
Avatar
jokignac
J'ai en effet trouvé l'utilitaire DLL-to-LIB et j'essaie de l'utiliser. J'ai
trouvé un exemple d'utilisation sur le web. Merci
"Aurélien REGAT-BARREL" a écrit dans le
message de news:40f3b06d$0$15314$
> J'ai donc essayé d'inclure dans mon fichier .RC2 les lignes me


permettant
> d'inclure de manière statique cette DLL à l'image de ce qui est faisable
> avec par exemple du .html (en HTML on utilise HTML DISCARDABLE - j'ai


donc
> essayé DLL DISCARDABLE)

[...]
> Cela ne fonctionne pas, j'ai un pointeur hDLL null. Je pense que c'est


le
> mot-clé DLL DISCADABLE qui n'est pas bon, je connais celui pour le html


et
> le bitmap mais pas pour un code DLL. Quelqu'un pourrait-il m'orienter ??

Ta dll est bien dans ta ressource. Mais LoadLibrary n'en n'a que faire. Il
lui faut un fichier physique à part. Une dll est detinée à être partagée


par
plusieurs process, que faire si un autre exe charge la dll de tes


ressources
?
Il faut lier statiquement, ou alors extraire la dll de ta ressource et la
charger. J'avais vu un shareware qui transformait une .dll en .lib. Jamais
testé. Mais si le but de ta dll est de crypter, tu devrait trouver ton
bonheur avec une solution alternative, voire même sans dll supplémentaire
avec la CryptoAPI de Windows.

--
Aurélien REGAT-BARREL