29功能之VS下测试两个动态库头文件内声明同一宏是否会重定义

29功能之VS下测试两个动态库头文件内声明同一宏是否会重定义

1 在动态库的头文件测试
1)
首先在一个动态库的头文件中添加一个宏定义。然后生成动态库的lib和dll。
在这里插入图片描述

2)
同样在另一个动态库2的头文件添加同一个宏,并生成。
在这里插入图片描述

3)
将两个动态库的头文件和lib,dll按照创建动态库时的做法包含到当前项目中,防止编译出现错误。点击生成如下:
在这里插入图片描述

从结果中可以看到,两个动态库的头文件中定义同一个宏是不会造成宏重定义的。你可以按照命名空间去了解,即它们是两个不同命名空间的变量名一样的东西。

2 在动态库的cpp文件中测试
1)动态库1添加宏。
在这里插入图片描述

2)动态库2添加同一宏。
在这里插入图片描述

3)生成对应动态库文件,然后执行项目。
在这里插入图片描述

结果可以看到,你在cpp文件定义的宏根本就不会被导入到动态库中,所以结果显示SDK_宏未定义。
即可说明:若你想在自己的项目调用别人发布动态库的宏,别人封装时必须写在头文件中,否则你是无法调用的。

猜你喜欢

转载自blog.csdn.net/weixin_44517656/article/details/108179811
今日推荐