我继承了一些代码,有问题的代码得以构建(对于我无权访问的人,使用VS的较早版本。)我试图将其迁移到VS2019。
我不断收到的一个错误是: 错误C2059语法错误:'[' 网址:\ CodeAnalysis \ SourceAnnotations.h 290
有问题的用途是这样的:
#include <CodeAnalysis/SourceAnnotations.h>
#define F_PRINT [SA_FormatString(Style="printf")] const char *
int x_sprintf(char *buffer, size_t buf_size, F_PRINT format, ...);
如果我按如下所示修改x_sprintf,则它可以正常工作(并且通过工作,我的意思是说一行的错误消失了。)
int x_sprintf(char *buffer, size_t buf_size, [SA_FormatString(Style="printf")] const char * format, ...);
一个问题是,这个F_PRINT被全部使用,所以我宁愿不要在整个地方都进行更改(至少现在还没有。)另外,我知道这是在某个时候构建的(没有做任何更改)意味着错误主要在于我的环境。也许我缺少一些编译器命令标志?
也许至少在宏上使用了某些SAL格式后,它已被贬值了吗?如果是这样,我该如何重新格式化?