IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Le fichier msvcrt.dll est-il nécessaire au bon fonctionnement de Windows ?


Sujet :

Windows

  1. #1
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut Le fichier msvcrt.dll est-il nécessaire au bon fonctionnement de Windows ?
    Citation Envoyé par baccali
    La librairie standard ne fait pas partie d'un système Windows. Elle est apportée grâce à msvct.dll ou autre qui est utilisée par beaucoup d'applications (dont IE, allez comprendre!) mais de base elle n'y est pas. (Je dis pas çà pour toi mais c'est le problème d'utiliser dès le départ des IDE comme Visual Studio : Au final on ne sait plus trop quoi est apporté par quoi). Ce n'est pas comme un Linux qui est "basé" sur la libc. Pas de libc, pas de linux (je ne parle pas du Noyau). Par contre, lorsque tu utilises le SUA, donc posx.dll, là elle est complètement implémentée je ne le nie pas! Si je disais qu'elle est en train d'être implémentée c'est parce que le sous-système posix est en train d'être implémenté sous windows mais il n'est pas encore fini. (200 ou 400 fonctions sous xp et 2000 sous vista et après je crois). Dis moi si je me suis gourré quelque part!
    Pratiquement tous les programmes en C ou C++ sont liés à la libc de toute façon, car c'est elle qui gère la gestion d'exception C++ (et une partie de la gestion d'exception Win32), l'initialisation des objets globaux/statiques, et un certain nombre de choses. Même les programmes faits avec MinGW utilisent la libc de Microsoft.

    La libc de microsoft est supposément conforme au standard C90. Par contre, elle se moque bien de POSIX et ignore royalement C99.

    Pour l'accès aux fichiers, je préconise d'utiliser les fonctions portables, car c'est la libc qui gère l'accès en mode texte et une partie de la bufferisation. Sauf bien sûr si tu as absolument besoin des fonctions avancées de Windows comme la gestion des droits.
    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.

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    La librairie standard ne fait pas partie d'un système Windows. Elle est apportée grâce à msvct.dll ou autre qui est utilisée par beaucoup d'applications (dont IE, allez comprendre!) mais de base elle n'y est pas.
    Mais msvcrt.dll fait partie de Windows ! Elle est présente dans toute installation de Windows sans que tu aies à installer quoi que ce soit d'autre. Le système lui-même y fait souvent appel, au niveau des applications surtout (explorer, cmd, etc.), mais aussi au niveau de l'API Windows même ! Par exemple, dans winbase.h tu as #define ZeroMemory RtlZeroMemory, et RtlZeroMemory est défini dans winnt.h par : #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) ! Oui, memset. Le memset de <string.h>.

    Ce n'est pas comme un Linux qui est "basé" sur la libc. Pas de libc, pas de linux.
    Justement si. Pas de msvcrt.dll, pas de Windows non plus .

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Citation Envoyé par Melem Voir le message
    Mais msvcrt.dll fait partie de Windows ! Elle est présente dans toute installation de Windows sans que tu aies à installer quoi que ce soit d'autre. Le système lui-même y fait souvent appel, au niveau des applications surtout (explorer, cmd, etc.), mais aussi au niveau de l'API Windows même ! Par exemple, dans winbase.h tu as #define ZeroMemory RtlZeroMemory, et RtlZeroMemory est défini dans winnt.h par : #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) ! Oui, memset. Le memset de <string.h>.
    Là, tu t'avances un peu. (le lien mentionne MFC, mais il en est de même pour les versions avancées de MSVCRT: L'exemple le plus notable est Windows XP qui ne contient pas MSVCR80.DLL)
    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.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par Melem Voir le message
    Mais msvcrt.dll fait partie de Windows ! Elle est présente dans toute installation de Windows sans que tu aies à installer quoi que ce soit d'autre. Le système lui-même y fait souvent appel, au niveau des applications surtout (explorer, cmd, etc.), mais aussi au niveau de l'API Windows même !
    Là j'ai trois choses à dire :
    Premièrement je crois que tu confonds deux choses! Ce dont un programme a besoin pour marcher et ce qu'il peut utiliser en cas de besoin, pour certaines opérations bien précise.
    Deuxièmement msvcrt.dll n'exporte pas seulement la libc donc tu ne peux pas dire que la libc est utilisée juste parce que tu vois msvcrt.dll dans ton depends.
    Je crois que tu confonds deux choses aussi quand tu dis que dans toute install de Windows msvcrt est incluse. çà vaut ce que çà vaut et je sais que citer Wikipédia c'est donner le baton pour se faire taper dessus mais regarde ce qui est dit sur Wikipédia par exemple sur la libc et windows. Ou lis Windows Internal et montres moi où il est parlé de msvcrt.dll. La dll msvcrt que tu peux trouver de base dans une installation Pro/Standard ou autre de Windows est apporté par les programmes qui sont installé en même temps que Windows (C'est pour çà que je parlais d'I.E., qui est inclue dans toutes les éditions). Ce qui n'est pas Windows en soit . C'est comme si tu disais que parce que Ubuntu est installée avec GNOME, la lib de gnome est nécessaire pour faire marcher Ubuntu. D'ailleurs j'ai un Snapshot d'une install d'un Windows Server 2008 chez moi, je vérifierai et je te dirai çà ce soir mais je serai vraiment TRES surpris de trouver une msvcrt.dll dedans (encore que IE est installé dans les serveurs aussi! ) mais dans tous les cas comme je l'ai dit, ce n'est pas parce que tu vois une msvcrt.dll dans un depends que tu dois en conclure que l'appli utilise la libc.


    Citation Envoyé par Melem Voir le message
    Par exemple, dans winbase.h tu as #define ZeroMemory RtlZeroMemory, et RtlZeroMemory est défini dans winnt.h par : #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) ! Oui, memset. Le memset de <string.h>.
    Comme je disais à force d'utiliser des IDE on ne sait pas trop quoi est apporté par quoi! A ton avis ce string.h et la dll qui s'y rapporte, elle est apportée par ton IDE ou par Windows lui même? CQFD. Sur msdn, par exemple, RtlZeroMemory n'est même pas apporté par WinNT.h, mais par Wdm.h.
    Si tu prends les headers de la SDK pour référence faut faire gaffe!

    Citation Envoyé par Melem Voir le message
    Justement si. Pas de msvcrt.dll, pas de Windows non plus .
    Fais un kernrate de ton système pendant 2 heures, fais ce que tu as à faire dedans et dis moi si tu vois msvcrt dans le résultat. et si tu as les symbols c'est encore mieux
    Sinon tu es développeur et admin système ou juste développeur? J'ai mon Window 7 depuis des années et devines quoi? Pas de msvcrt.dll dans le dossier Windows à part dans le dossier WinSxS. Par contre sous Unix la libc est dans le dossier /bin. Si tu as des compétences en admin système tu sais ce que celà veut dire. Donc pas de msvcrt, Windows il peut y'avoir!

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Pratiquement tous les programmes en C ou C++ sont liés à la libc de toute façon, car c'est elle qui gère la gestion d'exception C++ (et une partie de la gestion d'exception Win32), l'initialisation des objets globaux/statiques, et un certain nombre de choses. Même les programmes faits avec MinGW utilisent la libc de Microsoft.
    Là tu parles de la libc ou du C runtime? Parce que dans la déclaration de la libc je ne vois pas parler de la gestion d'exception! Sans compter que du C++ dans la libC?? WTF. C'est juste une question hein mais je comprends pas trop ce que tu entends par là! Pour moi c'est comme si tu disais que le __stdcall est géré par la libc.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Il est temps de mettre fin à cette discussion avec l'insoutenable vérité: Des DLLs de Windows ont une dépendance vers MSVCRT.DLL.
    • NETAPI32.DLL
    • DNSAPI.DLL
    • WS2_32.DLL
    • WLDAP32.DLL
    • IPHLPAPI.DLL
    • NTDSAPI.DLL
    • POWRPROF.DLL
    • SHELL32.DLL
    • WINTRUST.DLL
    • SHLWAPI.DLL
    • OLE32.DLL
    • MSGINA.DLL
    • CREDUI.DLL
    • GDIPLUS.DLL
    • Et bien d'autres...

    Et pratiquement tout le temps, j'y vois des appels à malloc(), et aux fonctions de <string.h> / <wchar.h>. Shell32.dll importe même fwrite().
    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.

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Mais c'est quoi le rapport avec la libc. Dans msvcrt, le r c'est pour RUNTIME. Donc pas forcément la libC. il y'a une raison pour laquelle cette dll ne s'appelle pas libc.dll comme sous UNIX. C'est pas compliqué pourtant de mettre fin à cette discussion. Fais un kernrate de ton système, utilises le en mode commande ou autre, FAIS CE QUE TU VEUX, et dis moi si msvcrt sort!

    Si cmd.exe par exemple utilise le runtime pour initialiser sa stack et autre cela ne veut pas dire qu'il passe son temps à utiliser des memset et autre. CQFD

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    J'ai précisé que c'était bien des fonctions de la libc qui étaient importées, pas seulement des fonctions du runtime: J'ai vu des malloc/free, des fwrite, des memmove, strncpy, wcsncpy...

    Ces fonctions de la libc sont utilisées dans les DLLs de Windows même (API réseau, API de sécurité, API d'authentification, etc.). Donc, sans libc, pas de Windows.
    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.

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Alors là je demande à voir, sans pour autant faire le têtu hein! Mais j'admettrai mon erreur quand je l'aurais vu de mes propres yeux. Avec quoi, dans quelles conditions et sur quelles DLL exactement as-tu fais tes tests?

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    J'ai utilisé Dependency Walker sous Windows XP pour observer les dépendances et les imports. MSVCRT.DLL version 7.0.2600.5512 se trouvait dans system32.

    Sous des versions plus récentes, il doit y avoir virtualisation, quoi que j'aie sous la main un Windows Server 2008 R2 qui contient MSVCRT.DLL version 7.0.7600.16385 dans C:\Windows\System32 (mais il y a déjà quelques programmes installés, donc je n'ai pas 100% confiance).
    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.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Et tiens, voici une capture (mais elle ne va pas rester ici longtemps, parce que ça bouffe de la place).

    Edit: Capture d'écran supprimée.
    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.

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Effectivement! T'inquiètes pour l'image j'ai fait les tests moi même
    J'ai fais la bêtise de chercher ma msvcrt.dll avec explorer et j'ai pas vu le msvcrt.dll dans le résultat vu que c'était truffé de résultat dans le dossier WinSxS. Il a bien fallut que j'aille dans les knows dll pour m'en rendre compte. En ligne de commande le findstr a fait son boulot! Et je viens de tilter en plus que kernrate c'est pour le noyau lui même et que même sous UNIX le noyau lui même n'utilise pas la libc donc un kernrate like donnerait la même chose.

    Bon eh bien j'admet mon erreur (et Dieu seul sait comment je déteste dire çà! ) Désolé pour la discussion et de vous avoir fait perdre votre temps de la sorte! Au moins je dormirai moins bête.

    Merci de votre patience à tous les deux en tout cas.

  13. #13
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Une dernière petite remarque :
    Sur msdn, par exemple, RtlZeroMemory n'est même pas apporté par WinNT.h, mais par Wdm.h. Si tu prends les headers de la SDK pour référence faut faire gaffe!
    Attention car il y a deux versions de RtlZeroMemory : une dans l'API Win32 (winnt.h) et une autre dans le kernel (wdm.h). Dans une application Windows, c'est la première qu'on utilise. Dans un driver, c'est la deuxième.

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Même si on retrouve la même macro dans Wdm.h, tu es d'accord avec moi que memset n'est pas une obligation mais une convenance apportée par ton IDE/la SDK pas forcément nécessaire? C'est ce que je voulais démontrer.

  15. #15
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je voulais surtout montrer qu'en C, quand tu utilises ZeroMemory dans une application Windows, c'est forcément memset que tu es réellement en train d'appeler. A moins que tu bidouilles exprès pour faire autrement. On peut bidouiller dans tout d'ailleurs. C'est à chacun de faire son choix, veut-il être programmeur ou bidouilleur ...

  16. #16
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Etant donné que ZeroMemory est lui même un bidouillage et que Microsoft préconise de ne plus utiliser ZeroMemory mais SecureZeroMemory, et que RtlSecureZeroMemory n'est pas un memset, je pense pouvoir être programmeur d'application Windows sans "bidouiller" comme tu dis et sans utiliser la libc. Non?

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Programmer sans utiliser la libc est tout à fait possible. Mais rappelles-toi que le calcul à virgule flottante fait partie de la lib mathématique, qui est intégrée à la libc sous Visual, tu ne peux donc pas faire de division flottante sans te lier à MSVCRT (je parle d'expérience ici: J'ai déjà fait un programme sans la CRT, j'ai du mettre mes divisions flottantes dans une DLL qui se liait à la libc statiquement).
    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.

  18. #18
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    La libC n'est pas la seule librairie mathématique. Ce fut ton choix à toi! En tapant sur google je tombe sur pas mal de librairie mathématiques (GSL, boost, Blitz++, tvmet etc... J'ai vu çà sur un seul fofo donc il y'en a sûrement d'autres).

    Ce fut ton choix à toi et j'aurais sûrement fait le même d'ailleurs car la libc c'est juste et justement l'assurance que ton appli "se retrouvera" où qu'elle soit mais ce n'est nullement une nécessité.

  19. #19
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Je voulais dire que le compilo lui-même choisit à ta place d'appeler la libc si tu tentes de faire une division flottante.
    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.

  20. #20
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 172
    Points : 191
    Points
    191
    Par défaut
    Eh bien cl vient de chuter dans mon estime! Moi qui débute à peine la prog sous Windows çà commence mal. gcc qui pourtant est à la base pour les systèmes UNIX (enfin GNU quoi) et est supposé avoir la libc à dispo 24/24 utilise la gmp, mpfr et autre pour ce genre de truc! Et le jour où tu ne dois absolument pas utiliser la libc comment fais-tu?

    PS: Non en réfléchissant j'avais pas vu que les fonctions étaient liées statiquement! GCC doit sûrement faire de même avec les libs dont je parle. Bon ben là çà dépend du compilo alors.

Discussions similaires

  1. [TClientDataSet] Erreur de chargement du fichier MIDAS.DLL
    Par Manopower dans le forum Bases de données
    Réponses: 10
    Dernier message: 31/08/2016, 14h08
  2. Réponses: 3
    Dernier message: 29/12/2011, 15h15
  3. Réponses: 35
    Dernier message: 12/05/2011, 12h15
  4. Réponses: 2
    Dernier message: 14/12/2009, 12h25
  5. Noyau du deboggeur BORDBK41.dll est manquant ou non rescencé
    Par Colinbayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/12/2004, 00h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo