DllImport vs LoadLibrary,最好的方法是什么?

我通常在c#.NET中使用Win32 API。 但不要在一个应用程序中声明所有内容。 有时通常使用user32,有时gdi32 ……我想当我声明所有api函数时,那些使用大量内存。 在.NET中使用API​​的最佳方法是什么?

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

LoadLibrary应该只在您提供备用function的地方使用,也就是说,即使没有特定的API函数,您的应用程序也可以工作。 如果API函数很关键,那么使用DllImport会让加载器担心函数是否存在。

当您编写可能在可能具有或不具有所需dll的环境中使用的代码时,LoadLibrary非常有用 – 例如,您可能有一个程序可以使用特殊的加密dll(如果可用),但仍然可以运行没有它。 使用DllImport将需要dll存在。