Taquin (2)

Soyez le premier à donner votre avis sur cette source.

Vue 3 106 fois - Téléchargée 562 fois

Description

Reprise du code de William VOIROL.
Origine:
http://codes-sources.commentcamarche.net/source/100735-jeu-taquin-nxn

EXE est compilé x64, 3.96 Ko, 4064 octets.
Grille 8x8.

Le but est de montrer comment compiler sans CRT ni dépendances autres que DLLs System afin de pouvoir livrer EXE sans setup.
Il est clair qu'il faut avoir au préalable écrit son propre CRT.

De l'original il fallait remplacer rand() et _itoa().
- rand():
seed = (DWORD) __rdtsc();
seed = seed * 214013 + 2531011;
dwAlea = (seed >> 16) & 0x7FFF;
_itoa():
J'ai mis ici bnultoa() vu qu'il n'y avait pas de nombre signés.
Bien que aisément équivalente en perfs à celle du CRT, j'ai mis cette version "code court" qui n'est pas la + rapide mais largement suffisante ici.

Une fois les fonctions CRT évacuées, il suffit d'indiquer au linker un point d'entrée perso au lieu d'avoir un WinMain() standard auquel le CRT fournit les paramètres.
EX:
int WinMain(hinst, ...);
Remplacer par:
void myWinMain()
{
hinst = GetModuleHandle(0);
// ...
// return 0 du WinMain (ou autre code erreur)
ExitProcess(vErr);
}

Voilà tout, adieu CRT et ses antiques nuisances.

----------------------------
Infos sur ma compilation (_build.bat):
Ce fichier est généré par un prog de templates de projets (perso comme tout le reste).
Cette compilation utilise les binaires de VS 2013, ml64.exe pour l'ASM et cl.exe pour le C. Si C++ suffit de modifier la variable %optCL% du bat.
Je n'ai pas VS d'installé ni aucun autre IDE, juste un dossier E:\_BINVS\ comprenant les binaires, headers, et libs nécessaires du SDK.
Dans mon boulot ce sont les chemins des binaires de ICC (Intel compilo) qui sont dans le bat (aussi dans _BINVS).
Si on utilise des flottants dans le code, ajouter:
si binaires VS utilisés: int _fltused = 0;
si Intel: BYTE _fltused = 0;

---------------------------

Ne pas hésiter à demander pour toute info complémentaire.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Y a déjà un moment que Windows est fourni avec msvcrt.dll
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 > Rouloude -
Le sujet était msvcr120dll et petite taille sans dépendances.
A quoi on peut ajouter l'inefficacité de la CRT dans quasi tous les domaines.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.