- 主题:wingdi.h 头文件有个定义(OPAQUE)和三方库有冲突
再封装一层,把有冲突的头文件隐藏起来。
【 在 smthxes 的大作中提到: 】
: 怎么解决这个问题?
--
FROM 120.244.156.*
这世界上就没有不能隐藏的库。。。
比如你第三方库叫 foolib 。有个头文件叫 foo.h
/// foo.h
#define OPAQUE 100
void draw(int color);
你只需写个自己的库 myfoolib
///myfoo.h
#define MY_OPAQUE 100
void my_draw(int color);
///myfoo.c
#include "foo.h"
void my_draw(int color)
{
draw(color);
}
【 在 smthxes 的大作中提到: 】
: 三方库的不能隐藏,我必须得包含他的头文件,只是我不知道wingdi.h这个头文件是怎么包含进来的,我没有包含他啊?
--
FROM 120.244.156.*
封装一下你就只需要包含 myfoo.h 了。都不需要包含 foo.h 了,自然就不会有头文件里的定义冲突。
【 在 smthxes 的大作中提到: 】
: 是包含的头文件里的定义冲突,不是库冲突
:
--
FROM 120.244.156.*
就是你要用到的第三方库里的函数还有各种定义。给他们改个不会产生冲突的名字。
【 在 smthxes 的大作中提到: 】
: myfoo.h里面是啥?
:
--
FROM 120.244.156.*
看我3楼的例子
【 在 smthxes 的大作中提到: 】
: 第三方库头文件不要了?
--
FROM 120.244.156.*