[C++ et chargement des dll]

[C++ et chargement des dll] - Programmation

Marsh Posté le 25-04-2001 à 18:52:47    

hello,
 
je me pose la question suivante:
J'utilise certaines Dlls, mais jamais toutes en même temps. Ce que je voudrais pouvoir faire, c'est:
a l'interieur du programme (donc apres compilation), je peux determiner quelles sont dlls dont j'ai besoin. Je voudrais les charger a ce moment la.
 
Sous visual C++, pour pouvoir compiler mon programme, je suis obligé d'avoir toutes les librairies sinon j'ai un inevitable 'unresolved external symbol'.
 
Je peux eventuellement m'en sortit en faisant un 'LoadLibrarie' et en utilisant non pas les fonctions de la dll directement, mais des pointeurs (via GetProcAddress) sur ces fonctions.
Mais c'est lourd... tres lourd...
 
Si qq1 m'a compris et a une idée...
merci.

Reply

Marsh Posté le 25-04-2001 à 18:52:47   

Reply

Marsh Posté le 26-04-2001 à 07:38:04    

Si tu utilise visualC++ 6 tu peux rajouter l'option de linkage
/DELAYLOAD:dllname
La dll ne sera alors chargée qu'au premier appel d'une fonction de cette DLL. Si aucun appel n'est fait durant l'execution du programme la DLL ne sera pas chargée.
LoadLibrary et GetProcessAddress est également une solution et en encapsulant leurs appels dans des classes il est possible de faire quelque chose de pas trop lourd.

Reply

Marsh Posté le 26-04-2001 à 08:28:29    

oki,je vais regarder de plus pres l'option de link dont tu parles.
merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed