下面是一个调用API函数的例子: |
[DllImport("KERNEL32.DLL", EntryPoint="MoveFileW", SetLastError=true, |
CharSet=CharSet.Unicode, ExactSpelling=true, |
CallingConvention=CallingConvention.StdCall)] |
public static extern bool MoveFile(String src, String dst); |
其中入口点EntryPoint标识函数在动态链接库的入口位置,在一个受管辖的工程 中,目标函数的原始名字和序号入口点不仅标识一个跨越互操作界限的函数。而 且,你还可以把这个入口点映射为一个不同的名字,也就是对函数进行重命名。重 命名可以给调用函数带来种种便利,通过重命名,一方面我们不用为函数的大小写 伤透脑筋,同时它也可以保证与已有的命名规则保持一致,允许带有不同参数类型 的函数共存,更重要的是它简化了对ANSI和Unicode版本的调用。CharSet用于标 识函数调用所采用的是Unicode或是ANSI版本,ExactSpelling=false将告诉编译器, 让编译器决定使用Unicode或者是Ansi版本。其它的参数请参考MSDN在线帮助. |