Salut,
Je voudrais comprendre pourqoi, sous visual C++, doit-on choisir l'option de précompilation multithreaded quand on utilise des bibliothèques dynamiques?
C'est quoi le lien threads-biblio dynamiques?:
Merci pour toues les réponses![]()
Salut,
Je voudrais comprendre pourqoi, sous visual C++, doit-on choisir l'option de précompilation multithreaded quand on utilise des bibliothèques dynamiques?
C'est quoi le lien threads-biblio dynamiques?:
Merci pour toues les réponses![]()
- Quelle version de Visual ?
- Normalement pour une DLL (ou même la plupart des exe), on ne prend pas Multithreaded mais Multithreaded DLL.
Les versions récentes de Visual sont toutes en Multithreaded DLL par défaut.- C'est parce que si tu fais une DLL, tu n'as aucune garantie qu'elle ne sera jamais utilisée dans un programme multithreadé. Tu dois donc utiliser une version multithreadée de la CRT, car la version monothreadée n'est pas thread-safe.
Exemple d'erreur: Si on utilise ta DLL dans un programme multithread: si deux appels simultanés sont faits à une fonction de ta DLL, et que cette fonction utilise malloc(), tu as intéret à avoir une version thread-safe de malloc(), sinon tu peux complètement bousiller le tas (heap) de ton programme.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Je crois, vonemya, qu'il y a pas que toi qu'il aide
Encore merci Médinoc (comment peut-il répondre à tous () ? C'est quelqu'un qui a beaucoup d'expérience ...)
Partager