有很多Win32 API个调用/库,比如kernel32或shell32,可以从C#调用。使用它们的常用方法是在pinvoke.net网站上查找方法定义,并使用dllimport定义。
您希望使用的每种方法都需要此过程。
是否可以使用包含常见/最[DllImport]
个API函数的程序集?
我正在寻找可以直接从C#中使用的东西(作为参考),所以我不必自己收集和组合各种DLLImport语句(存在错误风险)。
答案 0 :(得分:2)
您应该找到here at pinvoke.net您要找的内容。实际上,除了普通的简单DLL导入子句之外,C#源代码中没有任何“幕后”可供使用。
答案 1 :(得分:2)
这不是它的工作方式,你只在C#代码中提供[DllImport]声明。就像你在pinvoke.net上找到它们的方式或像P / Invoke Interop助手这样的工具。找出如何实际使用API函数需要学习C或C ++代码。并且通常了解Windows API的工作原理。
开始使用它的最佳位置是Petzold的开创性着作“Programming Windows”。您可以在Windows SDK文档中找到C / C ++中的源代码示例以及完整版SDK中包含的许多示例。当然,只需搜索功能名称即可。有点讽刺的是,这些天你在网上找到的用托管语言编写的样本数量开始超过C / C ++样本。谨防VB6声明(Declare关键字),也广泛使用,其类型与.NET不兼容。
像codeplex.com和codeproject.com这样的网站是查找带有本机API调用的托管类包装器的库的好地方。您通常只是使用该库。
最后但并非最不重要的是,stackoverflow.com是一个很好的资源;)
答案 2 :(得分:1)
据我所知,没有广为人知的Windows API for .NET包装代码;我可以看到它在某些情况下很有用,但是,在大多数情况下,如果你需要使用这么多本机Windows API,那么你应该问问自己是否正确使用.NET框架和/或为什么完全使用.NET?
无论上述观点如何,您都可以在http://pinvoke.net/找到相当全面的定义来源。