我正在开发一个多平台应用程序,在一个组件中我有一个名为 DrawText 的类方法。不幸的是,我收到一个链接器错误(仅在 Windows 上),指出此类的 DrawTextW 方法有一个未解析的外部符号。
我之前在其他以“文本”结尾的方法中看到过这种情况,它正在寻找 FooTextW 或 FooTextA 方法,而不是我定义的 FooText 方法。我的假设是 Windows header 中的某处有一个宏定义,根据其他定义将 FooText 分配给 FooTextW 或 FooTextA。
除了重命名我的函数(这是我过去所做的)之外,有没有人有解决这个问题的好主意?
谢谢。
乔
最佳答案
你真的只有两个选择:
#ifdef DrawText
#undef DrawText
#endif
或重命名您的函数。 Win32 使用没有命名空间或作用域的宏,所以你有点卡住了。
我们只是重新命名我们的函数。
顺便说一句:它通常基于 #ifdef UNICODE(或 _UNICODE 或其他一些变体)。
关于c++ - 与 DrawText 函数冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779185/