В чем разница между: _fullpath и GetFullPathName

Конечно, я имею в виду отдельно сравнивать их варианты ANSI / Unicode.

  • Ответ: _fullpath против GetFullPathNameA
  • Uni: _wfullpath vs GetFullPathNameW

Кажется, что _fullpath имеет гораздо более приятный и простой API, поскольку он позволяет чтобы выделить буфер для вас, но я просто думаю, что если я заменю GetFullPathNameW на _wfullpath, что я пропущу?

5
Artyom 27 Авг 2011 в 12:48

2 ответа

Лучший ответ

Вам не нужно ничего пропускать. Фактически, вполне возможно, что _fullpath() вызывает GetFullPathName(). В этом случае _fullpath() работает как своего рода оболочка для GetFullPathName(), которая объясняет, почему интерфейс кажется немного проще и проще в использовании.

У вас просто есть несколько способов выполнить одну и ту же задачу. И, если любой из методов не устарел и выполняет необходимую задачу, выбор полностью за вами.

3
Jonathan Wood 13 Янв 2014 в 20:04

_fullpath является частью библиотеки C. GetFullPathName - это Win32 API.

Таким образом, _fullpath кроссплатформенный, а GetFullPathName - специфичный для Windows.

В таких случаях функция C обычно зависит от базовой ОС. Итак, в программе Windows _fullpath, скорее всего, сводится к GetFullPathName(). Но на самом деле тебе не о чем беспокоиться.

-2
Serge Wautier 27 Авг 2011 в 08:51