主程序已实现如下接口,
interface Inf
{
virtual HWND geth() PURE;
virtual RECT getRect() PURE;
};DLL中定义并实现如下接口
interface ICon
{
virtual void draw(HWND wnd, RECT & rc) PURE;
virtual void on_view() PURE;
};主程序和DLL间通过如下函数实现通信
extern "C" __declspec(dllexport) bool dll_init(Inf * p_in/*IN*/, ICon ** p_out/*OUT*/)
{
//实现
}现在的问题是,Inf接口比较好调用,而ICon应如何实现?即draw和on_view如何和ICon关联起来?
涉及双指针,不太会,请各位指点
interface Inf
{
virtual HWND geth() PURE;
virtual RECT getRect() PURE;
};DLL中定义并实现如下接口
interface ICon
{
virtual void draw(HWND wnd, RECT & rc) PURE;
virtual void on_view() PURE;
};主程序和DLL间通过如下函数实现通信
extern "C" __declspec(dllexport) bool dll_init(Inf * p_in/*IN*/, ICon ** p_out/*OUT*/)
{
//实现
}现在的问题是,Inf接口比较好调用,而ICon应如何实现?即draw和on_view如何和ICon关联起来?
涉及双指针,不太会,请各位指点
解决方案 »
- 怎么改变菜单栏背景色?
- Xtreme Toolkit Pro问题
- 100分!请问system32\config\下的software.log和SECURITY.LOG都是什么进程占用着?我用NtQuerySystemInformation无法获得其信息
- 请教入门问题
- 为什么在本地机注册成功的OCX控件,在其他机器上却注册不成功?
- 使用了videosoft flexgrid控件,在其他机器上无法显示,如何解决?
- 如果我在程序里即采用SDK,又使用MFC,对程序有没有什么不利的影响?
- 请问:我用MFC DLL WITH AUTOMATION实现一个COM component,要如何运行component来修改注册表呢?
- 求助
- 高分求救!!!!关于installshield 的问题!!!!
- 软件开发好无味,如何调节息我
- 屏幕录像,屏幕截图...求帮助
interface Inf
{
virtual HWND geth() PURE;
virtual RECT getRect() PURE;
};
这个接口来调用的,而且确实可以用,剩下的就是DLL中ICon这个接口的实现,要在DLL中实现,并且供EXE调用。
-------------
看这个意思,MS ICon是一个传出参数。我猜想是否需要在Dll中new 一个Icon的对象,把地址传出。关于,你这个Dll,你需要增加Inf和ICon的实现类。实现类需要派生自Inf和ICon,并实现他们的纯虚函数。dll_init()估计就是Create你的ICon实现类,将地址由p_out带回。以后Exe就可以透过ICon 接口的指针来调用你Dll提供的功能了。
C++虚函数机制会保证主程序调用ICon的接口方法能进入到你实现类的方法中。