更新时间:2023-01-06 22:31
程式库,别名引用程式库,是目的码程式库档案的一种特殊形式。
动态连结程式库有着令人困惑的印象,部分原因是由于“程式库”这个词被放在几种不同的用语之后。除了动态连结程式库之外,我们也用它来称呼“静态连结”或“引用程式库”。
目的码程式库是带.LIB副档名的档案。在使用连结程式进行静态连结时,它的程式码就会加到程式的.EXE档案中。例如,在Microsoft Visual C++中,连同程式连结的一般C执行目的码程式库被称为LIBC.LIB。
引用程式库,像目的码程式库一样,引用程式库有.LIB副档名,并且被连结器用来确定程式码中的函式呼叫来源。但引用程式库不含程式码,而是为连结程式提供资讯,以便在.EXE档案中建立动态连结时要用到的重定位表。包含在Microsoft编译器中的KERNEL32.LIB、USER32.LIB和GDI32.LIB档案是Windows函式的引用程式库。如果一个程式呼叫Rectangle函式,Rectangle将告诉LINK,该函式在GDI32.DLL动态连结程式库中。该资讯被记录在.EXE档案中,使得程式执行时,Windows能够和GDI32.DLL动态连结程式库进行动态连结。
目的码程式库和引用程式库只用在程式开发期间使用,而动态连结程式库在执行期间使用。当一个使用动态连结程式库的程式执行时,该动态连结程式库必须在磁片上。当Windows要执行一个使用了动态连结程式库的程式而需要载入该程式库时,动态连结程式库档案必须储存在含有该.EXE程式的目录下、目前的目录下、Windows系统目录下、Windows目录下,或者是在通过MS-DOS环境中的PATH可以存取到的目录下(Windows会按顺序搜索这些目录)。