宏定义 重复问题

ahniyilin 2010-03-09 10:48:34
开发中用到两个厂家提供的SDK接口。。

里面出现了重复定义的宏定义

进行处理这些重复定义的宏定义呢?能消除吗?

重复定义的函数可以使用命名空间。。

1.宏定义如何处理呢?

2.SDK接口自己内部的宏定义只会自己内部的宏定义吧?
...全文
800 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeakeven008 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 magic7004 的回复:]

貌似可以把两个厂家的东西分开做。
也就是一个cpp中不要同时include两个厂家的h文件,

比如a.cpp中只有#include "VendorA.h"
然后a.cpp中如果用到Vendor B的函数,只要声明一下就可以了。

这样就可以避免两个厂家的东西被同时编译了Vendor B的函数,也就不存在宏定义重复的问题了。
[/Quote]
头文件不包含Vendor B的头文件,你申明Vendor B后,在哪找Vendor B这个函数?
比如有#include "VendorA.h"和#include "VendorB.h"两个头文件
你a.cpp文件 #include <iostream>
#include "VendorA.h"
using namespace std;
int mai()
{
void VendorA;
void VendorB;

}
在哪个文件找VendorB,你没包含#include "VendorB.h

nintendo_dskay 2010-03-09
  • 打赏
  • 举报
回复
同意2楼的说法,这样确实是比较有效的办法
magic7004 2010-03-09
  • 打赏
  • 举报
回复
貌似可以把两个厂家的东西分开做。
也就是一个cpp中不要同时include两个厂家的h文件,

比如a.cpp中只有#include "VendorA.h"
然后a.cpp中如果用到Vendor B的函数,只要声明一下就可以了。

这样就可以避免两个厂家的东西被同时编译了,也就不存在宏定义重复的问题了。

WizardK 2010-03-09
  • 打赏
  • 举报
回复
可以考虑再次封装
grf9527 2010-03-09
  • 打赏
  • 举报
回复
他们没有命名空间的话,同意二楼,
或者你在封装下a和b的东西,做成自己的类。嘿嘿
Eleven 2010-03-09
  • 打赏
  • 举报
回复
把两个厂家的都搞成dll的
ahniyilin 2010-03-09
  • 打赏
  • 举报
回复
还有其他什么办法没有啊?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧