Windows链接时期所需要的函数库

Windows支持动态链接。换句话说,应用程序所调用的Windows API函数是在“执行时期”才链接上的。并不是拓展名为.dll才是动态链接库。.exe,.dll,.fon,.mod,.drv,.ocx都是所谓的动态链接函数库。

Windows程序调用的函数可分为C Runtimes以及Windows API两大部分。早期的C Runtimes并不支持动态链接库,但Visual C++4.0之后已支持,并且在32位操作系统中已不再有small/large等内存模式之分。

另一组函数,Windows API,由操作系统本身(主要是Windows三大模块GDI32.DLL和USER32.DLL和KERNEL32.DLL)提供。虽说动态链接是在执行时期才发生“链接”事实,但在链接时期,链接器仍需先为调用者(应用程序本身)准备一些适当的信息,才能够在执行时期顺利“跳”到DLL中执行。如果该API所属的函数库尚未加载,系统也才因此知道要先行加载该函数库。这些适当的信息放在所谓的“import函数库”中。32位Windows的三大模块所对应的import函数库分别为GDI32.LIB和USER32.LIB和KERNEL32.LIB。

Windows发展至今,逐渐加上的一些新的API函数并不放在GDI和USER和KERNEL三大模块中,而是放在诸如COMMDLG.DLL、TOOLHELP.DLL之中。如果要使用这些APIs,链接时还得加上这些DLLs所对应的import函数库,诸如COMDLG32.LIB和TH32.LIB。

你可能感兴趣的:(C++,c,windows,C#)