我有一个__FUNCTION__
通过 crtdefs.h 使用预定义宏的 C++ 库。该宏在此处记录。这是我的用法:
我的.cpp
#include <crtdefs.h>
...
void f()
{
L(__FUNCTIONW__ L" : A diagnostic message");
}
static void L(const wchar_t* format, ...)
{
const size_t BUFFERLENGTH = 1024;
wchar_t buf[BUFFERLENGTH] = { 0 };
va_list args;
va_start(args, format);
int count = _vsnwprintf_s(buf, BUFFERLENGTH, _TRUNCATE, format, args);
va_end(args);
if (count != 0)
{
OutputDebugString(buf);
}
}
crtdefs.h
#define __FUNCTIONW__ _STR2WSTR(__FUNCTION__)
该库(如果重要,则编译为静态库)由同一解决方案中的另一个项目使用,这是一个用 C# 编写的 WPF 应用程序。
当我编译 lib 时,出现此错误:
标识符“L__FUNCTION__”未定义。
根据文档,如果将 /P 或 /EP 传递给编译器,则不会扩展宏。我已经证实他们不是。是否存在此宏不可用的其他情况?