发信人: lofe ()感激生活(), 信区: BorlandDev
标  题: 动态链结函式库(Dynamic Linked Library)(4)
发信站: 哈工大紫丁香 (2000年08月30日19:52:34 星期三), 站内信件

在C++Builder中使用DLL

再来我要告诉你如何使用动态链结函式库。我们以前面所产生的DLL为例。使用DLL有
两种方式,分别为明确呼叫及不明确呼叫。

我先说明不明确呼叫的使用方式。不明确呼叫指的是,在程式中并没有一行程式是用
来载入DLL,而是利用链结一个记载输入函式的函式库档案(LIB),来进行链结,如
此系统会自动将该DLL载入,同时在使用完毕後将其释放,不必由使用者(也就是呼叫
它的函式)来进行载入及释放的动作。

首先必须产生一个LIB档,你可以利用C++Builder程式目录内的IMPLIB.EXE来产生该档
案,切忌勿使用Visual C++ 的IMPLIB.EXE,因为Microsoft所使用的格式是COFF格式
的LIB档,而Borland所使用的格式是OMF格式的LIB档。(同样地,若是你的LIB档是要
给Visual C++ 链结用的,那就要使用它所附的IMPLIB.EXE,在使用时不可不察)。因
此我们可用以下指令产生DLLSAMP.LIB档。

IMPLIB DLLSAMP.LIB DLLSAMP.DLL

如此你就可以得到供程式链结用DLLSAMP.LIB档了。

接着我们来撰写使用该DLL的范例程式。这个程式相当简单,我只在表格中放置一个
Button,然後撰写该Button的OnClick事件处理函式,使其呼叫ShowImage函式即可。
有一点要注意的是,你必须将先前产生的DLLSAMP.LIB加入此专案中,利用

【Project/Add to Project】选择LIB型态档案,即可将其加入。

最後我们就可以链结程式,以下为其执行结果。

[Image] (略)

图四 执行结果。

--
真正的程序员用C, 聪明的程序员用什么?——Inprise工具!

欢迎光临BorlandDev版,探讨Inprise编程

           独孤九剑的最高境界是不拿剑
           编程的最高境界是无所谓工具

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: malacs.hit.edu.cn]
※ 修改:·lofe 於 08月30日19:54:26 修改本文·[FROM: malacs.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.210毫秒