使用.def模块定义文件如何导出类?

cdeee 2005-05-29 03:01:33

不想使用__declspec(dllexport)而单独使用.def文件导出类,不知道如何实现?
...全文
1295 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdeee 2005-06-16
  • 打赏
  • 举报
回复

使用虚拟基类太麻烦了,如果这样的话我还不如用两个头文件,一个使用__declspec(dllexport)导出,另一个使用__declspec(dllimport)导入。

有没有什么办法直接在 .def 模块中导出类啊?
BigFanOfCpp 2005-06-16
  • 打赏
  • 举报
回复
.DEF文件里只能写导出的函数符号名,我没有写过类名.
所以如果你要导出类的话,就要用__declspec(dllexport),或者用楼上说的"代理类"的方法,如果你想获得更深入的了解,我建议你参考<<COM本质论>>的第一章.
chy317chy 2005-06-15
  • 打赏
  • 举报
回复
1,把你要从dll输出的每个类,都设计一个基类,这是个纯虚,即所有函数都是“virtual...=0;”的。把这些写成一个.h;

2,把dll里的类都从相应的基类派生,并实现每一个纯虚函数。并给dll设计一个可动态导出的函数,这个函数里 return new CxxxInDll;

3,在调用dll的程序里定义纯虚基类的指针,并赋予第二步返回的值。

现在可以动态加载、调用dll里的类了。看看COM原理,你就有启发了。熟练了后会发现这个方法在小型应用里非常有效!(在大型应用里,由于缺乏生存期控制,所以不安全)

需要补充的是:需要为每个类增加定义一个Release函数,函数里delete this,不要在调用dll的程序里直接delete从第二步获得的指针。
idAnts 2005-06-15
  • 打赏
  • 举报
回复
挨个把成员函数成员变量写一遍:
CXXX::Fxx @1
duxianghe 2005-06-15
  • 打赏
  • 举报
回复
类应该是一样的。
duxianghe 2005-06-15
  • 打赏
  • 举报
回复
; MFCDll.def : Declares the module parameters for the DLL.

LIBRARY "MFCDll"
DESCRIPTION 'MFCDll Windows Dynamic Link Library'

EXPORTS
; Explicit exports can go here
Create @1
Destroy @2
StartDisplay @3
StopDisplay @4
CaptureImg @5
GetDeviceParam @6
ReadVideoParam @7
SetVideoParam @8
cdeee 2005-05-30
  • 打赏
  • 举报
回复

没人知道啊?:(
【课程目标】 1.帮助学员快速了解Python自带的八大数据结构:1.数字 2.字符串 3.列表 4.元组 5.字典 6.集合 7.文件 8.其它型(None型、布尔型等) 2.帮助学员快速了解Python语句和函数定义使用:1.赋值语句 2.条件语句 3.循环语句 4.函数定义 5.函数作用域 6.特定函数 【课程亮点】 以笔记为导向作为讲解内容是本人一贯的授课亮点,一条笔记至少包含一个知识点,300多条笔记帮助学员快速掌握Python200多个知识点 【课程内容】 1. Python3语言总体介绍以及环境安装 2. Python数据型(一)-数字 3. Python数据型(二) -字符串 4. Python数据型(三) -列表 5. Python数据型(四) -元组 6. Python数据型(五) -字典 7. Python数据型(六) -集合 8. Python数据型(七) -文件 9. Python其它数据型(八) 10. Python赋值语句 11. Python条件和循环语句 12. def定义函数 13. lambda与yield 14. 作用域 15. 特定函数:print函数以及递归函数 【课程收获】 1. 笔记式讲解,每条笔记细分为一个知识点,让学员从一点一滴积累,学习过程无压力 2. 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 3. 笔记以超链接形式让知识点关联起来,形式知识体系 4. 以通俗语言讲解,让学员更快掌握技术点 5. 采用先概念后实例再应用方式,知识点深入浅出 6. 提供授课内容笔记作为课后复习以及工作备查工具 7.笔记截图示范例子参照博客:https://blog.csdn.net/u011830122/article/details/84971309

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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