2010-07-08 5 views
2

J'ai appris l'API Windows à partir de livres en ligne et PDF, mais j'entends des gens qui utilisent les programmes SDK et Visual Studio. Que devrais-je faire? API que je créerais mais extrêmement complexe. Serais-je bénéfique d'apprendre l'API ou devrais-je obtenir un sdk ou un programme qui écrit pour le code pour moi? J'ai msC++ e mais je ne pense pas qu'il vient avec ces beniftsMeilleure façon de créer des applications Windows

Répondre

5

Dans le cas de Windows, le SDK et l'API Win32 font à peu près la même chose. Le SDK est toute la merde dont vous avez besoin pour cibler l'API (c'est toujours ce qu'est un "SDK"). Lorsque vous utilisez un compilateur non-VC sur Windows (ou un compilateur croisé), vous devez télécharger le SDK afin d'écrire des programmes win32.

Il existe très peu de cas où le ciblage de l'API Win32 est utile. Vous voulez généralement travailler à un niveau supérieur avec une API comme MFC, WTL ou WX (j'inclue WX car pour Windows c'est en fait un wrapper pour Win32). Il y a aussi des librairies qui font leur propre chose et dessinent tout elles-mêmes (toutes les fenêtres dessinées par le propriétaire) comme Qt, GTK, etc.

Si vous travaillez avec une bibliothèque spécifique à Windows, vous finirez par toucher le Win32 API parfois mais seulement de petites parties de celui-ci. Vous économiserez BEAUCOUP de temps juste en laissant ces parties apparaître au lieu d'essayer réellement d'apprendre l'API elle-même. Personne qui n'est pas fou ou torturé en soumission écrit Win32 brut.

5

Vous voulez certainement utiliser Visual Studio plutôt que d'utiliser le SDK Windows directement pour la programmation GUI. Vous pouvez télécharger Visual Studio Express edition pour l'essayer en premier. Si vous voulez quelque chose de plus simple, vous pouvez jeter un coup d'œil sur la programmation .NET, ou si vous voulez rester avec C++, et vous pouvez utiliser l'API Win32 ou la programmation MFC. Dans la plupart des cas, vous ne voulez probablement pas de programmation directe de Win32 GUI ni MFC mais si vous le faites, envisagez d'acheter un livre de Charles Petzold (sur Win32) ou Jeff Prosise (sur MFC).

+1

Je donnerais presque un -1 pour mentionner le mauvais MFC kludgy hack macro déchets avec tant de bugs que vous finissez par écrire principalement win32 direct de toute façon. –

+0

@Greg: Ce n'est pas si grave, mais comparé à la programmation .NET, les deux sont très difficiles. –

+0

Ayant été un programmeur MFC pendant de nombreuses années, je recommanderais certainement d'apprendre .NET sur MFC. Ce n'est pas que MFC était si mauvais, c'est plus que .NET est beaucoup mieux. – Avalanchis

12

Bien que l'apprentissage de l'API Windows brute a certainement son utilité, je vous suggère d'apprendre une boîte à outils comme Qt.

+1

QT est une excellente option pour écrire des applications indépendantes de la plate-forme. – Avalanchis

+0

QT est une excellente option pour écrire des applications. –

2

La meilleure réponse à votre question dépend de beaucoup de choses. J'ai développé des applications pour la plate-forme Microsoft Windows pendant près de vingt ans, et j'ai tout utilisé depuis l'API Windows, Turbo Pascal, MFC, le constructeur Borland C++ et Visual Basic. J'ai essayé de nombreux kits d'outils multiplateformes, y compris wxWidgets et QT, et ceux-ci ont certainement leur place et sont d'excellentes options pour créer des applications qui fonctionneront sur plus de Windows seulement. En général, si vous ne voulez que cibler la plate-forme Windows (Mono Project malgré cela), IMHO utilisant le langage C# pour cibler la plate-forme .NET avec Visual Studio est probablement l'environnement le plus simple et complet que vous trouverez pour construire des applications Windows aujourd'hui.

Vous obtenez un excellent ensemble d'outils et une mine de documentation, et probablement le plus important, un très grand nombre de programmeurs expérimentés à utiliser lorsque vous avez des questions.

.NET prend également en charge C++ et une variété d'autres langages pour répondre à vos besoins. Si vous avez besoin d'un accès de bas niveau à l'API Win32, vous pouvez accéder aux API directement à l'aide de pinvoke. Si vous avez besoin d'un contrôle de niveau inférieur, vous pouvez référencer des DLL gérées ou non managées à partir de votre application .NET.

1

Je connais de moins en moins de personnes qui écrivent des applications natives, en particulier pour une plate-forme unique, et surtout lorsque cette plate-forme est Windows. Bien qu'il y ait toujours une demande pour cela, je ne suis pas sûr que je voudrais investir beaucoup d'efforts aujourd'hui dans l'apprentissage des particularités de l'API Windows.

Je regarderais quelque chose comme Titanium qui m'a permis d'utiliser des outils Web. C'est assez haut niveau, c'est assez rapide pour presque tout ce que je fais, c'est open-source, et c'est multi-plateforme (même sur le web). J'ai vu des applications (avant Titanium) écrites en tant que pages web avec leur propre moteur de rendu et de rendu JavaScript.

Questions connexes