C ++:对于x64不推荐使用A2W宏 - 替代方案?

时间:2014-01-24 13:36:02

标签: c++ macros 64-bit pvs-studio

我正在使用PVS-studio将程序从x86转换为x64。在PVS-Studio中执行分析运行后,每次使用atlconv.h中定义的A2W宏时,都会收到以下与x64相关的警告:

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是我无法接触的,我应该简单地忽略这些警告,或者在x64上执行A2W宏的首选方式是什么?

2 个答案:

答案 0 :(得分:1)

我相信这些ATL 3.0宏已被弃用。 由于ATL 7.0提供了新的转换类。 http://msdn.microsoft.com/EN-US/library/87zae4a3(v=VS.120,d=hv.2).aspx

在大多数情况下,使用CA2W类替换A2W宏就足够了。

答案 1 :(得分:0)

如果这对其他人有帮助,我确实使用CStringW构造函数来解决它。