C#如何在Windows Mobile下动态加载.Dll第三方(.net)

时间:2014-05-18 22:53:55

标签: c# .net dll windows-mobile compact-framework

我的公司存在商业问题 我们有一个带有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,但没有帮助我

1 个答案:

答案 0 :(得分:1)

我要问的第一个问题是为什么仅仅Add References不够?如果您在设计时拥有该文件,则应该使用该机制。

Mt第二个问题是"它不起作用"意思?你有例外吗?什么类型的例外?用什么消息?

通常情况下,这些都会在"评论"你的问题,但我很确定我知道答案。

如果您使用"添加参考文献"但Studio失败或给出错误消息,可能是因为DLL是本机(即不是.NET程序集)DLL。试图动态加载它也会失败(IIRC带有BadImageFormatException)。

您不能只将.NET引用(通过Studio或代码)添加到本机DLL,这通常是第三方硬件供应商提供的。如果它是本机DLL,您可以使用P / Invoke调用库,只要它具有公共的,非破坏的,C导出的(即不是C ++类)函数。