【发布时间】:2010-10-17 15:59:40
【问题描述】:
每次我与像 user32.dll 这样的 dll 交互时,我都需要像 MF_REMOVE 这样的常量。 是否有所有常量的概述或包含所有这些常量的 c# 库?
【问题讨论】:
-
尽可能使用 Windows SDK!
-
在哪里可以找到这个适用于 winXP 的 Windows SDK?
每次我与像 user32.dll 这样的 dll 交互时,我都需要像 MF_REMOVE 这样的常量。 是否有所有常量的概述或包含所有这些常量的 c# 库?
【问题讨论】:
这个在线工具MagnumDb 作为“幻数数据库”(免责声明:我写的)是一个完全免费的搜索引擎,包含 99% 的 Windows SDK 常量(大约 380000 个整数、枚举、guid、接口 id、clsid、等等)。
可以按名称或按值、使用通配符等方式查询,例如: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)
【讨论】:
试试PInvoke Interop Assistant。对于大多数常量,您只需输入它们的名称,它就会输出代表这些常量的 C# 或 VB.Net 代码。
该工具不限于常量。它还可以帮助处理类型定义、函数和函数指针。它还可以即时将大多数定义 sn-ps 转换为托管代码。
(来源:msdn.com)
【讨论】:
用于 C# 和 VB 的 Windows API 函数 附语法、解释和示例代码
【讨论】:
您会在 win32 API 的 C 标头中找到所有常量。获取此信息的低技术方法是在 Visual Studio 或平台 SDK 的 headers 文件夹中简单地运行文本搜索。
这通常是这样的:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\
【讨论】:
我想你会在那里找到关于 API 的所有信息:http://pinvoke.net/
【讨论】: