Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1394 connectés 

  FORUM HardWare.fr
  Programmation

  [C++ & DLL pour les nuls]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ & DLL pour les nuls]

n°43743
__Lolo__
C'est pouleversant !
Posté le 29-06-2001 à 19:06:15  profilanswer
 

alors quelques questions :
1/ comment on fait une dll "réentrante" (au cas ou ca s'appellerait pas comme ca, c pr faire une dll utilisable par la meme appli plusieurs fois en meme tps)
 
2/ quelles sont les précautions à prendre qd on fait une dll justement ? (variables globales, multithreading, etc)
 
merci :hello:


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

mood
Publicité
Posté le 29-06-2001 à 19:06:15  profilanswer
 

n°43747
janoscoder
Posté le 29-06-2001 à 19:14:13  profilanswer
 

Si t'évites données globales, ça marche en tout cas (essayé par moi)


---------------
-----------------------
n°43757
SoWhatIn22
Posté le 29-06-2001 à 20:05:26  profilanswer
 

2/ quelles sont les précautions à prendre qd on fait une dll justement ? (variables globales, multithreading, etc)  
 
et ben les variables globales, tu peux oublier. Je ne sais même pas si c'est faisable, mais de toute façon c'est tellement crade que faut eviter ;)))
 
multithreading: faut compiler avec les options qui vont bien.
(ex: sous visual c++: code generation: use runtime library: multithreaded)
 
1/...
une dll est "forcement" utilisable par la meme appli plusieurs fois en meme tps. Ou alors qqchose m'a échappé.

n°43760
wpk
Posté le 29-06-2001 à 20:11:57  profilanswer
 

a priori, moi je mettrais quelques mutex pour proteger les ressources partagees (handles, var globales etc.) quant a la reentrance, c'est automatique, il y a une pile de cree pour chaque appel d'une fonction de ta dll => pas de probleme de reentrance.


---------------
"Si ton labeur est dur, et si tes résultats sont minces, rappelle-toi  
n°43822
__Lolo__
C'est pouleversant !
Posté le 30-06-2001 à 11:11:24  profilanswer
 

si je lance 2 applis utilisant la meme dll, celle-ci est chargée 2 fois ou partagée ?


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

n°43831
youdontcar​e
Posté le 30-06-2001 à 11:44:15  profilanswer
 

le code est partagé, les données dupliquées pour chaque application.

n°44117
karlkox
Posté le 02-07-2001 à 21:44:34  profilanswer
 

Oui sauf pour Windows XP qui alloue un nouvel espace mémoire, c con ca.
Pour les mutex, je crois que c'est indispensable, ca évite bien des soucis.

n°44167
__Lolo__
C'est pouleversant !
Posté le 03-07-2001 à 09:35:17  profilanswer
 

question suivante : je crée un thread ds ma dll
propre ou pas propre ?
quelles précautions a prendre ?

n°44168
__Lolo__
C'est pouleversant !
Posté le 03-07-2001 à 09:35:26  profilanswer
 

question suivante : je crée un thread ds ma dll
propre ou pas propre ?
quelles précautions a prendre ?

n°44193
seblamb
Posté le 03-07-2001 à 10:06:03  profilanswer
 

Attention aux mélanges , le mode par défaut c'est :
  Si 2 threads appartenent à une même application font appelle à une dll, les données de la dll sont partagées ( comme avec une application normale).
  Si 2 process différent appellent une dll les données sont dupliquées, le code aussi des fois (c'est windows qui choisi au chargement) mais c'est alléatoire et pas important.
 
Si tu ne veux pas partager les données dans une dll appellée par 2 threads appartenent à un même process il faut utiliser les fonction win32 ( TlsAlloc() et TlsGetValue()...)
 
Sinon ont peut partager des données dans une dll appellé par 2 process différents, sous visual c'est simple ( #pragma data_seg ...), avec borland c'est plus compliqué ( il faut utiliser des fonctions win32 ( je peux t'expliquer si ça t'interresse).


---------------
[:seblamb] Moi aussi je veux grater dédé!!!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++ & DLL pour les nuls]

 

Sujets relatifs
c quoi une DLL si vou plé ?[ASP/DLL VB] Marche pas
VC++et DLL (runtimes)DLL en C?
DLL utilisée dans les programmes...Cherche Dll d''OCR gratos utilisable en C
[Visulal C++, DLL] erreur à l'appel de la fonction dll...[C++] Utilisation d'une fonction d'une DLL ???
JAVA et DLL ????DLL en C et visual Basic
Plus de sujets relatifs à : [C++ & DLL pour les nuls]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR