http://community.csdn.net/Expert/topic/3750/3750462.xml?temp=.5289118
http://community.csdn.net/Expert/topic/3713/3713232.xml?temp=.603985
我已经实现了把一个FormView封装到DLL中,并能够在MDI中加载它,可是这离标准的COM还是差很远。
我在加载DLL中的FormView的时候,要LoadLiebry(),还要函数指针,真的很麻烦,所以想把FormView封装到一个COM中,这样在创建的时候就简单多了,用CoCreateInstance或者DllGetClassObject创建起来都简单。问题是: 我不知道怎么封装!
1、 我的FormView要从 CFormView和IUnknow 多重继承出来, 我想我做不到 MFC不支持吧~
2、在创建的时候我要用Create或者LoadFrame来加载它,这个时候需要数个外部的变量,我也不知道用CoCreateInstance或者DllGetClassObject的时候怎么把外部的变量传递进去
3、 我还需要EXE中的几个.h 这让我不能开发出独立的插件了 请问如何解决这个问题
http://community.csdn.net/Expert/topic/3713/3713232.xml?temp=.603985
我已经实现了把一个FormView封装到DLL中,并能够在MDI中加载它,可是这离标准的COM还是差很远。
我在加载DLL中的FormView的时候,要LoadLiebry(),还要函数指针,真的很麻烦,所以想把FormView封装到一个COM中,这样在创建的时候就简单多了,用CoCreateInstance或者DllGetClassObject创建起来都简单。问题是: 我不知道怎么封装!
1、 我的FormView要从 CFormView和IUnknow 多重继承出来, 我想我做不到 MFC不支持吧~
2、在创建的时候我要用Create或者LoadFrame来加载它,这个时候需要数个外部的变量,我也不知道用CoCreateInstance或者DllGetClassObject的时候怎么把外部的变量传递进去
3、 我还需要EXE中的几个.h 这让我不能开发出独立的插件了 请问如何解决这个问题
1、希望楼主能把dll的实现简单贴一下。
2、“CoCreateInstance或者DllGetClassObject”似乎无法把外部变量传进去吧。这个你可以在创建了对象后在进行赋值。
3、COM也不是必须要.h文件啊,你可以看看调用COM的N中方法;另外,可以做成ActiveX。
就是把主框架指针 MainFrm传进去 然后在dll里面调用LoadFrame 代码不在这太机器上2、“CoCreateInstance或者DllGetClassObject”似乎无法把外部变量传进去吧。这个你可以在创建了对象后在进行赋值。
你说的是创建那个对象? 如果是创建FormView的话 这些变量都是创建的时候用的
CoCreateInstance里面是不是不能直接创建FormView啊? 3、COM也不是必须要.h文件啊,你可以看看调用COM的N中方法;另外,可以做成ActiveX。
我COM很烂的 回去慢慢看书 谢谢你 顶
-------------------不是简单不简单的问题 是我不知道在那个地方创建FormView 我总不可以new一个FormView出来吧
就是把主框架指针 MainFrm传进去 然后在dll里面调用LoadFrame 代码不在这太机器上
--这样的话,我觉得这个问题你可以不必太关心了,大不了调用COM接口对属性进行赋值嘛。2、“CoCreateInstance或者DllGetClassObject”似乎无法把外部变量传进去吧。这个你可以在创建了对象后在进行赋值。
你说的是创建那个对象? 如果是创建FormView的话 这些变量都是创建的时候用的
CoCreateInstance里面是不是不能直接创建FormView啊?
--是的,是不能创建,因为FormView的基类不是IUnknow!!!3、COM也不是必须要.h文件啊,你可以看看调用COM的N中方法;另外,可以做成ActiveX。
我COM很烂的 回去慢慢看书 谢谢你 顶
不懂 蒋晟的話?
所有MFC视图都假定父窗口为框架类对象。