社区
进程/线程/DLL
帖子详情
使用.def模块定义文件如何导出类?
cdeee
2005-05-29 03:01:33
不想使用__declspec(dllexport)而单独使用.def文件导出类,不知道如何实现?
...全文
1295
7
打赏
收藏
使用.def模块定义文件如何导出类?
不想使用__declspec(dllexport)而单独使用.def文件导出类,不知道如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
没人知道啊?:(
笔记式Python从零开始全面讲解
【课程目标】 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
如何通过.
def
文件
的方式
导出
类
参考文献: http://forums.codeguru.com/showthread.php?364061-How-to-export-c-class-in-DLL-using-
DEF
-file https://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL [HowTo: Export C++ class
使用
模块
定义
文件
(.
def
)
文件
生成dll
一、什么是.
def
文件
模块
定义
(.
def
)
文件
为链接器提供有关被链接程序的
导出
、属性及其他方面的信息。生成 DLL 时,.
def
文件
最有用。由于存在可代替
模块
定义
语句
使用
的链接器选项,通常不需要 .
def
文件
。也可以将 __declspec(dllexport) 用作指定
导出
函数的手段。在链接器阶段可以
使用
/
DEF
(指定
模块
定义
文件
)链接器选项调用 .
def
文件
。如果生成的 .ex
C++:
模块
定义
文件
声明(.
def
)的
使用
1. 概念 dll中有两种
导出
函数声明的方式:①__declspec(dllexport);②
模块
定义
文件
(.
def
) 其中,.
def
文件
为链接器提供有关被链接程序的
导出
、属性及其他方面的信息。 2. .
def
的
使用
方式 (1).
def
文件
的规则为:LIBRARY语句...
dll中的
模块
定义
文件
.
def
模块
定义
(.
def
)
文件
为链接器提供有关被链接程序的
导出
、属性及其他方面的信息。生成 DLL 时,.
def
文件
最有用。由于存在可代替
模块
定义
语句
使用
的链接器选项,通常不需要 .
def
文件
。也可以将 __declspec(dllexport) 用作指定
导出
函数的手段。在链接器阶段可以
使用
/
DEF
(指定
模块
定义
文件
)链接器选项调用 .
def
文件
。如果生成的 .exe
文件
没有
导出
,
使用
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章