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 :

API Windows ou bibliothèque standard du C ?


Sujet :

Windows

  1. #1
    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 API Windows ou bibliothèque standard du C ?
    Bonjour à tous,

    *nixien de base, Je commence à peine la programmation sous windows (dont je découvre et j'apprécie le style et la philosophie au passage). Seulement je n'arrive pas à me décider sur un truc :

    Il y a d'un côté la libc qui appelle en réalité les fonctions de l'API win32 et de l'autre côté l'API win32. Ca fait qu'on se retrouve avec 2 API sur le même système, donc 2 façons d'arriver à Rome!

    Donc pour les vétérants de la prog windows, quelle est l'API que vous me conseillez d'utiliser, tant au niveau pratique que performance?

    Cordialement.

  2. #2
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut API Win32
    Bonjour,
    J'utilise API Win32, car avec la documentation complet de MSDN , on peut tout faire avec. Mais ça dépend de toi (le choix)
    Innovation = Blending of idea , science and practice engineering

  3. #3
    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
    Donc techniquement il n'y a aucun avantage à utiliser l'un ou l'autre? Je veux dire en situation réelle tu n'as jamais eut à utiliser l'autre API?

    merci

  4. #4
    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
    Ca fait qu'on se retrouve avec 2 API sur le même système, donc 2 façons d'arriver à Rome!
    Pas du tout. La lib C sert à écrire des programmes portables. L'API Windows sert à écrire des programmes spécifiques à Windows, ce qui ne t'empêche pas d'utiliser la lib C même si tu n'a pas l'intention de l'utiliser ailleurs que sous Windows. D'ailleurs, la lib C est, de manière générale, plus simple à utiliser que l'API Windows. Compare par exemple fopen - fwrite - fclose avec CreateFile - WriteFile - CloseHandle. Du coup, il arrive aussi souvent que l'on se serve des fonctions de la lib C même dans une application spécifique à Windows.

    Donc pour les vétérants de la prog windows, quelle est l'API que vous me conseillez d'utiliser, tant au niveau pratique que performance?
    Les deux.

  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 Melem Voir le message
    Pas du tout. La lib C sert à écrire des programmes portables. L'API Windows sert à écrire des programmes spécifiques à Windows, ce qui ne t'empêche pas d'utiliser la lib C même si tu n'a pas l'intention de l'utiliser ailleurs que sous Windows. D'ailleurs, la lib C est, de manière générale, plus simple à utiliser que l'API Windows. Compare par exemple fopen - fwrite - fclose avec CreateFile - WriteFile - CloseHandle. Du coup, il arrive aussi souvent que l'on se serve des fonctions de la lib C même dans une application spécifique à Windows.
    J'avais bien compris! Tu dis pas du tout mais tu corrobore ce que je dis! Pour reprendre ton exemple : On a fopen etc... d'un côté et createFile etc... de l'autre -> deux façon d'arriver à Rome! Ma question c'était pourquoi utiliser l'une plutôt que l'autre. çà se joue simplement sur la simplicité?! Si c'est le cas eh bien comme je disais, la libc, elle sert à rien sous windows,! (mis à part pour les maths CreateFile et autre n'étant pas si compliqué et permettant même un meilleure contrôle de ce que tu fais)

  6. #6
    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
    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.

  7. #7
    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
    Pour reprendre ton exemple : On a fopen etc... d'un côté et createFile etc... de l'autre -> deux façon d'arriver à Rome! Ma question c'était pourquoi utiliser l'une plutôt que l'autre. çà se joue simplement sur la simplicité?! Si c'est le cas eh bien comme je disais, la libc, elle sert à rien sous windows,!
    Bah, on peut poser la même question pour nix : On a fopen etc... d'un côté et creat etc... de l'autre -> deux façon d'arriver à Rome! (...) pourquoi utiliser l'une plutôt que l'autre ... Devrais-je en conclure que la lib C ne sert à rien sous nix ? Certainement pas .

    Maintenant pour répondre à ta question, je le répète encore, l'avantage de la lib C est la portabilité, l'avantage de l'API système est le contrôle total. D'autre part, la lib C est d'un niveau supérieur à l'API système, puisqu'elle l'encapsule. Cela peut être un avantage ou un inconvénient, selon tes besoins.

  8. #8
    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
    Bah, on peut poser la même question pour nix : On a fopen etc... d'un côté et creat etc... de l'autre -> deux façon d'arriver à Rome! (...) pourquoi utiliser l'une plutôt que l'autre ... Devrais-je en conclure que la lib C ne sert à rien sous nix ? Certainement pas .
    Là par contre tu marques un point! A la seule différence que les *nix ne proposent pas d'autres API "NATIVES" pour simplifier la com avec le noyau. Vas ouvrir un shell (et là je parle pas de bash et autres) sans libc!!! Par contre tu peux faire ce que tu veux sous windows sans passer par la libc, qui je rappelle n'est même pas maintenue par la même équipe que celle qui fait Windows.


    Citation Envoyé par Melem Voir le message
    Maintenant pour répondre à ta question, je le répète encore, l'avantage de la lib C est la portabilité, l'avantage de l'API système est le contrôle total. D'autre part, la lib C est d'un niveau supérieur à l'API système, puisqu'elle l'encapsule. Cela peut être un avantage ou un inconvénient, selon tes besoins.
    Oui et merci encore de ta réponse. Ce que j'en déduit en tout cas c'est que la libc permet de faire des applis portables tant qu'elles restent basiques.

  9. #9
    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
    Oui et merci encore de ta réponse. Ce que j'en déduit en tout cas c'est que la libc permet de faire des applis portables tant qu'elles restent basiques.
    tu n'as pas compris la réponse de Melem;
    il explique que l'API win32 c'est spécifique à Windows.
    Si tu veux faire un programme Windows avec fenêtre , il faut passer par la programmation Windows win32 et appeler CreateWindows etc
    Mais la libc te sera utile aussi en programmation Windows;tu peux ouvrir aussi bien un fichier avec fopen qu'avec CreateFile

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 10h40
  2. Windows utilise-t-il la bibliothèque standard du C ?
    Par baccali dans le forum Windows
    Réponses: 24
    Dernier message: 16/02/2012, 10h21
  3. Réponses: 2
    Dernier message: 18/04/2007, 21h32
  4. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28

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