最近有个想法,如何根据需要自动调用不同的dll?

rr 2004-05-08 03:22:27
小弟今日分别为两类型的手机写了两个不同的dll。(其实一个是别人写的)因为支持不同的手机,所以小弟想把这几个都整合在一起。
现在小弟程序一启动就开始检测不同的手机,如果是A1,就用A1.DLL中的方法sent()
如果是B1,就用B1.dll中的方法sent()(方法名是一样的,但是这dll可能是别的语言写的,比如vc,或者vb,反正就不是.net中的其他语言)。
请问如何让它自动调?
如果这两dll属于托管的dll的话,我也不想用case方式,因为我想将来拓展方便,能不能使用反射机制来实现??另还有其他更好的方式吗?请大家出个方案哦!重谢!!!
请各位大哥指点哦。
...全文
85 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Brunhild 2004-05-09
  • 打赏
  • 举报
回复
建议你这样做:
1. 定义一个接口:
public interface ISend
sub Send()
end interface

2. 定义2个类实现上面的接口,并相应调用指定的DLL中的方法:
public class CA1
implements ISend

public sub Send() Implement ISend.Send
A1.Send()
end sub
end class

public class CB1
implements ISend

public sub Send() Implement ISend.Send
B1.Send()
end sub
end class

3. 调用:
dim oSend as ISend
if (需要调用A1.dll) then
oSend=new CA1()
else
oSend=new CA2()
endif
oSend.Send()

Brunhild 2004-05-09
  • 打赏
  • 举报
回复
对于非托管的DLL就只能有接口了。
yuwen16 2004-05-09
  • 打赏
  • 举报
回复
Sunmast(速马,进军MDA) 你的帖子没用哦。
yuwen16 2004-05-09
  • 打赏
  • 举报
回复
其实,小弟认为用接口好。。。。。
请 Brunhild() 分析和指点。。
yuwen16 2004-05-09
  • 打赏
  • 举报
回复
谢谢!!
请 Brunhild() 再讲讲,非托管的dll也是一样的调用吗?这里面需要注意什么??
后天小弟将结帖,万分感谢!!
changwang23 2004-05-09
  • 打赏
  • 举报
回复
用反射最好
xDotNet 2004-05-09
  • 打赏
  • 举报
回复
mark~................帮你up
速马 2004-05-09
  • 打赏
  • 举报
回复
http://blog.sunmast.com/sunmast/articles/148.aspx
Brunhild 2004-05-09
  • 打赏
  • 举报
回复
另一个方法是用反射:
Dim a As System.Reflection.Assembly = _
System.Reflection.Assembly.LoadFrom("C:\....\ClassLibrary1.dll")
Dim t As Type = a.GetType("ClassLibrary1.Class1", True, True)
Dim o As Object
o = t.InvokeMember("New", _
BindingFlags.DeclaredOnly Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.CreateInstance, _
Nothing, Nothing, New Object() {})

t.InvokeMember("Send", _
BindingFlags.DeclaredOnly Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.InvokeMethod, _
Nothing, o, New Object() {})
yuwen16 2004-05-08
  • 打赏
  • 举报
回复
人呢?

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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