[DllImport("user32.dll", EntryPoint = "FindWindow")[DllImport("user32.dll", EntryPoint = "FindWindow")
[DllImport("user32.dll") ] public static extern 返回值 方法名称(参数);
1、[DllImport("user32.dll") ]是告诉CLR我想调用的非托管代码在user32.dll中,帮我把这个dll加载到内存中来。 2、至于你想找你要调用的方法被包含在哪个dll中,LZ自己去查Windows Platform SDK。DllImport查找的路径:(1)当前执行exe的路径或者相对exe的路径 (2)系统环境变量设置的路径 3、public static extern 返回值 方法名称(参数);又是什么?这是告诉CLR你想调用user32.dll中的哪个方法,extern指示该方法是在外部定义的,定义了之后IDE才能有智能提示,这样也符合C#语法,编译器才能编译通过。 最后在告诉你一下大体的执行流程吧: (1)CLR定位包含你要调用的非托管dll (2)把非托管dll加载进内存(这一步只执行一次) (3)定位你要调用的方法在内存中的地址,同时把你调用方法所传的参数进行封装压入堆栈,然后控制权就交给那个非托管dll执行方法了。 (4)执行完了嘛就原路返回咯