begin process at 2012 05 27 19:01:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > REMPLACE CRT - UNICODE (WIN64)

REMPLACE CRT - UNICODE (WIN64)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :crt, unicode, win64 Niveau :Débutant Date de création :06/04/2006 Vu / téléchargé :4 117 / 137

Auteur : BruNews

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

Idem aux sources précédentes, cette fois UNICODE pour Windows x64.
Fait sur VS 2005 sous XP64.
En mode x64, VC interdit l'asm inline et aussi en fonctions standards, "__asm" n'est plus autorisé. Il faut donc revenir aux fichiers asm qu'on insère dans le projet, ce qui n'est pas plus mal vu qu'on retrouve toute la liberté du pur asm.
Manip (ultra simple) pour compil d'un asm avec restant du projet:
- Clic droit propriété sur le fichier asm.
- Régler sur Custom Build, Appliquer.
- Command Line: ml64.exe -c -Cx /nologo -Fo$(IntDir)\$(InputName).obj $(InputName).asm
- Outputs: $(IntDir)\$(InputName).obj
et voilà tout, copier coller ce qui est au dessus dans chaque champ et va bon.

Jeu de fonctions pour projets VC++ n'utilisant pas de CRT (utilisable aussi avec).
Toutes les fonctions retournant TCHAR* retournent le pointeur sur FIN d'écriture, ce qui évite tout strcat en permettant un chainage direct sur le pointeur retourné.

J'ai mis une dialog pour bien montrer qu'il n'y a pas d'erreur stack, ne se verrait pas forcément direct dans WinMain.
Tous les tests sont dans Tester() mis par blocs, suffit de commenter et décommenter chaque bloc pour tester les diverses fonctions.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64)
Source avec Zip Source avec une capture FIND TEXT (WIN64)
Source avec Zip DELETE DIRECTORY (WIN64)
Source avec Zip ENUM DIRECTORY (WIN64)
Source avec Zip TEMPLATES C/C++ POUR VS 2010

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

 Sources en rapport avec celle ci

Source avec Zip ENUM DIRECTORY (WIN64) par BruNews
Source avec Zip PARSER XML par MagnumPP
Source avec Zip Source avec une capture APPLICATION MULTILINGUE UTILISANT UNICODE (WIN32) par racpp
Source avec Zip REMPLACE CRT (WIN64) par Arnotic
Source avec Zip REMPLACE CRT - UNICODE (WIN32) par BruNews

Commentaires et avis

Commentaire de excrt le 13/04/2006 19:32:19

CHAR ansi_string[] = "chaine ici"; // <<<<<<< GOOD
WCHAR wide_string[] = L"chaine ici"; // <<<<<<< GOOD
TCHAR t_string[] = TEXT("chaine ici"); // <<<<<<< GOOD

TCHAR BruNews_string[] = L"chaine ici"; // <<<<<<< !!! BAD !!! MÔVÈS !!!

#ifdef UNICODE
  typedef WCHAR TCHAR;
#else /* !UNICODE */
  typedef CHAR TCHAR;
#endif

un « TCHAR » n'est pas forcément un « WCHAR » ...
donc, avec les « TCHAR » oublies le « L » et utilise plutôt « TEXT() »

/* _WIN32_WINNT
*
*  Windows Vista/Longhorn  >= 0x0600
*  Windows Server 2k3      >= 0x0502
*  Windows XP              >= 0x0501
*  Windows 2k              >= 0x0500
*  Windows NT4             >= 0x0400
*
*/
/* _WIN32_WINDOWS
*
*  Windows ME              >= 0x0500
*  Windows 98              >= 0x0410
*  Windows 95              >= 0x0400
*
*/
/* _WIN32_IE
*
*  IE 7.0                  >= 0x0700
*  IE 6.0 SP2              >= 0x0603
*  IE 6.0 SP1              >= 0x0601
*  IE 6.0                  >= 0x0600
*  IE 5.5                  >= 0x0550
*  IE 5.01                 >= 0x0501
*  IE 5.0/5.0a/5.0b        >= 0x0500
*  IE 4.01                 >= 0x0401
*  IE 4.0                  >= 0x0400
*  IE 3.0/3.01/3.02        >= 0x0300
*
*/

tu pourrais très bien mettre tes trois « pseudo-crt » en un seul et unique ...
ce serait beaucoup plus simple. tu n'aurais qu'a définir UNICODE(pour les versions unicode) et WIN32 ou WIN64 selon la plate-forme ... une compilation et tu obtients celui désiré ...

honnêtement, je ne vois pas comment ceci pourrait remplacer le CRT « original » ...
il est plutôt petit(minuscule) et pas très portable ... je ne l'ai pas testé, donc pour ce qui est du « fonctionnel », je l'ignore ...


Commentaire de BruNews le 13/04/2006 22:10:29 administrateur CS

Je ne me prends pas pour DEMECO et me fous absolument de la portabilité.

Je ne ferai plus que unicode sur win64 donc le "L" restera, c'est plus court à taper.

Je ne vois pas ce qu'on gagne à tout regrouper, ces fonctions n'ont pas à être compilées séparément mais dans un proj et pas envie de me prendre la tête à savoir dans quel #ifdef je me trouve le jour où je voudrai faire une modif. Ceci d'autant plus que win64 appelle tout en fastcall, il faudrait aussi mettre les déclarations dans des multi #ifdef, donc désolé mais pas de temps à perdre.

Commentaire de excrt le 14/04/2006 05:24:56

puisque Win64 appel tout en __fastcall;

#ifdef WIN64
# define CALLCONV __fastcall
#else /* WIN32 */
# define CALLCONV __stdcall /* ou __cdecl ou autre ... */
#endif /* #ifdef WIN64 */

#define CALLCONVV __cdecl /* pour les fonctions à nombre variable d'arguments */

type CALLCONV function_0( type arg1[, type arg2[, ...]] );
type CALLCONVV function_1( type arg1[, type arg2[, ...]], ... );
...

ce n'est pas plus long écrire CALLCONV/CALLCONVV que __<fastcall|stdcall|cdecl>
ton argument ne tient pas, mais ce n'est pas grave, ce n'était qu'une suggestion ...

pour ce qui est du « L », puisque tu tiens à coder en UNICODE seulement, utilise donc des WCHAR et non des TCHAR, parce que les sources que tu postes, il n'y a pas que _toi_ qui les utilisent,
pense aux autres, non?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

base de donnée et UNICODE [ par hanafi ] bonjour tout le mondeje fais la connection avec la base de donnée avec VC++.ca marche impicable Mais Mais....quand j'ajoute dans l'envirenement Proje Afficher des caratères unicode dans une editbox [ par fatimas ] salutJ'aimerai afficher une chaine de caractères contenant de l'unicode (caractères arabe),sur une editbox. Mais je ne sais pas comment. Si je fais un Unicode [ par gus2647 ] Bonjour,J utilise les MFC et VC++ et je desire utiliser la fonction ShellExecuteW mais j ai l impression que pour cela il faut definir une variable UN Unicode [ par vecchio56 ] Je veux dessiner le caractère sigma qui est défini dans le jeu de caractères Unicode (0xA303 pour Times New Roman). Comment puis-je faire pour l'affic Crt-C ou la croix dans la console en C ou C++ je voudrais l interdire [ par budo ] voila je ne vois comment interdire la touche CRT-Cdans mon application console je gere le clavier parfaitement mais si j'avais un exemple vois utilisa CARACTERES UNICODE [ par AlexMAN ] Bonjour all !!Voila, j'aimerais intégrer a mon prog C ki est en mode console, des caracteres unicode mais je n'arrive pas, je sais pas si la norme sup Comment afficher de l'unicode sur un RichEdit ??? [ par popi0016 ] Bonjour j'ai deja ouvert le probleme et avec vos reponses et mes recherches voici ou j'en suis ... //------------------------------------------------- unicode et bianire help!!!! [ par youpiyoyo ] bon j'ai visité cette page d'abord:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_unicode.99_.stream_i.2f.o_in_text_ Pdf et unicode [ par wizouille ] Je dois créer un fichier pdf écrit en asiatique.j'ai un fichier xml en UTF-8 qui me donne les valeurs des caractères à imprimer.Mais je n'y arrive pa CRT Source [ par vecchio56 ] Les fichier sources de vs contenus dans C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src sont ils utilisés seulement pour le débogage ou


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales