社区
C++ 语言
帖子详情
dll和头文件问题
ncljh
2008-01-09 02:43:26
工程a 为一个dll
然后工程b为一个exe
现在在b中加载a这个dll,所以要用到lib和a的头文件,
现在的问题是,我加在b中的头文件是不是一定得和a一模一样?
可以有一些不一样吗?
...全文
184
8
打赏
收藏
dll和头文件问题
工程a 为一个dll 然后工程b为一个exe 现在在b中加载a这个dll,所以要用到lib和a的头文件, 现在的问题是,我加在b中的头文件是不是一定得和a一模一样? 可以有一些不一样吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jjfwenwenti
2008-01-09
打赏
举报
回复
当然可以,用到什么就申明什么.
珍惜生命远离CPP
2008-01-09
打赏
举报
回复
尽量使用前置声明,将其他都文件在cpp文件中包含.
ncljh
2008-01-09
打赏
举报
回复
b不依赖111,222,333
并且b中也不用那些变量
ouyh12345
2008-01-09
打赏
举报
回复
变量不能去掉。
楼主的程序是隐式连接的,类的变量放在调用程序的空间里,如果位置不对(即增加或减少了变量),则会引起dll hell问题
象这样:
//dll export head file b.h
......
dll内部,
//a.h
#include "111.h"
#include "222.h"
#include "333.h"
#include "b.h"
要保证b不依赖于111、222、333
yutaooo
2008-01-09
打赏
举报
回复
这要看你在b中是如何使用class a的。描述的再具体点。
ncljh
2008-01-09
打赏
举报
回复
是这样的,我在a的里面定义了很多其他东西,并且a的头文件还包括其他头文件.
比如:
a中的头文件格式为:
#include "111.h"
#include "222.h"
#include "333.h"
class a
{
public:
int aa;
int bb;
}
而我在b中的头文件里面:
//#include "111.h"
//#include "222.h"
//#include "333.h"
class a
{
public:
// int aa;
// int bb;
}
但我在b里面用的时候,我用不到111.h,222.h,333.h
因为如果我把他包进来,就必须也把111.h,222.h,333.h也拷贝进来,而我是用不到他们的,所以不想也拷贝过来
还有定义aa,bb我在b中也没有用,所以,我想
b中的头文件相对a中的更改如上,即去除那么几行,可以吗?
珍惜生命远离CPP
2008-01-09
打赏
举报
回复
可以不一样,可以只包含你用到的地方.就可以了
yutaooo
2008-01-09
打赏
举报
回复
可以不一样。只要你能保证,使用到的对象(exe要使用到dll中的函数,变量)的符号能够正确匹配。对于没有使用到的,不出现也没啥关系。那么,你又多进行了一些b特有的声明,也是可以的。
但是,这样的方式并不是好的方法。从长久的维护来看,要同时维护两份.h文件,需要精心的保证“那部分”的一致性,会比较累。何必如此,还是再考虑下吧。
ffmpeg在windows下 已编译好的
dll
和
头文件
ffmpeg编译好的
dll
和
头文件
支持vc++和c++ builder
C
DLL
头文件
转换Delphi
头文件
4.20版本
C
DLL
报头转换器。 有关移植C API和C
DLL
头文件
的更多信息,请参阅使用Delphi使用C
DLL
的详细文章。
DLL
头文件
的格式和应用.mht
适用于
DLL
初学者
DLL
头文件
的格式和应用
vlc的lib、
dll
库和
头文件
vlc的
头文件
和lib库和
dll
库文件,可直接使用,配置过程可以参考我的博客文章 https://blog.csdn.net/Jonh_/article/details/85109925
OpenSSL在64位系统下生成的lib/
dll
与
头文件
OpenSSL在64位系统下生成的lib静态库文件/
dll
动态库文件与
头文件
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章