【问题标题】:C# How to Dynamically Load .Dll of 3rd party (.net) under windows mobileC#如何在windows mobile下动态加载第3方(.net)的.dll
【发布时间】:2014-05-18 22:53:54
【问题描述】:

我的公司有商业问题 我们有一个带有 Wavenis 产品的项目,他们为我们提供了 SDK(DLL 文件)这个应用程序在紧凑框架 3.5 Windows 移动 6.1 下运行 我通常使用 dll 文件作为 1-右键单击参考 2-添加参考 3-浏览并选择所需的dll 4-将dll复制到输出

现在公司不需要提供 SDK 即可使用
我谷歌它,我只是使用 使用 System.Reflection; 程序集 classLibrary1 = null; classLibrary1 = Assembly.LoadFrom(文件名); foreach(classLibrary1.GetTypes() 中的类型类型) if (type.GetInterfaces() != null) 返回 Activator.CreateInstance(type) 作为 IClass1; 但这对我不起作用,如果有人有任何想法请帮助我

我已经阅读了这个帖子 Compact Framework C# loading DLL dynamically 但没有帮助我

【问题讨论】:

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


    【解决方案1】:

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

    第二个问题是“它不起作用”是什么意思?你有例外吗?什么类型的异常?用什么信息?

    通常这些会在您问题的“cmets”下,但我很确定我知道答案。

    如果您使用“添加引用”但 Studio 失败或给您错误消息,这可能是因为 DLL 是本机(即不是 .NET 程序集)DLL。尝试动态加载它也会失败(带有BadImageFormatException 的IIRC)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多