#1 Mon 07 June 2010 15:15
- Sylvain PIERRE
- Participant assidu
- Lieu: Strasbourg
- Date d'inscription: 6 Sep 2005
- Messages: 170
Mapbasic et API windows
Bonjour,
Je souhaiterais comprendre le fonctionnement particulier des appels à des fonctions de l'API windows à partir de Mapbasic:
Ayant besoins de différentes fonctions de manipulation de fichiers absentes de Mapbasic, j'ai récupéré différents exemples. Sur ces modèles j'ai créé une fonction Mapbasic pointant vers la fonction API MoveFile() telle que ci-dessous:
Code:
declare function MoveFile lib "Kernel32" alias "MoveFileA" ( byval fPath as string, byval tPath as string) as integer
Ce que je n'arrive pas à comprendre c'est que la fonction marche lorsque l'alias = "MoveFileA" alors que si l'alias = ""MoveFile" (le nom de la fonction dans l'API décrit comme telle dans la doc windows) cela ne marche plus (fonction MoveFile introuvable)?
Les exemples récupérés sont sous le même modèle:
Code:
declare function CreateDirectory32 lib "Kernel32" alias "CreateDirectoryA" ( byval sPath as string, byval lpSecurityAttributes As Integer) as integer declare function RemoveDirectory32 lib "Kernel32" alias "RemoveDirectoryA" ( byval sPath as string) as integer
Pourquoi ce <nomFonction>A ?
Merci
Hors ligne
#2 Mon 07 June 2010 15:23
Re: Mapbasic et API windows
Pourquoi ce <nomFonction>A ?
Les fonctions Windows utilisent les options d'internationalisation.
Les fonctions <nomFonction>A sont pour les données en ANSI et <nomFonction>W pour les données Unicode.
Dans des projets C++ par exemple, tu définies si ton projet utilise l'encodage ANSI ou Unicode. Comme MapBasic ne déclare rien de particulier, le compilateur se perd entre les différentes solutions.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#3 Tue 08 June 2010 08:36
- Sylvain PIERRE
- Participant assidu
- Lieu: Strasbourg
- Date d'inscription: 6 Sep 2005
- Messages: 170
Re: Mapbasic et API windows
Merci pour l'explication, très claire à mon sens.
Super: une question, ...la réponse! :-)
Hors ligne