- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 Windows 运行时组件项目的 Windows Phone 8 解决方案。在 WinRT 代码中,我想使用 __FUNCTION__
从 C++ 类进行日志记录。但是,__FUNCTION__
未定义,而 __LINE__
是。
Intellisense 只建议使用 __FUNCTIONW__
。但是当我跳转到 crtdefs.h
中 __FUNCTIONW__
的定义时,我可以看到 __FUNCTION__
也没有在那里定义:
我已阅读 Why would __FUNCTION__ be undefined?但这对我没有帮助(或者我没有正确理解那里描述的问题)
__FUNCTION__
怎么可能没有被定义?我认为它内置于编译器中...
更新:
好的,我了解到 __FUNCTION__
实际上从来没有着色。但是当我输入时出现错误:
TCHAR* f = _T(__FUNCTION__);
它说:
Error: Identifier "L__FUNCTION__" is undefined
也许我的 UNICODE 设置有问题?我需要包含一个特殊的 header 吗?
最佳答案
当我在 C++ Phone 8 应用程序中尝试时,它工作正常。请注意,您可能会对未出现在 IntelliSense 自动完成列表中的 __FUNCTION__
感到困惑。您只能看到 __FUNCTIONW__
。这是一个缺陷,宏是predefined in the compiler但 IS 解析器忽略了这一点。由于宏的定义没有出现在包含的 header 中的任何地方,解析器将永远看不到它的定义(就像它对 __FUNCTIONW__
所做的那样)并且你会看到它从列表。
我无法确认这是否是一个已知错误,connect.microsoft.com 上的搜索功能不够好,无法过滤与“功能”匹配的 6600 个匹配项。如果您愿意,可以提交错误。
编辑后更新:您在代码中使用了古老的 TCHAR 宏。有一个获取正确宏的技巧,但我不打算记录它。 10 多年前,当每个人都停止创建仍可在旧版 Windows 9x 版本之一上运行的程序时,这一切就不再相关了。在手机上当然毫无意义。
您实际上想要使用__FUNCTIONW__
(没有_T
),它会为函数名称生成Unicode 字符串。它是一个 const wchar_t*。
关于c++ - WinRT __FUNCTION__ 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041868/
使用: #define DEBUG_FOO(foo) fprintf(stderr, "foo is %x, currently in %s\n", foo, __FUNCTION__); 将打印:
我正在尝试添加一个编译局部变量的 c 宏它被初始化为函数名.. 例如。 void foo (void) { stubmacro; } void bar (void) { stubmacr
__FUNCTION__ 不是字符串文字吗?我一直认为它是 - 沿着 __FILE__ 的路线,但我刚刚发现我不能将字符串文字相邻地连接到它。如果它不是字符串文字,它被定义为什么?我无法让 cscop
如果我问的是一个明显的问题,请原谅我,但是在经历了一堆线程并尝试了一些东西之后,我无法确定这个简单的事情。 我有这个小程序: #define FUNC_PREFIX __FUNCTION__ "()
是否有像 __FUNCTION__ 或 __func__ 这样的编译时常量,其中还包括类方法的类名? 例如,对于 Bar 类中名为 foo 的方法,它不应扩展为 foo,而应扩展为 Bar::foo.
Simlar question with LINE 但是当我用 __FUNCTION__ 替换 __LINE__ 时。宏连接字符串文字“__FUNCTION__”而不是实际的函数名称。 最佳答案 __
Simlar question with LINE 但是当我用 __FUNCTION__ 替换 __LINE__ 时。宏连接字符串文字“__FUNCTION__”而不是实际的函数名称。 最佳答案 __
示例: @noreturn func setOnlyPropertyGetterError(__function__: String) { fatalError("\(__function__)
我定义了一个宏如下: #define ADD_TIME_ENTRY(_name_) m_pTimeMeasurement->addTimeEntry(_name_); 现在,我想通过 ADD_TI
我有一个带有 Windows 运行时组件项目的 Windows Phone 8 解决方案。在 WinRT 代码中,我想使用 __FUNCTION__ 从 C++ 类进行日志记录。但是,__FUNCTI
我有一个 C++ 库,它通过 crtdefs.h 使用预定义的宏 __FUNCTION__。宏已记录 here .这是我的用法: 我的.cpp #include ... void f() {
我发现以下代码可以将日志添加到系统日志中。但是,如果我还想将 __FUNCTION__ 信息添加到系统日志,该怎么做? openlog(basename(argv[0]), LOG_CONS | LO
使用 avr-gcc 可以将数据存储在程序内存中以节省 RAM。这是使用 PROGMEM attribute 完成的. AVR-libc 还提供了一个宏,PSTR() ,可用于文字字符串。 现在我正在
谁能告诉我什么时候 g++ 将 __FUNCTION__“宏”替换为包含函数名称的字符串?似乎在检查源代码的语法正确性之前它不能替换它,即以下将不起作用 #include #define DBG_W
我知道这两者之间的区别,我已经查看了手册。 我还是有些困惑。我可以在类的方法中使用 __FUNCTION__,这代表这个方法的名称。当我回应它时,它只输出名称。这里很清楚。 但为什么我可以在非 cal
有没有人对 C# 版本的 C++ __FUNCTION__ 宏有好的解决方案?编译器似乎不喜欢它。 最佳答案 尝试改用它。 System.Reflection.MethodBase.GetCurren
这应该是微不足道的,但我似乎无法弄清楚如何将 __FUNCTION__ 与字符串连接起来,尤其是在 GCC 上——尽管它适用于 VC++(我正在将一些代码移植到 Linux) #include #i
对于 gcc 项目,__FUNCTION__、__FILE__ 和 __func__ 返回的指针是否保证指向持久内存? (也就是说,我可以安全地引用另一个函数范围内的指针吗?)我知道 __func__
有什么方法可以打印__FUNCTION__作为 linux 上的宽字符? WIDEN 的技巧对我不起作用,gcc 编译器打印: 错误:?L_FUNCTION_?在这方面没有申明 有什么帮助吗? 谢谢
我尝试编写一个宽版本的__FUNCTION__ 来支持可移植代码(Windows 和Linux) #include #include #include typedef wchar_t WCHAR
我是一名优秀的程序员,十分优秀!