Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1699 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Windows et API Windows

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Windows et API Windows

n°2261899
doublebeur​re
Posté le 06-07-2015 à 13:49:17  profilanswer
 

Salut,
 
Je viens du monde Linux ou j’ai pas mal de connaissances système et sécurité. Pour ce qui est Windows par contre, je suis nul et je voudrais m'y mettre.
 
Je connais le C, mais je voudrais savoir s’il existe pour Windows, quelque chose du genre « Programming from the ground up », qui est un excellent petit livre pour Linux qui est transversal et introduit les concepts en partant des bas-niveaux au plus haut niveau. Donc par exemple ca commencait avec un peu d’assembleur, puis les syscalls, puis la facon dont un compilateur marchait, puis les librairies, le tout saupoudré de la facon dont Linux fonctionne.
 
Je pourrais foncer tête baissée dans les API de Windows mais j’aimerais aussi connaitre l’environnement sous-jacent de cet OS et de ce qui y tourne, donc tous conseils sont bienvenus.  :p

mood
Publicité
Posté le 06-07-2015 à 13:49:17  profilanswer
 

n°2261900
Wolfman
Lobo'tomizado
Posté le 06-07-2015 à 13:50:26  profilanswer
 

Ce sujet a été déplacé de la catégorie Windows & Software vers la categorie Programmation par Wolfman

n°2261936
tpierron
Posté le 06-07-2015 à 17:28:20  profilanswer
 

Qu'est ce que tu cherches à connaitre de l'API windows ? L'API est extrêment vaste et pas des plus digestes pour certaines parties. La partie graphique (comctl, OLE, GDI, ...) est assez bas niveau et a plutôt mal vieillit. C'est plus que probable que tu vas perdre ton temps à t'investir là dedans plutôt que d'utiliser des API de plus haut niveau.
 
Sinon, il y a la partie programmation système de windows, celle là par contre n'est pas si différente de Linux. Évidemment les noms des fonctions sont différentes, mais pour l'immense majorité des cas, il y a équivalent plus ou moins direct entre une fonction POSIX et l'API Win32 (par exemple l'API des sockets BSD est pratiquement identique). La seule exception qui me vienne à l'esprit est la fonction fork(). Windows est plutôt orienté thread que processus. Il est possible d'émuler fork() sous windows (via cygwin), mais on sent que le système n'a pas été prévu avec ça en tête.
 
Si tu connais bien l'API système Unix, tu pourras facilement t'en sortir avec une recherche web, du genre "equivalent to function xyz win32". Perso, c'est que j'avais fait lorsque je suis passé des systèmes Unix à Windows. L'exception étant la partie graphique (API C), elle est vraiment unique à ce système: c'est conçu pour être bas niveau et pas pour aider le programmeur.
 

n°2261945
doublebeur​re
Posté le 06-07-2015 à 17:44:14  profilanswer
 

Ca tombe bien, car la partie graphique ne m'interesse pas. Ce qui m'interesse c'est surtout la gestion des ressources et des objets qui dans le cas de Windows, car si les principes de base ont l'air de rester les meme il y a pas mal de details qui changent, ne serait-ce que la facon dont les permissions fonctionnent.

n°2262088
Profil sup​primé
Posté le 08-07-2015 à 11:44:50  answer
 

Salut, voici des liens pour se documenter sur la WinAPI (dans le lien, à la section X/): http://hackasm.5gb.co/Projects/Com [...] tml#WinAPI

 

Après si tu veux, tu as la possibilité de voir directement les noms des fonctions dans les dll ( http://www.nirsoft.net/utils/dll_export_viewer.html ), que tu rentres dans bing et choisis le lien sur msdn pour te renseigner sur ladite fonction


Message édité par Profil supprimé le 08-07-2015 à 11:50:34
n°2262257
doublebeur​re
Posté le 10-07-2015 à 10:30:52  profilanswer
 

Merci. :jap:

n°2262327
TotalRecal​l
Posté le 12-07-2015 à 12:19:21  profilanswer
 

Attention, les API Windows, même pour les opérations bas niveau ont énormément évolué au fil des versions pour en simplifier l'usage.
Par exemple il y a beaucoup de choses qui sont maintenant disponibles par des APIs managées, qui évitent de faire du PInvoke.

 

Ta réponse sur ce que tu souhaites apprendre n'était pas du tout claire. Tu risques de passer beaucoup de temps à apprendre des trucs de plus en plus obsolètes si tu ne tiens pas compte de ce type de chose.

Message cité 1 fois
Message édité par TotalRecall le 12-07-2015 à 12:20:59

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2262391
Profil sup​primé
Posté le 13-07-2015 à 17:39:27  answer
 

TotalRecall a écrit :

Attention, les API Windows, même pour les opérations bas niveau ont énormément évolué au fil des versions pour en simplifier l'usage.
Par exemple il y a beaucoup de choses qui sont maintenant disponibles par des APIs managées, qui évitent de faire du PInvoke.

 

Ta réponse sur ce que tu souhaites apprendre n'était pas du tout claire. Tu risques de passer beaucoup de temps à apprendre des trucs de plus en plus obsolètes si tu ne tiens pas compte de ce type de chose.

 

Euh, j'ai un peu du mal à cerner ce que tu veux dire, qu'elle soit évoluée ou pas ça ne change rien, elles sont toutes localisées dans C:\Windows\System32\ principalement et évolue via Windows update (tu peux vérifier par regarder le nombre de fonctions ajoutée à chaque update via dll exporter), donc apprendre la WinAPI n'a rien d'obsolète, de plus tu le dis toi même, elle évolue sur elle même.

 


Parles-tu des API surcouches ? Comme la SDL et toute la clique ?
Elle complique et complexifie le protocole plus que la WinAPI le fait déjà et même si tu mets plus de temps à refaire des concepts que ce que la WinAPI n'a pas à offrir, avec elle, elles seront toujours plus adaptées (petits détails qui ont leur importance) pour ce que tu veux faire qu'avec une bibli générique.

 

Que tu le veuilles ou non, n'importes quel programme est dans l'obligation d'utiliser cette API low level, ce n'est rien que des fonctions offertes par les créateurs de MS pour que nous, toi, puissions faire des programmes sur leur OS, même ta lib de gcc est obligée de passer par la WinAPI quand elle doit être injectée dans un programme windows.

 


https://msdn.microsoft.com/en-us/library/2x8kf7zx.aspx est juste une manière d'interagir avec les fonctions de ces dll, sinon tu peux passer via le linker, que ça soit lib statique (.lib) ou lib dynamique (.dll), ça ne change rien.

 

Et finalement, la communauté msdn est plus que présente ( https://social.msdn.microsoft.com/Forums/en-US/home ), peut-être qu'en france on n'en a rien à faire, dû à ce qu'on apprend dans les écoles d'infos (95% Linux/gcc), mais à l'étranger ce n'est pas le cas.

Message cité 1 fois
Message édité par Profil supprimé le 13-07-2015 à 21:06:33
n°2262405
gilou
Modérateur
Modzilla
Posté le 14-07-2015 à 00:05:13  profilanswer
 

> Que tu le veuilles ou non, n'importes quel programme est dans l'obligation d'utiliser cette API low level
 
Ce qu'il te dit, si j'ai bien compris, c'est que l'interface peut de nos jours être low level, et que l'implémentation peut en fait être du code .NET (qui s'exécute dans l'environnement de la machine virtuelle CLR) et non pas une exécution directe de code compilé stocké dans une dll.  
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --
n°2262417
Profil sup​primé
Posté le 14-07-2015 à 09:54:18  answer
 

gilou a écrit :

> Que tu le veuilles ou non, n'importes quel programme est dans l'obligation d'utiliser cette API low level
 
Ce qu'il te dit, si j'ai bien compris, c'est que l'interface peut de nos jours être low level, et que l'implémentation peut en fait être du code .NET (qui s'exécute dans l'environnement de la machine virtuelle CLR) et non pas une exécution directe de code compilé stocké dans une dll.  
 
A+,


 
Je le sais déjà cela:
 
 
 
Ce que j'ai plutôt compris dans son message, c'est plus l'apologie envers ces lib surcouches telles que la SDL, c'est sûr que c'est bien par moment (enfin perso je n'ai plus d'intérêt), mais encore faut-il ne pas rentrer dans l'excès et ne jurer que par ce type de lib, même si c'est pour avoir un code "portable", pour cela que je les appelle des lib hippies (peace and love entre OS) x)
 
Autre petit problème:
 Pourquoi attendre des lustres que la lib générique se mette à jour alors qu'une nouvelle fonction a été intégrée dans la bibli standard de l'OS la veille ?
 
 
Du moins ces deux points de vue convergent dans les grandes lignes x)


Message édité par Profil supprimé le 20-07-2015 à 15:32:03

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Windows et API Windows

 

Sujets relatifs
Probléme pour récuperer le nom du Fichier API WindowsInstaller une imprimante IPP en utilisant l'API Windows
Api Windows - Information IEAPI Windows : Mutex...
programme utilisant API Windows et GNU Scientific LibrairyQuestion sur API windows VB Word
API Windows : Barre d'outils ?Java, accéder aux API windows
[c][résolu] SDL et API WindowsAPI Windows quels livres pour apprendre ?
Plus de sujets relatifs à : Windows et API Windows


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR