c++ - 与 DrawText 函数冲突

标签 c++ winapi

我正在开发一个多平台应用程序,在一个组件中我有一个名为 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/

相关文章:

c++ - STL语法,引用指针的容器

c++ - 如果将某个符号的名称用作 STL 容器的元素,为什么我不能隐藏它?

c++ - 当我抛出异常时会发生什么?

delphi - 使用普通 Canvas /文本输出更新LayeredWindow

c++ - 错误 : no matching function for call to 'sort(..., ..., <unresolved overloaded function type>)'

c++ - 什么是动态类型的对象

winapi - 如何在子控件上使用 WS_EX_LAYERED

c++ - 将生成的进程标准输出捕获为 unicode

winapi - Windows下以无竞争的方式删除目录?

c# - C++/.net (Framework 2.0) 使用用户名和密码的 MS SQL 数据库 Windows 身份验证