静态连接 静态链接是指Delphi 编译器把要调用的函数和过程编译成可执行代码.函数的代码可存留在应用程序的 .dpr文件或一单元中.当链接用户的应用程序时,这些函数与过程便成为最终的可执行文件的一部分.也就是说,函数和过程都在程序的.exe文件中 程序运行时,函数和过程随程序一起调入内存,它们的位置与程序的位置是相关的.当主程序需要调用程序或过程时,流程将跳转到函数或过程所在的位置,执行完函数或过程的代码,将返回主程序调用位置.而函数和过程的相对位置,在链接时就已经确定了 以上是对Delphi…
下面是在Delphi中创建一个DLL的全过程,你将看到怎样创建一个接口单元,使之可以被其他的应用程序访问.并且将学会怎么把Delphi的窗体加入DLL中. 一.数美分:一个简单的DLL 下面是包含一个例程的DLL例子.该例程是将以美分计算的货币换算成五分镍币.一角硬币的数目. 1.一个简单的DLL 该DLL中包含PenniesToCoins()函数,下面完整的显示了该DLL项目文件代码 library PenniesLib; {$DEFINE PENNIESLIB} uses SysUtils,…
DLL(动态链接库)是程序模块,它包括代码.数据或资源,能够被其他的Windows 应用程序共享.DLL的主要特点之一是应用程序可以在运行时调入代码执行,而不是在编译时链接代码,因此,多个应用程序可以共享同一个DLL的代码. 事实上,文件 Kernel32.dll.User32.dll.GDI32.dll就是核心Win32 系统的动态链接库.Kernel.dll 负责内存.进程.线程的管理.User32.dll包含了一些程序,是创建窗口和处理Win32消息的用户接口.GDI32.dll负责处理图…
使用DLL有若干理由,其中有一些前面提到过的.大体说来,使用动态链接库可以共享代码.系统资源,可以隐藏实现的代码或底层的系统例程.设计自定义控件 一.共享代码.资源和数据 前面已经提到,共享代码是创建动态链接库的主要目的所在.但与单元的代码共享不同,DLL的代码可以被任何Windows 应用程序共享,而单元代码的工现象局限于Delphi应用程序 另外,DLL提供了共享资源的途径,诸如 位图.字体.图标等等这些都可以放到一个资源文件中,并直接链接到应用程序.如果把这些资源放到DLL中,那么就可以让…
首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相之间 产生影响. 加载DLL有两种方式:隐式和显式.下面就以刚创建的DLL为例,来介绍两种方式 一.隐式 本章创建的第一个 D L L包含一个接口单元.下面就用该接口单元来隐式链接 DLL.这个工程的主窗体上有一个TMadkEdit.一个TButton和九个TLabel. 在这个应用程序里,用户输入…
什么是链接? 链接其实就是连接的意思,将所有相关的东西连接起来. 简单理解静态连接和动态链接: 静态链接:编译时完成链接 动态链接:程序运行起来后,根据需求再去链接,这就是动态链接 静态链接 什么是静态链接 所谓静态链接,其实就是在编译时,调用ld/collect2链接程序,将所有的.o中的机器指令整合到一起,然后保存到可执行文件中. 什么时候用到静态链接呢? 编译时用到,编译时的链接就是静态链接,所以链接程序ld/collect2,也可以称为静态链接器. 静态链接时做了什么事? 两件事,符号解…
建立静态库 建立四个文件 bin(可运行文件),lib(库),include(头文件),src(放源文件) 这里的起的库明为add 在src文件里运行 1)gcc -c add.c //编译add.c源文件生成add.o目标文件 2)ar crsv ../lib/ libadd.a add.o //对目标文件*.o进行归档,生成lib*.a, 把这个生成文件放在lib里 3)gcc -o main main.c -L(大些的爱偶,放库的路径)../lib   –l(小写的爱偶,库名为add) a…
linux中静态库和动态库的制作与使用 一.静态链接库 1.首先编写模块程序example.c.example.h 2.使用gcc -c example.c -o example.o编译example.c 3.使用命令 ar cqs libexample.a example.o对库进行打包,完成后使用命令 cp libexample.a /usr/lib 完成转移 4.创建test.c文件,编译 gcc  -lexample(指定链接库名称) test.c -o  test  完成. 二.动态链…
本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢? 原因: 1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢? 2,通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP? 下面是我对它们的理解! 代理Proxy: Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对…
原地址:http://blog.csdn.net/xu__cg/article/details/52970885 一.代理模式 为某个对象提供一个代理,从而控制这个代理的访问.代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代.代理类负责请求的预处理.过滤.将请求分配给委托类处理.以及委托类处理完请求的后续处理. 二.代理模式结构 UML类图: 由上图代理模式的结构为: 抽象角色: 真实对象和代理对象的共同接口. 代理角色: 代理对象角色内部含有对真实对…