社区
C++ 语言
帖子详情
我想将类的一些成员函数导出DLL,可以直接导出成员函数吗,还是一定要导出类?
Charlie_Shu
2010-05-14 09:22:05
我想将类的一些成员函数导出DLL,可以直接导出成员函数吗,还是一定要导出类?
类中的对外接口不多,也就一两个。
...全文
402
13
打赏
收藏
我想将类的一些成员函数导出DLL,可以直接导出成员函数吗,还是一定要导出类?
我想将类的一些成员函数导出DLL,可以直接导出成员函数吗,还是一定要导出类? 类中的对外接口不多,也就一两个。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Charlie_Shu
2010-05-14
打赏
举报
回复
我导出接口函数的话,需要在导出的函数中声明类的对象调用需要使用的类函数吗?还是有其他的导出方法
如果一定要用对象调用的话怎么避免内存泄漏呢
ztenv
版主
2010-05-14
打赏
举报
回复
如果是项目需要,那就声明一个接口,然后导出接口就行了;如果成员函数不是很多,还是导出函数比较好;
CSDMAdmimistrator
2010-05-14
打赏
举报
回复
[Quote=引用楼主 chouchou2007 的回复:]
我想将类的一些成员函数导出DLL,可以直接导出成员函数吗,还是一定要导出类?
类中的对外接口不多,也就一两个。
[/Quote]
你可以导出整个类,也可以单独导出某个成员函数
语法是一样的
CSDMAdmimistrator
2010-05-14
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
珍惜生命,远离扩展dll,只使用纯C接口的标准dll
[/Quote]
你到底有没有用C++开发过真正的项目?
先回去搞清楚啥事扩展DLL再来回帖
导出类的DLL不一定是扩展dll,别连啥是扩展DLL都不清楚就在回帖
大型C++项目里面导出类比比皆是
用到混合语言编程的大型项目不多
如果真的要提供二次开发接口,大部分采用的是COM或者Corba,而不是C API.
别将导出类说成洪水猛兽一样的,整天在这里诲人不倦了
珍惜你的四星荣誉,你的每一个回帖都有可能会影响别人的学习
findcsdn
2010-05-14
打赏
举报
回复
不知道啥是导出类,太菜了。
Charlie_Shu
2010-05-14
打赏
举报
回复
原来扩展DLL这么可怕,我重新考虑下~~吸取大家教训
lqbk2
2010-05-14
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
珍惜生命,远离扩展dll,只使用纯C接口的标准dll
[/Quote]
如果我四年前看到这句话的话……
唉,悲剧不用再提……
Charlie_Shu
2010-05-14
打赏
举报
回复
我原来是自己又写了一个函数,实例后调用类的成员函数作为导出接口的,但发现无法避免内存泄漏问题。。。但是如果导出类的话一旦需要修改会比较麻烦,怕后期维护会出问题
Charlie_Shu
2010-05-14
打赏
举报
回复
项目需要啊。。。
kim_jinye
2010-05-14
打赏
举报
回复
请问直接导出成员函数后,你怎么调用呢?个人认为当然是导出类了,导出类后实例对象调用,仅供参考。
taodm
2010-05-14
打赏
举报
回复
珍惜生命,远离扩展dll,只使用纯C接口的标准dll
CSDMAdmimistrator
2010-05-14
打赏
举报
回复
我有说C API不好么?
具体情况具体分析,而不是一味地拒绝导出C++类,如果所有模块用相同的编译器开发,导出C++类给其它模块重用是最正常不过的事情
如果产品是基于C++开发的,现在想提供API给别人做二次开发,并且希望支持大部分的语言和编译器做二次开发那提供COM或者CORBA接口也是最正常不过的.你看看IE和Office的二次开发接口吧.甚至有很多产品是同时提供C++ API和COM API的.而很少会出现C++做的产品,只提供C API的
findcsdn
2010-05-14
打赏
举报
回复
[Quote=引用 8 楼 csdmadmimistrator 的回复:]
引用 1 楼 taodm 的回复:
珍惜生命,远离扩展dll,只使用纯C接口的标准dll
你到底有没有用C++开发过真正的项目?
先回去搞清楚啥事扩展DLL再来回帖
导出类的DLL不一定是扩展dll,别连啥是扩展DLL都不清楚就在回帖
大型C++项目里面导出类比比皆是
用到混合语言编程的大型项目不多
如果真的要提供二次开发接口,大部分采用的是COM或者Corba,而不是C AP……
[/Quote]
个人感觉COM还是少用,费劲。 Corba有啥好的???? C的导出函数为啥不能用???
动态链接库_
导出
类
本人经过两天的研究,终于掌握了动态链接库的使用方法,动态链接库的使用上并不难,难在动态链接库中的
导出
类
, 把
dll
中
类
的
成员函数
导出
来才是最重要的,我就用几个例子介绍一下几种
导出
的方法: 第一种: 这种方法不是很好,实现的也比较麻烦,可以参考 例子中的1_
DLL
DemoCll工程 原理:利用虚函数
导出
,
导出
的
dll
中申请的对象指针,再利用虚函数的特性,利用虚函数表实现了
类
函数的
导出
,比较麻烦 建议了解一下。 第二种: 这种方法实现起来比较简单,采用的是静态加载的方式,但是有很多的局限性,因为当
dll
有错是整个应用都会出问题,不建 议在打的工程中使用。 具体代码实现见static_link_
DLL
工程,其中
dll
文件由Abstrct文件编译。 第三种: 这种方法是我推荐的,它是由动态加载进来的,其中实现原理是:运用抽象
类
,为工程创建接口,通过接口来
导出
类
成员函数
这种方式通用性强,而且代码比较的健壮,节省内存。见工程use
DLL
。
模板
类
模板函数
导出
DLL
模板
类
模板函数
导出
DLL
Windows进程常用
DLL
模块注入技术
进程调试级注入,涉及调试器相关功能调用知识点
dll
模块重定位内存注入,模拟操作系统加载PE文件方式,
直接
将
dll
文件内存数据写入目标进程并执行。 导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入...
c++
DLL
导出
类
和
导出
函数
一、
导出
函数 背景:
导出
函数: 在
DLL
中有一张
导出
表,其中有一系列函数,这些函数叫做
导出
函数。这些函数可供外部程序调用,即这些函数都是该
DLL
的入口点(
类
似main函数)。不在
导出
表中的函数,为该
DLL
私有的函数,外部程序不能调用它们。 1、没有__declspec(
dll
export),将生成的测试lib库添加到项目中,
直接
调用,会报错: LNK2019 无法解析的外部符号 "vo...
c++ 调用
dll
函数,
导出
类
中的
成员函数
********注意写好
dll
后 用depends查看
导出
函数时会发现
导出
的函数名不是你写的那样出现所谓的乱码入?等*************这就注定
dll
不能通过显示连接的方式导入。 如果
想
通过显示连接的方式导入可以为
类
添加一个友元函数去实现显示连接创建
类
得对象************************************** 这里对于
导出
类
,我们使用隐式链接;
直接
看代码;
C++ 语言
64,648
社区成员
250,504
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章