Question

Il est peut-être une question stupide, mais tous mes essais à Google cela a échoué. La question est: Comment pouvez-vous développer des applications de fenêtres qui ne nécessitent pas un Transmissible pré-installé? Je veux créer des applications qui fonctionnent aussi sous les anciennes versions de Windows qui n'ont pas le .NET Framework ou quelque chose de similaire inclus.

Merci, eWolf

Était-ce utile?

La solution

Tout d'abord, le programme dans une langue maternelle, tels que C ++, pas CLR.

En second lieu, désactiver manifeste et éviter de lier les DLL externes (tels que STDC ou MFC).

Autres conseils

Que voulez-vous dire par les anciennes versions de Windows?
Le .NET Framework fait partie de Windows depuis Windows 2003 et .net 1.1.
Donc, si vous ciblez les versions de Windows plus récentes que Windows 2003, vous pouvez être sûr que .net est disponible.

Il existe aussi des solutions, que automatiser liaison / emballage des produits .net, de sorte que vous n'avez pas besoin d'expédier des redistribuables etc.

Mise à jour: Je viens de découvrir que Mono permet de lier l'exécution entier dans votre exécutable.
Ils appellent cette fonctionnalité Bundle .
En savoir plus sur ce que .

Utilisez Delphi - bien que les versions les plus récentes de l'IDE ont quelques bugs étranges, il est facile de créer des fenêtres natives des applications qui ne nécessitent pas un Transmissible. Beaucoup plus facile à utiliser que C ++ / win32.

Edit:. Comme eWolf a souligné qu'il n'a pas besoin du .NET, malgré la question d'origine étiqueté comme .NET

Bref, certaines machines plus anciennes telles que Win95 / 98/2000 ne peuvent pas avoir le temps d'exécution installé. Depuis que vous avez spécifié .NET, je suppose que vous voulez construire une application utilisant .NET, il y a un grand mais, vous devez avoir le runtime .NET installé au préalable, vous pouvez exécuter l'application .NET. Vous pouvez facilement contourner cette difficulté par deux méthodes:

  • Installer le moteur d'exécution .NET manuellement ou
  • Utiliser un script d'installation personnalisé qui peut détecter si l'exécution .NET est installé ou non, pour installer le runtime .NET redistribuable.

Si vous parlez d'une application native tel que C / C ++, le meilleur chemin à prendre (pour éviter les dépendances et minimiser le nombre de DLL requis) est, développer dans WinAPI32 brut, en utilisant uniquement la DLL norme de que beaucoup des machines Windows auront, COMMCTRL.DLL, USER32.DLL, ADVAPI.DLL pour ne citer que quelques-uns. Le résultat final sera un plus petit exécutable. Bien sûr, vous pouvez regrouper d'autres DLL en liant statiquement l'ensemble de la DLL pour former un grand mammouth exécutable.

Je vous recommande d'utiliser le WTL , qui est un cadre de C ++ léger. Il est seulement un cran au dessus de l'API Win32 vraiment, donc vous obtenez avec quelques petites EXEs dépendances. WTL exige le cadre ATL que vous pouvez créer un lien vers statiquement, ce qui signifie que vous ne devez expédier votre EXE.

Un autre cadre est intéressant de regarder Qt . Cependant, cela ne nécessite que vous expédiez quelques DLL avec votre application. Qt est un cadre fantastique et je pense que vous trouverez plus productif que WTL (en fonction de vos besoins d'application bien sûr.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top