我的公司存在商业问题 我们有一个带有Wavenis产品的项目他们给我们SDK(DLL文件)这个应用程序在紧凑的框架3.5 Windows mobile 6.1下运行 我正常使用dll文件 1-右键单击引用 2-添加参考 3-浏览并选择所需的dll 4-将dll复制到输出
现在该公司不需要使用SDK可供使用 我谷歌它,我刚刚使用 使用System.Reflection; 程序集classLibrary1 = null; classLibrary1 = Assembly.LoadFrom(filename); foreach(classLibrary1.GetTypes()中的类型类型) if(type.GetInterfaces()!= null) 将Activator.CreateInstance(type)作为IClass1返回; 但如果有人有任何想法请帮助我,这对我不起作用
我已经读过这个帖子Compact Framework C# loading DLL dynamically,但没有帮助我
答案 0 :(得分:1)
我要问的第一个问题是为什么仅仅Add References
不够?如果您在设计时拥有该文件,则应该使用该机制。
Mt第二个问题是"它不起作用"意思?你有例外吗?什么类型的例外?用什么消息?
通常情况下,这些都会在"评论"你的问题,但我很确定我知道答案。
如果您使用"添加参考文献"但Studio失败或给出错误消息,可能是因为DLL是本机(即不是.NET程序集)DLL。试图动态加载它也会失败(IIRC带有BadImageFormatException
)。
您不能只将.NET引用(通过Studio或代码)添加到本机DLL,这通常是第三方硬件供应商提供的。如果它是本机DLL,您可以使用P / Invoke调用库,只要它具有公共的,非破坏的,C导出的(即不是C ++类)函数。