Question

Je VS 2008 et je veux que mon application fonctionne avec Windows 98 sans avoir besoin d'inclure msvcr90.dll .. Win98 est livré avec MSVCR60 alors comment pourrais-je dire MSVC de le faire? Est ma seule option pour chasser Visual Studio 6?

Merci

* aussi je veux éviter la liaison statique msvcr

Était-ce utile?

La solution

Vous ne pouvez pas dire Visual Studio d'utiliser une version antérieure de la bibliothèque d'exécution. Même si vous pouvez le compiler avec l'ancienne bibliothèque, l'application elle-même ne va pas fonctionner correctement car le compilateur va insérer des appels à des fonctions qu'il attend d'être dans la bibliothèque, ce qui pourrait ne pas être le cas.

aussi je veux éviter la liaison statique msvcr Pourquoi? Cela semble être une solution parfaitement valable à ce problème. Bien sûr, vous payez 100 Ko en taille de code, mais cela vaut le coup sur l'être forcé d'utiliser Visual Studio 6 Buggy et compilateur non conforme.

Vous pouvez aussi simplement inclure le MSVC ++ redistribuable qui contiendrait les DLL correctes et ne nécessiterait pas la liaison statique de la bibliothèque standard.

Autres conseils

Si vous souhaitez cibler Windows 98, vos options sont:

  • Tout d'abord, une version maximum de Visual Studio 2005. 2008 et jusqu'à tamponner un OS minimum ver de 5,0 dans l'en-tête EXE -. Windows 98 tout simplement pas charger les binaires produits par VS 2008

En ce qui concerne la distribution du CRT:

  • Répartir la nouvelle exécution avec votre application. Je préfère cette approche si votre application a beaucoup dll que la liaison statique fait plus grand qu'il doit être tout le lot. De plus, il y a beaucoup de restrictions à l'utilisation de c ++ de dll qui sont assouplies si vous au moins une part la mise en œuvre c-exécution entre tous les modules dans un processus.

Si vous n'êtes pas un « lourd » de l'utilisateur c ++ fonctionnalités telles que des exceptions, et la STL, vous pourriez être en mesure de sortir sans lien dans une crt du tout. Sinon, vos options sont:

  1. Utilisez un compilateur non MS comme MinGW. MinGW utilise la dernière GCC afin que vous obtenez C99 et C ++ 98, C ++ 03, TR1 etc. Et il utilise msvcrt.dll. Code :: est un IDE blocs « ok », si vous avez jamais utilisé Visuel Sutdio et / ou ont pris un peu trop de coups à la tête.
  2. Télécharger le DDK de Windows. Vous aurez besoin de construire à partir de la ligne de commande, et obtenez sale avec des fichiers make, mais son libre, et le DDK utilise le compilateur VS2005 et éditeur de liens, mais spécialement configuré pour lien contre msvcrt.dll, pas msvcr80.dll. Il a été jugé trop risqué nécessitant des pilotes de périphériques à se lier à un moteur d'exécution qui pourrait ne pas être là.
  3. Visual Studio 6 comme option de repli finale. Horrible Horrible support pour C ++ 98. Au moins vous obtenez un joli IDE et il devrait être sacrément rapide maintenant que les ordinateurs ont théoriquement doublé la vitesse / capacité 8 fois depuis son lancement.

Le bas Overhead Microsoft Visual Studio C Runtime est statiquement liable C Runtime qui fait au maximum l'utilisation de la DLL disponible est déjà distribué avec Windows.

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