Question Visual C++

Question Visual C++ - C++ - Programmation

Marsh Posté le 02-06-2011 à 22:45:34    

Salut, j'ai une question de newbie. Comment dois-je faire avec VisualC++ 2008 pour faire une appli win32 native qui puisse tourner sur à peu près n'importequel autre pc sous un windows assez récent. Je ne veux pas de .NET, pas de framework, rien. Juste un binaire classique comme j'en télécharge tous les jours.  
Pour l'instant si je compile un projet win32 qui n'utilise que l'API win j'ai une erreur d'execution sur d'autres machines : problème de configuration côte à côte.
 
PS : Je n'ai jamais compris ces histoires de dépendances avec VisualC++, et si quelqu'un à un tuto clair qui explique tout je suis preneur !
 
Merci d'avance :jap:

Reply

Marsh Posté le 02-06-2011 à 22:45:34   

Reply

Marsh Posté le 02-06-2011 à 23:25:14    

L'erreur en question c'est certainement la msvcrt (la libc de Microsoft) de VS2008 qui manque sur les systèmes autres que celui où tu développes. Cette DLL est installée via un système qui s'appelle Windows Side by Side (WinSxS pour les intimes...), introduit par WinXP. Ce système était sensé apporter une solution au DLL Hell : plusieurs versions d'une même DLL (avec le même nom) pouvait cohabiter sur le même système (la DLL la plus connue à utiliser ce système la comctl32.dll v6: celle qui gère les contrôles standard de Windows). Dans la pratique, c'est une usine à gaz à la Microsoft: l'installer à la main, c'est mission impossible (j'avais lu le blog d'un gars qui avait essayé: bah, c'est franchement pas trivial, désolé, je ne retrouve plus le lien), il faut passer par les "vcredist.exe": avantages: tu l'installes via un "vcredist /Q". Inconvénient: bah, ton appli se bouffe 3Mb dans les dents, quand bien même la DLL compressée doit faire dans les qqs centaines de Ko. Et non, ce n'est pas aussi trivial que de copier une DLL dans System32.
 
Sinon tu peux essayer d'utiliser la mscvrt qui est installé par défaut sur Windows 2000 et + : c'est celle de Visual C++ 6 (msvcrt.dll), qui contient une tétrachiée de bugs/trucs pas trop conforme. Normal tu me diras, elle date de la fin des années 90. C'est aussi celle qui est utilisée par défaut par MinGW. Cela dit, je ne sais pas trop comment faire pour dire à VS2008 d'utiliser cette ancienne version.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed