每次我与dll的交互都像user32.dll一样,我需要像MF_REMOVE这样的常量。是否有所有常量的概述或一个常量所有这些常量的c#库?
您将在win32 API的C头中找到所有常量。获取此信息的低技术方法是在visual studio或平台SDK的headers文件夹中运行文本搜索。 这通常是这样的:
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Include \
我想你会在那里找到你想要的所有API:http://pinvoke.net/
试试PInvoke Interop Assistant。对于大多数常量,您只需输入它们的名称,它就会吐出代表这些常量的C#或VB.Net代码。
该工具不限于常量。它还可以帮助处理类型定义,函数和函数指针。它还可以动态地将大多数定义片段转换为托管代码。
(来源:msdn.com)
这个在线工具MagnumDb作为“魔术数字数据库”(免责声明:我写的)是一个完全免费的搜索引擎,包含99%的Windows SDK常量。
您可以通过名称或值,使用通配符等查询它,例如:http://www.magnumdb.com/search?q=MF_REMOVE
会得到你(名称,类型,值,十六进制值,SDK头文件位置):
MF_REMOVE Int32 4096 0x00001000 %ProgramFiles(x86)%\Windows Kits\10\Include\10.0.16299.0\um\winuser.rh(1213,0)
C#和VB的Windows API函数包含语法,说明和示例代码