Je dois remplacer les anciens noms de chemin d'accès abrégé Win98 par des chemins longs. J'avais une routine qui fonctionnait bien avec Delphi 4, mais quand j'ai mis à jour vers Delphi 2009 et Unicode, cela ne fonctionnait pas avec les chaînes Unicode. J'ai regardé autour et je ne pouvais pas trouver une version compatible Unicode de celui-ci.Comment appeler correctement GetLongPathName à l'aide de Delphi 2009 et de chaînes Unicode?
Il semble que la routine correcte à utiliser est GetLongPathName from the WinAPI. Mais il ne semble pas être dans la bibliothèque SysUtils de Delphi 2009 et je n'ai pas réussi à comprendre comment le déclarer correctement pour accéder à la routine WinAPI.
Aussi, il semble que cela peut être difficile à appeler, parce que j'ai lu le SO Question: Delphi TPath.GetTempPath result is cropped mais cela ne m'a pas aidé à obtenir la première base.
Quelqu'un peut-il expliquer comment déclarer cette fonction et l'utiliser correctement en passant une chaîne Unicode dans Delphi 2009?
Je crois que la dernière déclaration de fonction donne: [erreur DCC] besoins de fonction type de résultat – lkessler
@lkessler: Non, vous ne devez pas redéclarer arguments de la fonction et le type de résultat dans la section implémentation s'ils sont déjà déclarés dans la section interface. – kludg
Merci @Serg. Cela n'a pas vraiment fonctionné dans tous les cas, mais après une légère correction j'ai réussi à le faire fonctionner. J'ai mis à jour votre réponse pour le faire correctement. Cela a vraiment aidé. – lkessler