1

我继承了一些代码,有问题的代码构建(对于我无法访问的人,在某种程度上是旧版本的 VS。)我正在尝试将它迁移到 VS2019。

我不断收到的一个错误是:错误 C2059 语法错误:'[' At: \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 格式被贬低了,至少如果在宏上使用?如果是这样,我应该如何重新格式化?

4

0 回答 0