Не можете вызвать StrFormatByteSize64 в WinXP? - PullRequest
0 голосов
/ 28 февраля 2020

Я использую функцию StrFormatByteSize64 в Delphi XE3 на основе сообщения в Delphi Функция для отображения количества байтов как Windows Имеет .

Однако при запуске моего приложения в Windows XP появляется ошибка «не удается найти точку входа StrFormatByteSize64W в shlwapi.dll». Однако я проверяю документ StrFormatByteSize64 по адресу https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatbytesize64a и в нем говорится, что функция поддерживает Windows XP и более поздние версии.

Почему она не работает для WinXP?

Спасибо

Обновление

То, что я пытаюсь назвать, это просто StrFormatByteSize64 в моих кодах. Однако, похоже, что Delphi перенаправляет вызов StrFormatByteSize64W. Я должен изменить StrFormatByteSize64 на StrFormatByteSizeW в моем коде, чтобы решить эту проблему.

1 Ответ

4 голосов
/ 28 февраля 2020

На основании указанного вами сообщения об ошибке вы позвонили StrFormatByteSize64W. Но если вы посмотрите на документацию , там написано (выделено мое):

Замечания

StrFormatByteSize64 можно использовать для символов ANSI или Unicode. Однако, хотя StrFormatByteSize64A можно вызывать напрямую, StrFormatByteSize64W не определено . Когда StrFormatByteSize64 вызывается со значением Unicode, используется StrFormatByteSizeW.

Итак, вызовите StrFormatByteSize64()

...