条目1、WINDOWS中最重要的三个包含API提供函数的DLL:Kernel32.dll、User32.dll、GDI32.dll。(P509)
条目2、DLL通常由一组可供任何应用程序使用的独立函数组成,因此它通常比应用程序更容易创建。(P510)
条目3、在应用程序(或其他DLL)能够调用一个DLL中的函数之前,必须将该DLL的文件映像映射到调用进程的地址空间中。DLL中的函数创建的任何对象都为调用线程或调用进程所拥有--DLL绝对不会拥有任何对象。(P510)
条目4、要导出的函数可以通过__declspec(dllexport)来修饰,或在.def文件中给出。
条目5、C++编译器通常会对函数名和变量名进行改编(mangle),这在链接的时候会导致严重的问题。因此我们需要extern "C" 修饰符来避免这种改编。
验证:
通过dumpbin.exe -exports mangle.dll 查看:
Dump of file mangle.dll
File Type: DLL
... ...
ordinal hint RVA name
1 0 00001000 ?fun@