将C++日志源代码段转换为Windows Phone C++/CX



我刚开始为Windows Phone进行开发,但有一段现有代码需要维护。它是一个来自日志库的宏,用于现有代码的许多地方。

这是宏:

#define LOG_FORMAT_FUNCTION(fmtarg, firstvararg) __attribute__((__format__ (__printf__, fmtarg, firstvararg)))

这是一个方法定义,它未能使用上面的宏,错误为"{expected"(在德语中为"error:Es wurde-ein'{erwarte."):

void LogTrace_s(const char* category, const char* format, ...) LOG_FORMAT_FUNCTION(2, 3);

你能帮我消除这个错误吗?我也想知道宏到底做了什么。

编辑:在这里讨论了这个之后,我现在明白了这个宏非常适合检查格式化字符串的错误。现在我知道了,我更需要它。但我仍然不知道如何将其翻译成MSC++。

是的,您可以省略它。使用

#if _MSVC_VER
#define LOG_FORMAT_FUNCTION(fmtarg, firstvararg)
#endif

它正在用额外的信息注释函数,以帮助gcc为您提供更好的警告。它不会以任何方式更改代码的行为。

最新更新