首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与DrawText函数冲突

与DrawText函数冲突
EN

Stack Overflow用户
提问于 2009-04-22 20:52:11
回答 2查看 775关注 0票数 3

我正在开发一个多平台应用程序,在一个组件中,我有一个名为DrawText的类方法。不幸的是,我得到了一个链接器错误(仅在windows上),告诉我这个类的DrawTextW方法有一个无法解析的外部符号。

我以前在以"Text“结尾的其他方法中见过这种情况,它寻找FooTextW或FooTextA方法,而不是我定义的FooText方法。我的假设是,在Windows头文件中的某个地方有一个宏定义,根据其他定义将FooText赋值给FooTextW或FooTextA。

除了重命名我的函数(我以前就是这么做的)之外,有没有人有什么好主意来解决这个问题?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-22 21:23:56

是的,这是使用Windows的一个真正的问题,没有办法关闭它,因为所有的标题看起来都是这样的:

代码语言:javascript
复制
#ifdef UNICODE
#define GetDlgItemText GetDlgItemTextW
#else
#define GetDlgItemText GetDlgItemTextA
#endif

所以不管用哪种方法,你都会得到符号的定义。如果你能在#include‘’ing windows.h之前定义一些东西来关闭这个行为,那就太好了,但是遗憾的是,现在还没有。

票数 0
EN

Stack Overflow用户

发布于 2009-04-22 20:53:47

你真的只有两个选择:

代码语言:javascript
复制
#ifdef DrawText
#undef DrawText
#endif

或者重命名您的函数。Win32使用的宏没有命名空间或作用域,所以你有点卡住了。

我们只是重新命名我们的函数。

顺便说一句,它通常基于#ifdef UNICODE (或者_UNICODE或其他一些变体)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/779185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档