日期:2014-05-18  浏览次数:20938 次

C#调用WIN32API的时候,大家都是怎么查阅相关资料的(欢迎大家进来讨论一下)
因为最近对API有一定的需求,所以做了相关的研究,但我发现C#调用WINAPI远不如VC++那么简单。在VC++中,如果需要调用某个API,直接在帮助中一查就知道这个函数的申明、参数等相关信息了,非常全面。
而C#则不行,c#的帮助中没有任何与API相关的信息可查。
我现在的做法是直接去查VC++帮助的相关说明,然后再根据VC++的帮助在C#中申明这个函数,一般情况下还好,但某些时候VC++数据类型转换为C#数据类型的问题真是很让人头疼啊。

问题(疑惑):
1、我虽然学习C#有很长时间了,虽然对部分API也了解一些,不过我不知道我上面说的是调用API的做法对不对,有没有比这个更简单的方法?
2、C#调用API的时候有没有更权威、详尽的文档(类似VC++的帮助文档)可查?
3、有没有一种文档可以查出任何API函数的C#申明的?

欢迎大家来讨论,这些问题可能不会有标准答案。我希望能得到高手的指点,同时也希望大家能共同进步。

------解决方案--------------------
下载 Win32API.chm
网上有很多。要是找不到直接找我要。
------解决方案--------------------
1 直接去查VC++帮助的相关说明,找一个API查询工具或则你直接找个别人写到的API类.
2 查VC++的帮助就很不错拉.只是同一个方法.参数转换了而已.
3 有网上很多第三方的.有些可能还需要改动下.

------解决方案--------------------
探讨
你说的Win32API.chm好像没有直接出来就是C#申明的吧。不知道大家见过VB的API浏览器没有,直接出来就是VB中的申明了,爽的很啊。要是C#也有就好了。

------解决方案--------------------
我的主要来自以前Delphi的资料,或帮助!
------解决方案--------------------
主要是这几个东西
新编win32api大全----工具书
API Explorer -------查询工具
pinvoke.net------vs api插件
http://pinvoke.net/ 该插件官方wike
------解决方案--------------------
去google里百度一下你就知道了
------解决方案--------------------
探讨
主要是这几个东西
新编win32api大全----工具书
API Explorer -------查询工具
pinvoke.net------vs api插件
http://pinvoke.net/ 该插件官方wike

------解决方案--------------------
10楼兄弟提供的不错
------解决方案--------------------
Mark
------解决方案--------------------
探讨
刚刚发现一个好东西,一个第三方程序,专门用于浏览C#的API申明的。呵呵很不错。

下载地址:

http://www.onlinedown.net/soft/20103.htm

------解决方案--------------------
lib目录下貌似是说明 不过全是英文的
------解决方案--------------------
API精灵也不错
------解决方案--------------------
API精灵也不错
------解决方案--------------------
pinvoke.net
------解决方案--------------------
有一个叫做API精灵.exe的工具:下面是其中一部分的txt文档,我资源中有下载的……
好像有点多了

public public const int int ANYSIZE_ARRAY = 1
public const int DELETE = H10000
public const int READ_CONTROL = H20000
public const int WRITE_DAC = H40000
public const int WRITE_OWNER = H80000
public const int SYNCHRONIZE = H100000
public const int STANDARD_RIGHTS_READ = (READ_CONTROL)
public const int STANDARD_RIGHTS_WRITE = (READ_CONTROL)
public const int STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
public const int STANDARD_RIGHTS_REQUIRED = HF0000
public const int STANDARD_RIGHTS_ALL = H1F0000
public const int SPECIFIC_RIGHTS_ALL = HFFFF
public const int SID_REVISION = (1)
public const int SID_MAX_SUB_AUTHORITIES = (15)

------解决方案--------------------
一般都是上网查。
------解决方案--------------------
http://www.cnblogs.com/prince1985s/archive/2008/03/16/1108053.html
http://www.cnblogs.com/diyer/articles/1241975.html
http://www.cnblogs.com/jfei1982/articles/902625.html