VC中DLL导出问题

畅想畅享 2011-11-19 07:17:56
DLL能否单独导出类中的某一个函数,同过这个函数访问整个类(需要动态加载DLL)?谢谢!!!
...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Will. Liu 2012-03-04
  • 打赏
  • 举报
回复
感觉你的设计有些不顺,应该想想别的办法!
dance_angle 2012-02-29
  • 打赏
  • 举报
回复
可以单独导出一个函数。例如add。在动态调用该函数时候需要:dll加载——dll函数地址获取——dll释放。可以按照如下试试:
typedf int(*lpAddFun)(int,int);//定义一个与add函数接受参数类型返回值都相同的函数指针类型。然后定义一个lpAddFun的实例。
HINSTANCE hdll;//定义一个HINSTANCE的实例
lpAddFun addFun;
hdll = LoadLibrary("\\add.dll")//动态加载dll模块,并把句柄给hdll。LoadLibrary的参数应为dll的绝对地址
addFun = (lpAddFun)GetProAddress(hdll,"add");
........
FreeLibrary(hdll);
SuperLy 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 z373375579 的回复:]
我也问了类似的问题,一牛人这样回答的。
貌似跟你的问题搭接,你借鉴下吧。
“导出函数,函数里弄一个int型变量,在函数里转化成类的指针 ”
[/Quote]

完全可以这样做,不过注意通过这个指针调用的函数必须是virtual函数。
haidaoyu123 2012-02-28
  • 打赏
  • 举报
回复
心死 2012-02-28
  • 打赏
  • 举报
回复
我也问了类似的问题,一牛人这样回答的。
貌似跟你的问题搭接,你借鉴下吧。
“导出函数,函数里弄一个int型变量,在函数里转化成类的指针 ”
畅想畅享 2011-11-19
  • 打赏
  • 举报
回复
因为,我是想动态导出,不能用导出整个类.
sevancheng 2011-11-19
  • 打赏
  • 举报
回复
导出,打错了,不好意思!
sevancheng 2011-11-19
  • 打赏
  • 举报
回复
到处整个类就可以访问了

15,471

社区成员

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

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