【发布时间】:2009-02-14 02:40:48
【问题描述】:
我通常在 c#.NET 中使用 Win32 API。但不要在一个应用程序中声明所有内容。有时通常使用 user32,有时使用 gdi32 ... 我认为当我声明所有 api 函数时,它们会占用大量内存。 在 .NET 中使用 API 的最佳方式是什么?
【问题讨论】:
标签: c# winapi dllimport loadlibrary
我通常在 c#.NET 中使用 Win32 API。但不要在一个应用程序中声明所有内容。有时通常使用 user32,有时使用 gdi32 ... 我认为当我声明所有 api 函数时,它们会占用大量内存。 在 .NET 中使用 API 的最佳方式是什么?
【问题讨论】:
标签: c# winapi dllimport loadlibrary
LoadLibrary 在您编写的代码可能会在可能有或可能没有所需 dll 的环境中使用时很有用 - 例如,您可能有一个程序可以使用特殊的加密 dll(如果可用),但是没有它仍然可以运行。使用 DllImport 需要该 dll 存在。
【讨论】:
大部分 Win32 API 都可通过托管抽象获得。否则,请使用DllImport 声明您需要的那些。
LoadLibrary 应该只在您提供了替代功能的情况下使用,也就是说,即使没有特定的 API 功能,您的应用程序也可以工作。如果 API 函数很关键,使用DllImport 会让加载器担心该函数是否存在。
【讨论】: