【问题标题】:DllImport vs LoadLibrary, What is the best way?DllImport vs LoadLibrary,最好的方法是什么?
【发布时间】:2009-02-14 02:40:48
【问题描述】:

我通常在 c#.NET 中使用 Win32 API。但不要在一个应用程序中声明所有内容。有时通常使用 user32,有时使用 gdi32 ... 我认为当我声明所有 api 函数时,它们会占用大量内存。 在 .NET 中使用 API 的最佳方式是什么?

【问题讨论】:

    标签: c# winapi dllimport loadlibrary


    【解决方案1】:

    LoadLibrary 在您编写的代码可能会在可能有或可能没有所需 dll 的环境中使用时很有用 - 例如,您可能有一个程序可以使用特殊的加密 dll(如果可用),但是没有它仍然可以运行。使用 DllImport 需要该 dll 存在。

    【讨论】:

    • 这通常是我最终使用 LoadLibrary 的时间。
    • LoadLibrary 对于加载插件也很有用
    【解决方案2】:

    大部分 Win32 API 都可通过托管抽象获得。否则,请使用DllImport 声明您需要的那些。

    LoadLibrary 应该只在您提供了替代功能的情况下使用,也就是说,即使没有特定的 API 功能,您的应用程序也可以工作。如果 API 函数很关键,使用DllImport 会让加载器担心该函数是否存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 2014-02-08
      • 2018-03-21
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多