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. #21
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    J'ai essayé de faire l'expérience avec gcc, mais la version que j'ai est apparemment plus récente et fait le -lm automatiquement, donc impossible de savoir si une division flottante en dépend ou non.
    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. #22
    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
    Citation Envoyé par baccali
    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?
    1. ZeroMemory n'est pas un bidouillage et Microsoft n'a jamais dit de ne plus l'utiliser, sinon donne-nous le lien de la page qui le dit. ZeroMemory et SecureZeroMemory sont les versions respectivement "optimisées" (en termes de vitesse d'exécution) et "sécurisées" (plus lente mais fait bien le boulot sans se poser de questions) d'une même "fonction". Alors ZeroMemory ou SecureZeroMemory ? Encore une fois, tous dépend des besoins.

    2. ZeroMemory était un exemple. J'aurais aussi pu prendre FillMemory comme exemple, et je ne serais pas non plus surpris de voir d'autres cas pareils ...

    Je rappelle en outre que la question dans cette discussion est que si le fichier msvcrt.dll est indispensable sous Windows. Sur l'implication de la bibliothèque standard du C (dont une implémentation réside certes dans msvcrt.dll) dans Windows, c'est par ici. Du coup pour le ZeroMemory, c'est un mauvais argument ici, comme l'a fait remarquer Médinoc, car elle est en faveur de la bibliothèque standard (qui existe en plusieurs versions: msvcrt.dll, libc.lib, libcmt.lib, msvcr80.dll, etc.) et non de msvcrt.dll. Vu que de nombreuses DLLs (shell32.dll, ole32.dll, advapi32.dll, ...) et applications (csrss.exe, explorer.exe, services.exe, ...) importantes de Windows se lient et importent des fonctions de msvcrt.dll, ne devrait-on pas en conclure que ce fichier est indispensable à son fonctionnement ?

  3. #23
    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
    1. ZeroMemory n'est pas un bidouillage et Microsoft n'a jamais dit de ne plus l'utiliser, sinon donne-nous le lien de la page qui le dit.
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Citation Envoyé par Melem Voir le message
    ZeroMemory et SecureZeroMemory sont les versions respectivement "optimisées" (en termes de vitesse d'exécution) et "sécurisées" (plus lente mais fait bien le boulot sans se poser de questions) d'une même "fonction". Alors ZeroMemory ou SecureZeroMemory ? Encore une fois, tous dépend des besoins.
    Je retrouverai le lien et je le posterai à ce moment mais j'ai lu marqué (sur un blogs msdn) que ZeroMemory n'est là que pour aider des personnes qui utilisent d'autres langages. (çà doit avoir un rapport avec le COM et le .NET). C'est mieux expliqué dans le blog mais de toute façon c'est noté dans les remarques du lien plus haut.

    PS : lien trouvé -> http://blogs.msdn.com/b/oldnewthing/...28/433341.aspx
    PS2: RtlSecrureZeroMemory/SecureZeroMemory, par contre, est une fonction et non une macro!

    Citation Envoyé par Melem Voir le message
    2. ZeroMemory était un exemple. J'aurais aussi pu prendre FillMemory comme exemple, et je ne serais pas non plus surpris de voir d'autres cas pareils ...
    Moi non plus mais ce que je veux dire c'est que tu traites avec un environnement de développement, donc pas forcément avec le système Windows. Ce sont deux choses bien différentes. Ce n'est pas parce que j'utilise SQLAllocHandle pour discuter avec une BDD que cette fonction ou quoi que ce soit en rapport avec l'ODBC est nécessaire pour discuter avec une BDD. Par contre le Drivers de la BDD, lui, est nécessaire.

    Citation Envoyé par Melem Voir le message
    Je rappelle en outre que la question dans cette discussion est que si le fichier msvcrt.dll est indispensable sous Windows. Du coup pour le ZeroMemory, c'est un mauvais argument ici, comme l'a fait remarquer Médinoc, car elle est en faveur de la bibliothèque standard (qui existe en plusieurs versions: msvcrt.dll, libc.lib, libcmt.lib, msvcr80.dll, etc.) et non de msvcrt.dll. Vu que de nombreuses DLLs (shell32.dll, ole32.dll, advapi32.dll, ...) et applications (csrss.exe, explorer.exe, services.exe, ...) importantes de Windows se lient et importent des fonctions de msvcrt.dll, ne devrait-on pas en conclure que ce fichier est indispensable à son fonctionnement ?
    Tu te trompes sur un point essentiel : crss.exe n'y est pas relié. Je t'explliques pourquoi ton erreur est importante car je crois que je ne me suis pas exprimé assez clairement. je l'ai déjà dit, dans la pratique, pour l'utilisateur final d'un produit desktop ou même serveur, ce fichier est essentiel au bon fonctionnement d'un PC WIndows et non de WINDOWS! Le fait que le sous système crss.exe n'en soit pas dépendant ou qu'il en existe 10 000 sous une édition pour éviter le dllhell est assez parlant. Mais pour le programmeur (et pourquoi pas l'utilisateur avancé) c'est différent! Petit exemple, sous Windows CE le C-Runtime est exporté par Coredll.lib et Corelibc.lib et ils ne respectent même pas les standards ANSI C. Est ce que tu fais moins tourner un Windows pour autant?
    http://msdn.microsoft.com/en-us/library/ms859579.aspx


    PS : Médinoc je vais de ce click faire quelques tests moi aussi et on en parle sur le bon topic. Sous GDB non plus rien de concret? Et melem merci pour la découpe au fait, désolé d'avoir douté de toi!

  4. #24
    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
    Tu continues à t'acharner sur ZeroMemory alors que j'ai bien dit que ce n'était qu'un exemple, mais je vais répondre à tes remarques quand même .

    1. La page de msdn library que tu cites ne dit pas du tout qu'il ne faut plus utiliser ZeroMemory. Elle dit juste :
    To avoid any undesired effects of optimizing compilers, use the SecureZeroMemory function.
    Ca correspond bien à ce que j'ai dit : besoin d'optimisation ? Utilise ZeroMemory. besoin de sécurité ? Utilise SecureZeroMemory.

    2. La page oldnewthing que tu cites ne dit pas non plus que ZeroMemory a été proposée uniquement pour les développeurs dans d'autres langages. Elle explique juste pourquoi Microsoft préfère souvent utiliser ZeroMemory plutôt que = {0} dans leurs exemples de code pour initialiser tous les bits d'un tableau ou une structure à zéro et on y apprend que c'est parce que ZeroMemory est connue de tous alors que la syntaxe = {0} n'est connue que des programmeurs C et C++.

    Moi non plus mais ce que je veux dire c'est que tu traites avec un environnement de développement, donc pas forcément avec le système Windows. Ce sont deux choses bien différentes.
    Si tu veux. C'est une philosophie différente. Mais pour moi en tous cas, le SDK (je dis bien le SDK, ça n'a rien à voir avec un EDI particulier) ce n'est pas n'importe quoi non plus.

    Tu te trompes sur un point essentiel : crss.exe n'y est pas relié. Je t'explliques pourquoi ton erreur est importante car je crois que je ne me suis pas exprimé assez clairement.
    OK désolé, csrss.exe n'y est pas lié, mais ça n'enlève pas le fait qu'explorer.exe, services.exe, lsass.exe, winlogon.exe et bien d'autres composants essentiels y sont, et importent des fonctions de la bibliothèque standard du C. J'ai vérifié avec Dependency Walker cette fois-ci pour ne plus dire des bêtises. Et tu vas pas faire comme si c'était une erreur monumentale de s'être trompé sur un exe quand même ! Et en passant, c'est csrss et non crss.

    je l'ai déjà dit, dans la pratique, pour l'utilisateur final d'un produit desktop ou même serveur, ce fichier est essentiel au bon fonctionnement d'un PC WIndows et non de WINDOWS!
    Si on parle de msvcrt.dll, c'est bien qu'on parle de la version PC quand même .

    Le fait que le sous système crss.exe n'en soit pas dépendant ou qu'il en existe 10 000 sous une édition pour éviter le dllhell est assez parlant. Mais pour le programmeur (et pourquoi pas l'utilisateur avancé) c'est différent!
    Ce sont plutôt les composants essentiels qui y sont liés qu'il faut regarder, et il y en a pléthore, pas ce qui n'y sont pas liés.

    Mais pour le programmeur (et pourquoi pas l'utilisateur avancé) c'est différent! Petit exemple, sous Windows CE le C-Runtime est exporté par Coredll.lib et Corelibc.lib et ils ne respectent même pas les standards ANSI. Est ce que tu fais moins tourner un Windows pour autant?
    C'est coredll.dll et corelibc.dll. Les .lib ne sont que des fichiers d'importation qui sont utilisés à l'édition statique des liens mais ils ne contiennent même pas les codes des fonctions, et tu peux utiliser coredll.dll sans te lier avec coredll.lib par exemple.

    Et melem merci pour la découpe au fait, désolé d'avoir douté de toi!
    De rien

  5. #25
    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
    1. La page de msdn library que tu cites ne dit pas du tout qu'il ne faut plus utiliser ZeroMemory. Elle dit juste :

    Ca correspond bien à ce que j'ai dit : besoin d'optimisation ? Utilise ZeroMemory. besoin de sécurité ? Utilise SecureZeroMemory
    Et dans une appli toi tu t'en fous de la sécurité (je m'en doutais un peu mais bon! )

    Citation Envoyé par Melem Voir le message
    2. La page oldnewthing que tu cites ne dit pas non plus que ZeroMemory a été proposée uniquement pour les développeurs dans d'autres langages. Elle explique juste pourquoi Microsoft préfère souvent utiliser ZeroMemory plutôt que = {0} dans leurs exemples de code pour initialiser tous les bits d'un tableau ou une structure à zéro et on y apprend que c'est parce que ZeroMemory est connue de tous alors que la syntaxe = {0} n'est connue que des programmeurs C et C++.
    Donc on est d'accord c'est un bidouillage CQFD C'est même plus pour les programmeurs C.

    Citation Envoyé par Melem Voir le message
    Si tu veux. C'est une philosophie différente. Mais pour moi en tous cas, le SDK (je dis bien le SDK, ça n'a rien à voir avec un EDI particulier) ce n'est pas n'importe quoi non plus.
    Et la est bien le pb, tu confonds SDK (Software Developpement Kit, des outils d'aide à la programmation) et API (Application Programming Interface, ici le set de fonctions etc... qui te permettent d'utiliser le noyau et que le SDK peut utiliser, comme il peut tout aussi bien intégrer des librairie qu'ils jugent utiles)

    PS: Chaque compilo a sa version de msvcrt.dll. Et il y'en a même qui remplacent les fonctions de la dll par des versions builtin. C'est pour cela qu'il est conseillé d'utiliser BeginThreadex au lieu de CreateThread (ou l'inverse je ne sais plus). D'où le fait, par exemple, qu'il y'a 100 000 versions de msvcrt sur les PC Windows. Tu veux les sources?

    Citation Envoyé par Melem Voir le message
    OK désolé, csrss.exe n'y est pas lié, mais ça n'enlève pas le fait qu'explorer.exe, services.exe, lsass.exe, winlogon.exe et bien d'autres composants essentiels y sont, et importent des fonctions de la bibliothèque standard du C. J'ai vérifié avec Dependency Walker cette fois-ci pour ne plus dire des bêtises. Et tu vas pas faire comme si c'était une erreur monumentale de s'être trompé sur un exe quand même ! Et en passant, c'est csrss et non crss.
    et
    Citation Envoyé par Melem Voir le message
    Si on parle de msvcrt.dll, c'est bien qu'on parle de la version PC quand même .
    Donc tu n'as toujours pas compris. Sais-tu à quoi sert csrss.exe? C'est le common runtime subsystem. A quoi sert-il, à gérer windows. Quand tu lances un programme texte sous cmd.exe, qui gère l'affichage de la fenêtre de cmd.exe ou autre? Regardes dans ton tlist.exe pour voir un peu la hiérarchie des processus. C'est un peu le "init" de Linux mais avec d'autres fonctions essentielles. C'est en quelques sorte Windows. Lorsque tu te demandes pourquoi tel logiciel fait tel trucs sans que tu lui ait explicitement demandé de le faire, dit toi que c'est crss.exe qui s'en est chargé pour toi. Lorsque tu appuis sur Ctrl-Alt-Supp, qui gère les changements de session etc... csrss.exe est le premier processus lancé par le noyau et lorsque tu utilises les autres sous système ils font eux même appel à csrss donc lui c'est un truc essentiel à Windows. Par contre cherches explorer.exe ou cmd.exe dans un Windows Phone.

    Citation Envoyé par Melem Voir le message
    Ce sont plutôt les composants essentiels qui y sont liés qu'il faut regarder, et il y en a pléthore, pas ce qui n'y sont pas liés.
    Grosse erreur! Essentielle oui, mais pour quoi? VMware ESX est basé sur pleins de Lib de chez eux. C'est pas pour autant que tout Linux dépend de ces libs

    Citation Envoyé par Melem Voir le message
    C'est coredll.dll et corelibc.dll. Les .lib ne sont que des fichiers d'importation qui sont utilisés à l'édition statique des liens mais ils ne contiennent même pas les codes des fonctions, et tu peux utiliser coredll.dll sans te lier avec coredll.lib par exemple.
    Tu rigoles? Et les fonctions sont où? Elles tombent du ciel? Pas compris là! Coredll et Corelibc ne seraient donc pas selon toi ce qui remplace msvcrt sur les Windows Phone?

    PS : Je suis "Membre du Club"! Wepa \O/

  6. #26
    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
    Ha ha ha. J'en ai terminé avec cette discussion.
    C'était un plaisir.

  7. #27
    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
    Ha ha ha. J'en ai terminé avec cette discussion.
    C'était un plaisir.
    Ok ok mais je voulais quand même m'excuser encore si j'ai pu paraître impoli ou condescendant pendant la discussion. Ce n'était pas voulut. surtout que je trouve toujours de l'aide sur ce forum quand j'en ai besoin donc je voudrai vraiment pas passer pour tel mais j'ai rarement l'occasion de débattre avec un connaisseur donc je mettais plus dans le fond que sur la forme . En tout cas j'ai apprécier discuter avec toi malgré tout et j'ai même appris certaines choses comme je ne suis pas sous Windows depuis longtemps. Donc merci, bon WE et au plaisir Melem.

  8. #28
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par baccali Voir le message
    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?
    ZeroMemory n'est pas du tout un bidouillage.
    C'est une "vieille" fonction de l'API win32 qui est maintenant remplacée par SecureZeroMemory
    SecureZeroMemory n'existait pas sous VC6 ZeroMemory oui


    Citation Envoyé par baccali Voir le message
    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!
    effectivement , en tant que programmeur tu peux utiliser les fonctions standard du langage C via msvcrt.dll qui est le runtime de la lib C fournie par Visual Studio.
    Mais il est fort probable que Microsoft utilise ses propres fonctions qui n'ont rien à voir avec le standard C pour assurer les fonctionnalités de son OS.

    Pour faire une analogie, c'est comme un peu Office qui utilise son propre Framework en C++ et non pas MFC distribué pour tout le monde.

    De toute façon pour Microsoft ils s'en fichent totalement d'être dans les standards ou pas
    C'est pas possible de faire des fonctions standards sous Windows en C comme sous Linux ,l'architecture est totalement différente.
    Donc les concepteurs de Windows sont obligés de faire leur propre cuisine.
    Rien qu'une appli Windows lambda selon le standard de Microsoft n'est pas du tout dans le standard du langage C étant donné que tu déclares WinMain avec 4 paramètres et non un simple void main()....

  9. #29
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par baccali Voir le message
    En tout cas j'ai apprécier discuter avec toi malgré tout et j'ai même appris certaines choses comme je ne suis pas sous Windows depuis longtemps. Donc merci, bon WE et au plaisir Melem.
    au vu des messages que tu as postés je crois que tu apprends la programmation Windows et que tu viens de Unix ?
    L'erreur énorme et monumentale c'est de penser la programmation Windows comme sous Unix !
    Ne pas commettre cette erreur sinon tu vas tourner en rond.
    La programmation Windows est bien spécifique cela n'a quasiment rien à voir avec la programmation sous Unix.
    Il faut que tu jettes toutes tes connaissances sous Unix et repenser quelque chose de différent.

    Sous Windows tu programmes selon un Software Development Kit win32
    Sous Unix tu programmes en langage C directement , c'est une différence à prendre en compte.
    Voilà pourquoi il n'y a absolument rien de standard en programmation Windows ( WinMain() au lieu de main()) sauf le support des fonctions du standard C.
    Je te conseille de te procurer le livre de Charles Petzold si tu veux continuer dans cette voie-là

  10. #30
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    La libc de microsoft est supposément conforme au standard C90. Par contre, elle se moque bien de POSIX et ignore royalement C99.
    parce que c'est pas possible de l'implémenter techniquement dans le coeur de l'OS.
    Enfin c'est mon explication.
    De toute façon en programmation Windows très peu de choses en standard
    Citation Envoyé par Médinoc Voir le message
    Il est temps de mettre fin à cette discussion avec l'insoutenable vérité: [B]Des DLLs de Windows ont une dépendance vers MSVCRT.DLL.
    oui c'est exact (on le voit avec Dependency Walker) ;mais comme l'écrit Baccali rien ne prouve que ces dll appellent les fonctions standard du c

    Si tu étudies msvcrt.dll avec Dependency Walker( je n'ai que VC++6 ) il y a dans cette dll des API comme _findfirst ou _beginthread qui ne sont pas standards
    http://www.utas.edu.au/infosys/info/...C/CStdLib.html

    Citation Envoyé par Médinoc Voir le message
    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().
    quelle est ta méthode pour qu'on le vérifie par nous-même ?

  11. #31
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    quelle est ta méthode pour qu'on le vérifie par nous-même ?
    Toujours Dépendency Walker: Pour diverses DLLs référençant MSVCRT.DLL, j'ai regardé la liste d'imports.

    PS: Pour C99, la plupart des modifs ne nécessitent pas de changer l'OS. Certaines sont juste une question de fichiers d'en-tête!
    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. #32
    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
    Citation Envoyé par Mat.M
    ZeroMemory n'est pas du tout un bidouillage.
    C'est une "vieille" fonction de l'API win32 qui est maintenant remplacée par SecureZeroMemory
    Mais puisque je dis que non. ZeroMemory et SecureZeroMemory coexistent, elles ont des utilisations différentes. SecureZeroMemory n'est pas là pour botter les f*sses à ZeroMemory.

    Citation Envoyé par Mat.M
    Rien qu'une appli Windows lambda selon le standard de Microsoft n'est pas du tout dans le standard du langage C
    Si, c'est standard, ou devrais-je dire conforme. La norme n'exige pas que le point d'entrée d'un programme C s'appelle main ni quoi que ce soit sur ce point d'entrée d'ailleurs. Cela est réservé à l'implémentation (cf. Norme. "5.1.2 Execution environments"). Du coup, sous Windows, ça s'appelle WinMain. Par contre, main est exigée dans un type d'environnement appelé "hosted", qui est tenu de supporter tout programme strictement conforme.

    Voilà pourquoi il n'y a absolument rien de standard en programmation Windows
    Bah, à part le coup de la fonction WinMain au lieu de main, qui est finalement conforme, je ne vois pas de quoi pourrait-il s'agir.

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