0x01
- 查找包含该函数的DLL
- 将该DLL加载到内存中
- 查找函数在内存中的地址并将其参数推入堆栈,以封送所需数据。 CLR只在第一次调用函数时,才会查找和加载DLL,并查找函数在内存中的地址。 当函数被调用后, CLR会将函数地址缓存起来,从而提高平台调用的效率。 在APPDomain被卸载之前,改DLL会一直驻留在内存中。 也就是说,除非关闭或者卸载AppDomain, 否则此DLL会被一直加载在应用程序的内存中
- 将控制权转移给非托管函数
msvcrt.dll
标准微软C运行库。
[DllImport("msvcrt.dll")]
static extern int puts(string msg);
[DllImport("msvcrt.dll")]
static extern int _flushall();
// 输出数据到控制台
vc++ 工具
- dumpbin.exe , 查看DLL导出函数,命令行。功能强大,可以查看所有32位 Common Object File Format(COFF) 格式的二进制文件信息,如 COFF, exe,DLL等。
- depends.exe, 查看导出函数, GUI