对于熟悉的朋友,这些可能是小儿科,本文适用于
PostgreSQL,最先进的开源对象关系型数据库,简称 PG。
Dynamic-link library 动态链接库,简称 DLL
wiki:
Dynamic-link library
以前没有修改 libpq (PostgreSQL C/C++客户端)和其它调用动态链接库的代码修改,也就没有去考虑动态链接库怎样使用,虽然有诸多疑惑。前几天为了适应一些新特性,不得不考虑对 libpq 进行改造,修改同时又要保证旧程序与以前使用 PostgreSQL,查阅若干资料,分享如下。
DLL 有两种链接方式:Implicit linking 与 Explicit linking,请看微软资料:
Linking an Executable to a DLL
隐式链接依赖于生成 DLL 时生成的隐式库 .lib (import library),这里边记录如何载入和调用 DLL 函数,连接器(linker)生成可执行文件时,添加这些信息。可执行文件启动进程时,以这些信息告知系统如果去找到 DLL 代码。
系统找到DLL,将 DLL 模块映射到程序地址空间。
此部分请看:
Determining Which Linking Method to Use
DLL函数定位方式有两种:数字顺序(numeric ordinal)和名字
数字顺序的方式会更快一些
这部分介绍请看:
Symbol resolution and binding
先写这么多,更多细节请看 wiki,解释的很清楚。
PostgreSQL,最先进的开源对象关系型数据库,简称 PG。
Dynamic-link library 动态链接库,简称 DLL
wiki:
Dynamic-link library
以前没有修改 libpq (PostgreSQL C/C++客户端)和其它调用动态链接库的代码修改,也就没有去考虑动态链接库怎样使用,虽然有诸多疑惑。前几天为了适应一些新特性,不得不考虑对 libpq 进行改造,修改同时又要保证旧程序与以前使用 PostgreSQL,查阅若干资料,分享如下。
DLL 有两种链接方式:Implicit linking 与 Explicit linking,请看微软资料:
Linking an Executable to a DLL
隐式链接依赖于生成 DLL 时生成的隐式库 .lib (import library),这里边记录如何载入和调用 DLL 函数,连接器(linker)生成可执行文件时,添加这些信息。可执行文件启动进程时,以这些信息告知系统如果去找到 DLL 代码。
系统找到DLL,将 DLL 模块映射到程序地址空间。
此部分请看:
Determining Which Linking Method to Use
DLL函数定位方式有两种:数字顺序(numeric ordinal)和名字
数字顺序的方式会更快一些
这部分介绍请看:
Symbol resolution and binding
先写这么多,更多细节请看 wiki,解释的很清楚。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28932059/viewspace-762162/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28932059/viewspace-762162/