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 utile


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 12
    Points
    12
    Par défaut API Windows utile
    Bonsoir à tous,

    Je ne cherche pas à lancer un débat sans fin ou à déchainer les foules

    Est-il encore utile d'apprendre l'API Win32 ?

    Plusieurs personnes m'ont dit que c'était inutile car bientôt obsolète, j'aimerais votre avis.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    Inutile et obsolète certainement pas. Elle ne sera réellement obsolète que lorsque la totalité du parc Windows sera passer en 64 bits (pour l'API Win32x86, restera l'API Win32x64).

    l'API Win32 est la base, le cœur du système Windows et les framework et autres machines virtuelles ne sont que des sur-couches rajoutées entre le code du programmeur et l'API.

    ALors si tu ne destine qu'à faire du code sur du framework, managé, sur machine virtuelle, ou que sais-je, sans jamais utiliser directement les fonctions de l'API, alors oui tu peux ne pas l'apprendre.

    Par contre si tu veux faire du code dit natif en C notamment, ou des drivers par exemple, l'API est nécessaire.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse.

    J'avais peur de me lancer dedans (c'est pas facile à vrai dire l'API Win32) sans savoir si dans le futur ça m'aurait servi ou non..

  4. #4
    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 379
    Points
    20 379
    Par défaut
    Citation Envoyé par poneyrose Voir le message
    Est-il encore utile d'apprendre l'API Win32 ?

    Plusieurs personnes m'ont dit que c'était inutile car bientôt obsolète, j'aimerais votre avis.

    Merci d'avance.
    en aucun cas c'est obsolète....
    1-VC++ est toujours commercialisé et Microsoft développe toujours les MFC
    2-les API Windows sont utiles pour certains SDK comme Direct X par exemple voire Open GL
    3-même pour .NET c'est utile étant donné que Microsoft n'a pas totalement réussi à intégrer les API dans .NET

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 075
    Points
    28 075
    Par défaut
    3-même pour .NET c'est utile étant donné que Microsoft n'a pas totalement réussi à intégrer les API dans .NET
    Surtout que .Net utilise lui-même en interne les API Win32

    Comme je disais avant, .Net n'est qu'une surcouche (pas totale, c'est vrai) de ces API
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    pas totale? tu peux expliquer? avec sources et tout ça svp? je suis sceptique (et ça m'interresse).

    l'api win32 est la base de l'OS, qu'on fasse un fopen en C ou un MaSuperFonctionDouvertureDeFichier en LeLangageDeLaMortQuiTue, au final on aura un appel à ntcreatefile non?

    de plus j'ose esperer qu'on aura jamais de kernel dévellopé en C#, ni de driver.
    bref, c'est utile tout dépend ce que tu veux faire plus tard
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  7. #7
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Je pense qu'il voulait dire surcouche mais "pas que" de l'API.

  8. #8
    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 379
    Points
    20 379
    Par défaut
    Salut,

    Citation Envoyé par sloshy Voir le message
    l'api win32 est la base de l'OS, qu'on fasse un fopen en C ou un MaSuperFonctionDouvertureDeFichier en LeLangageDeLaMortQuiTue, au final on aura un appel à ntcreatefile non?
    Oui très certainement
    Le plus simple pour t'en convaincre c'est de faire un petit programme en C en mode console avec un simple main() et tu traces en assembleur
    Mais je suppose que tu l'as déjà fait

    de plus j'ose esperer qu'on aura jamais de kernel dévellopé en C#, ni de driver.
    bref, c'est utile tout dépend ce que tu veux faire plus tard
    Microsoft avait dans ses cartons ce genre de projet notamment un OS entièrement en code "managed" qui s'appelait Midori mais je crois qu'il est tombé à l'eau

    http://en.wikipedia.org/wiki/Midori_(operating_system)

  9. #9
    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 le coup de fopen():
    À ma connaissance, fopen() appelle _open() qui appelle CreateFile() qui appelle NtCreateFile() qui appelle KiFastSystemCall(), et le kernel appelle ZwCreateFile().
    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.

  10. #10
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    ils sont

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    On disait la même chose des inventeurs de l'operating system.

  12. #12
    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
    Citation Envoyé par minnesota Voir le message
    ils sont
    Ben non, c'est tout-à-fait normal:
    • Fonction du Kernel ZwCreateFile() : Indispensable, c'est la cause de tout.
    • Séparation Kernel/User KiFastSystemCall() : La base d'un OS moderne.
    • Fonction user NtCreateFile() : Normal, elle expose toutes les fonctionnalités d'ouverture de fichier que le kernel offre.
    • Fonction API Windows CreateFile() : Celle-là est plus dure à justifier, pourquoi ne pas utiliser NtCreateFile() directement? Peut-être des histoires de legacy avec Win 3.11? Ou bien tout simplement pour se donner un peu de liberté quand à l'API native.
    • Fonction POSIX-like _open() dans la libc : Microsoft se casse le cul pour que les POSIX-maniaques d'EPITA ne soient pas trop désorientés, alors autant ne pas cracher dessus!
    • Fonction standard C fopen() dans la libc : Indispensable. Aurait pu appeler directement une fonction de plus bas niveau s'il n'y avait pas l'exigence de POSIX.

    En fait, à part l'étape CreateFile(), tout coule de source ou est une concession à POSIX.

    En comparaison, tu as les OS POSIX:
    • Fonction du kernel (nom inconnu) : Indispensable, c'est la cause de tout. On remarquera qu'elle propose moins de fonctionnalités que ZwCreateFile(), en partie parce qu'une beaucoup sont déléguées vers d'autres fonctions comme ioctl(). Aussi, cette fonction utilise les droits rwxrwxrwx au lieu d'une ACL.
    • Code assembleur pour appeler le kernel: Ici, le code est recopié au lieu d'être centralisé, c'est un choix.
    • Fonction POSIX open() : Normal, elle expose toutes les fonctionnalités d'ouverture de fichier que le kernel offre. Et en bonus, elle est directement compatible posix!
    • Fonction standard C fopen() dans la libc.
    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.

  13. #13
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Citation Envoyé par bacelar Voir le message
    On disait la même chose des inventeurs de l'operating system.
    Oui, des génies aussi.

    @Medinoc

    Merci, j'avais fait abstraction de POSIX dans mon constat, heureusement que tu es là

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    CreateFile n'est pas NtCreateFile car la technologie NT, dont est issue les OS récent de M$, devait gérer de manière cloisonnée les API Windows et les API POSIX pour prétendre à équiper l'armée américaine.

    Donc pas d'implémentation POSIX au dessus de Win16/32.

  15. #15
    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
    Ah oui, les "Windows Services for Unix", le "POSIX Subsystem", psxss.exe... Dommage qu'il faille payer un supplément pour les avoir.

    (note: au passage, note le "POSIX-like" pour _open(), pour bien marquer la différence entre le _open() de la CRT et le vrai psxss...)
    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.

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 10h40
  2. tutoriel : La programmation de l'API Windows en C++ par Bob
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 19
    Dernier message: 21/06/2008, 14h34
  3. 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
  4. [API Windows] Polices de caractères disponibles
    Par bebeours dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/11/2003, 08h28
  5. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 22h39

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