首页
社区
课程
招聘
[求助]DLL动态导出C++类
发表于: 2007-12-27 09:26 5468

[求助]DLL动态导出C++类

2007-12-27 09:26
5468
在DLL中如何动态导出C++类
现在DLL中已经定义一个API 例如:
A* CreateClassA();
{
   return new A;
}
但现在的问题是由于不想让客户端看到cpp文件所以只能给他这个DLL但是客户端如何知道A类呢?
我将A.h文件提供给客户端但是发现link错误报告说为定义的foo过程(因为编译器没有找到A.cpp的foo过程)请问大家有什么方案。
能解决动态导出C++类

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好像有种仿COM的做法,最后只要交付H文件和DLL即可。
2007-12-27 14:05
0
雪    币: 20
活跃值: (47)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
恩!我现在也是用这种方法做的,就是建立一个纯虚类作为导出类,客户端可以按照该类进行类型转换调用方法,服务端的导出类作为纯虚类的子类进行导出方法实现但这么做是否会影响效率因为虚类会建立一个内存函数地址表。

所以我想知道有没有不用地址表的方法实现相同的功能
2007-12-27 14:12
0
雪    币: 222
活跃值: (69)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
写一个静态API引用类中的函数,之后导出
2007-12-27 14:47
0
雪    币: 20
活跃值: (47)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
你这是导出该类的一个成员地址而不是导出该类
2007-12-27 16:24
0
雪    币: 222
活跃值: (69)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
那就只能在链接DLL是把整个类都导出了,之后把该类的那些必要给客户看到的定义再另外写一个.h文件.把.h文件和DLL交给客户使用就可以了,这样就不存在虚类了
2007-12-27 18:38
0
雪    币: 20
活跃值: (47)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
试验过了不行!
运行时候访问导出函数的时候会发生访问违规
2007-12-28 09:17
0
游客
登录 | 注册 方可回帖
返回