C ++: Макрос A2W устарел для x64 — альтернативы?

Я использую PVS-studio для преобразования программы в x64 из x86. После выполнения анализа в PVS-Studio я получаю следующие предупреждения, связанные с x64, для каждого использования макроса A2W, определенного в atlconv.h:

V303 The function 'lstrlen' is deprecated in the Win64 system. It is safer to use the 'wcslen' function.
V104 Implicit conversion of '_convert' to memsize type in an arithmetic expression: _convert * sizeof (WCHAR)
V107 Implicit type conversion third argument '_convert * sizeof (WCHAR)' of function 'AtlW2AHelper' to 32-bit type.

Поскольку atlconv находится в стороне от моей досягаемости, должен ли я просто игнорировать эти предупреждения, или как можно было бы иначе использовать макрос A2W на x64?

0

Решение

Я считаю, что эти макросы ATL 3.0 устарели.
Начиная с ATL 7.0 доступны новые классы преобразования.
http://msdn.microsoft.com/EN-US/library/87zae4a3(v=VS.120,d=hv.2).aspx

В большинстве случаев достаточно заменить макрос A2W классом CA2W.

1

Другие решения

В случае, если это поможет кому-то еще, я решил это с помощью конструктора CStringW.

0

По вопросам рекламы [email protected]