【问题标题】:Using unknown dll in a c# project在 c# 项目中使用未知 dll
【发布时间】:2013-01-21 21:40:49
【问题描述】:

我从计算机上的另一个程序获得了一个 dll。 根据它的名称,它可能具有我自己的 c# 项目所需的功能。 它似乎也是用 c# 制作的。

是否可以找出其中的功能并使用它们?

【问题讨论】:

  • 您追求的功能是什么?只选择一个您认为可能有效的随机 DLL 似乎很奇怪......
  • @c0deNinja:你显然从未使用过 Sage ACT! SDK... :grin:

标签: c# dllimport code-reuse


【解决方案1】:

如果它是 C# DLL,那么您可以添加引用并使用它。如果它是本机 DLL,那么您需要进行一些逆向工程。

但是,您所描述的并不是开发软件的正常方式。要编写体面的软件,您需要为您使用的库提供良好的文档。试图猜测如何调用图书馆是灾难的根源。开发应基于对您正在使用的工具的扎实而深入的了解。

【讨论】:

    【解决方案2】:

    如果您想深入了解 DLL(对于那些用 .NET 编写的涉及 IL 的人),Visual Studio 提供了Object Browser

    screenshot of object browser http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-65-29/4774.wmob04.jpg
    借自this msdn blog

    但是,如果您需要更多控制权,或者想要不仅包含库,还希望能够查看源代码(在大多数情况下)并逐步执行(调试),我建议您使用 .NET Reflector

    【讨论】:

    • Reflector 没有免费版,只有试用版。有几个免费的反编译器,比如 dotPeek 可用。为此,您甚至不需要反编译器。
    • @Brad Christie。在这种情况下使用 .NET 反射器就像用火箭筒杀死苍蝇一样。我认为您的第二点是这种情况下的最佳解决方案。
    【解决方案3】:

    您可以在项目中引用您想要的dll 并使用Object Browser 查看您可以访问哪些方法等。

    第 1 步:添加参考资料

    第 2 步:选择 dll

    第 3 步:在对象浏览器中查看

    第 4 步:浏览库

    第 5 步:找到您需要的东西

    快乐编码:)

    【讨论】:

    • 令人印象深刻且极具表现力!
    【解决方案4】:

    绝对!如果您可以通过右键单击项目引用、单击添加引用然后浏览到它来将其添加为引用,那么它应该与您正在使用的 .NET 版本兼容。此时,尝试实例化它,看看是否可以在实例化上进行定义。习惯使用外部 dll 的粗略但有效的方法。

    【讨论】:

      【解决方案5】:

      如果它确实是一个 C# DLL,那么您可以将其添加为项目的引用,然后使用对象浏览器查看它包含哪些命名空间和类。

      【讨论】:

        猜你喜欢
        • 2017-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-07
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多