用 Visual C#调用 Windows API函数 Api函数是构筑 Windws应用程序的基石,每一种 Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了 Windows API函数,同时为了实现功能扩展,一般也都提供了调用 WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力
Visual C#和其它开发工具一样也能够调用动态链接库的 API函数
NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接库中实现的非受管辖函数,包括操作系统提供的 Windows API函数
它能够定位和调用输出函数,根据需要,组织其各个参数(整型、字符串类型、数组、和结构等等)跨越互操作边界
下面以 C#为例简单介绍调用 API的基本过程: 动态链接库函数的声明 动态链接库函数使用前必须声明,相对于 VB,C#函数声明显得更加罗嗦,前者通过 Api Viewer粘贴以后,可以直接使用,而后者则需要对参数作些额外的变化工作
动态链接库函数声明部分一般由下列两部分组成,一是函数名或索引号,二是动态链接库的文件名
譬如,你想调用 User32
DLL中的 MessageBox函数,我们必须指明函数的名字 MessageBoxA或 MessageBoxW,以及库名字 User32
dll,我们知道Win32 API对每一个涉及字符串和字符的函数一般都存在两个版本,单字节字符的 ANSI版本和双字节字符的 UNICODE版本
下面是一个调用 API函数的例子: [DllImport("KERNEL32
DLL", EntryPoint="MoveFileW", SetLastError=true, CharSet=CharSet
Unicode, ExactSpelling=true, CallingConvention=CallingConve