不算是ATL问题 我用ATL做了一个dll,里面有5个类.每个类连接一个硬件设备(各不相同),每个类有10个对外的函数,这个dll对外的接口就是10个函数.我怎样做能够通过一个属性来调用不同类中的函数呢?不知道说明白了没有,请大家帮帮忙吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不明白!呵呵ATL的DLL也是DLL,你同样可以导出其他的全局的接口函数,让调用者调用这些全局的导出函数操作你每个类的内容或者是实例! “据属性来指定对应的类”和“据属性来创建对应的类对象”有什么区别???你都知道你要建哪个类的对象了,而这些类都有不同的CLSID来标识。那么你找到一个“属性”<--->CLSID对应的关系不就完事了嘛。我这有个例子,和你的要求有些类似,短信给我E-Mail,我给你发过去看看,或许对你有帮助。 我的邮件你收到没有?问题还没有解决吗?实际上,flyelf(空谷清音) 所说“虚函数+继承”的方法,就是“多个类实现同一接口”的方法。 你的邮件我收到了,最近比较忙所以没有来.你的例子我看了,和我想要的不太一样,我想要只Export一个类,而不是你例子中的多个.“多个类实现同一接口”是可以解决,而这多个类只在内部区分,对外只是一个类,可以吗? 你说的也可以,你完全可以在建一个类Out,然后把那“5个类”的实例通过Out来暴露啊!!!你的Out实例去获取“一个属性”,然后根据属性值,分别创建那“5个类”的实例不就OK了嘛。 你说的a就是“多个类实现同一接口”中的“同一接口”!!!你所说的“根据属性”的属性就是Out类的属性。当然Out类也可以实现“同一接口”,然后它的10个函数映射为它内部的a的10个函数,^_^ sinall(走或留,这是个问题)在吗?帮帮忙呀 菜鸟更需要看伪代码而不是看源代码。你在外部可以只传递一个名字来指明类型,在内部可以把字符串转化为比较容易维护的类型,然后操作时根据类型进行不同的操作。一个典型的实现是XML的各种element。 void __stdcall ExportFun(int a){switch (a) {case 1: fun1();case 2: fun2();case 4: fun3();case 8: fun4();case 0xF: fun5();}} 离散点积分与微分 请教如何从CString当中获取到一个char字符串? 想在一个CStatic控件区域中画图 不知道怎么画才好 自定义消息WM_USER的使用 急急急! 单文档怎样实现类似浏览器的功能? 在msflexgrid中动态添加了combobox后,单击不能下拉,只能用键盘滚动。以及怎么使msflexgrid滚动到选中的行??急 如何截取IP变化 [alanwang_]兄进来看看。 初学求助 卖车票的线程同步问题 如何将自定义组建及帮助添加到Visual Studio .net 中 IDispatch::Invoke如何通过dispid调用方法?
ATL的DLL也是DLL,你同样可以导出其他的全局的接口函数,让调用者调用这些全局的导出函数操作你每个类的内容或者是实例!
你都知道你要建哪个类的对象了,而这些类都有不同的CLSID来标识。
那么你找到一个“属性”<--->CLSID对应的关系不就完事了嘛。我这有个例子,和你的要求有些类似,短信给我E-Mail,我给你发过去看看,或许对你有帮助。
你所说的“根据属性”的属性就是Out类的属性。当然Out类也可以实现“同一接口”,然后它的10个函数映射为它内部的a的10个函数,^_^
你在外部可以只传递一个名字来指明类型,在内部可以把字符串转化为比较容易维护的类型,然后操作时根据类型进行不同的操作。一个典型的实现是XML的各种element。
switch (a) {
case 1: fun1();
case 2: fun2();
case 4: fun3();
case 8: fun4();
case 0xF: fun5();
}
}