需要VC写一个插件形式的DLL,请高人进来指点一下这个办法是否可行

dong163 2008-07-19 07:20:21
我现在需要VC写一个插件形式的DLL,其宿主程序是用Delphi写的后台服务程序(ProgA),不希望用COM之类,因为需要注册到系统,而且Delphi不可以运
行期绑定.VC-DLL实现后台服务运行期数据的实时对过TCP上传到远程的功能现在主要面临DLL和宿主之间的对象传递问题, 现在对VC一点都不了解,
我是这样考虑的, 请大家帮忙指点下是否可行:

Delphi-ProgA中声明接口 IProgAInterface ,其中包含一个方法 GetData() 其实现在ProgA中提供
VC-DLL在加载后,ProgA通过给DLL中导出的函数传入IProgAInterface的实现类的实例 as IProgAInterface 做为参数送给VC-DLL
VC-DLL在监听到上传请求后, 调用 IProgAInterface的GetData方法获取实时数据并上传
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong163 2008-07-19
  • 打赏
  • 举报
回复
谢谢,第一种应该是最理想的,我先试试第一种方法

接受你的答案了,十分感激
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dong163 的回复:]
akirya:感谢回复
你说的按照COM的规则去声明对象就可以 是指所传递的对象不必封装成Com注册到系统中, 只是按照COM规则声明就可以是吗?
[/Quote]
是的,然后你调用一个方法得到接口就可以了,也不需要从IUnknown派生,从自己定义的虚类派生出来即可.


其实你也可以写一个标准的COM,然后自己调用DllGetClassObject再查询什么的.不过比较麻烦
dong163 2008-07-19
  • 打赏
  • 举报
回复
akirya:感谢回复
你说的按照COM的规则去声明对象就可以 是指所传递的对象不必封装成Com注册到系统中, 只是按照COM规则声明就可以是吗?
  • 打赏
  • 举报
回复
如果你不解COM,那么就好办了.传递对象的要求有很多,按照COM的规则去声明对象就可以

如果不了解的话,还是使用标准DLL的做法,导出函数来完成.
dong163 2008-07-19
  • 打赏
  • 举报
回复
还请大家指点一下,在上述情况中,VC如何在头文件中声明IProgAInterface

15,471

社区成员

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

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