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 :king:
Version imprimable
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 :king:
- 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.
Je crois, vonemya, qu'il y a pas que toi qu'il aide :oops:
Encore merci Médinoc (comment peut-il répondre à tous (8O) ? C'est quelqu'un qui a beaucoup d'expérience ...)