静态连接库在VC中如何制作,有如何调用?

匪六哥 2004-12-14 09:39:12
静态连接库是干什么的,和动态连接库有什么区别?我想作一个静态连接库并调用,可是书和网上都很少介绍,不知该如何着手?请赐教!
...全文
252 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
匪六哥 2004-12-15
問題自己解決,現將完整步驟奉獻如下,和大家共勉
(1)創建win32 Static Library;
(2)定義端口函數,基本和DLL一樣,不過不要在def中定義;
(3)將生成的lib和對應的.h放入API程序目錄中;
(4)在project-〉setting-〉link中添加lib;
(5)在程序中#include “*.h”
(6)引用接口函數
回复
pleasehelpme 2004-12-14
抢分:)
调用的时候包含头文件,再加上#pragma comment(lib,"xxx.lib")
回复
kugou123 2004-12-14
VC工程中有一项是专门建立win32 static library的,这就是静态库,编译的时候生成.lib库文件,没有DLL文件。
回复
Kudeet 2004-12-14
动态连接,静态连接,都是对动态连接库(DLL)说的,
静态连接库不存在动态连接,静态连接的问题

我想你问的区别应该是DLL的静态连接和动态连接的区别吧。

动态链接库的静态链接方式就是将产生的lib文件加到project中一起编译,这样以后使用dll中的函数的时候就不需要GetProcAddress将该函数的地址导出了。因为lib文件中已经包含了所有export函数和变量的信息,但是这种方式如果dll文件的导出内容改变了,整个project必须重新编译才行。而不象动态链接那样无需重编。

静态链接,和动态链接是相对的,在可执行程序内包含了所访问的函数的代码,可执行程序占用的空间较大;但运行时,不需要其他模块支持,从而速度相对较快。动态链接的可执行程序中不包含动态访问的函数代码,仅仅包含对它的参考,运行时需要其他模块(DLL)的支持,速度相对较慢。
回复
Kudeet 2004-12-14
静态连接库是指WIN32 Static Library,他只是生成一个.lib文件,没有DLL文件,在appwizard的第一步最后一项就是创建一个静态库。

回复
mu_gong 2004-12-14
倒.....静态联结库,类似DLL的就是啊,网上资料很多啊,一把一把的

比如简单的说:
用C语言写的DLL,其输出的函数一
般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用
都是从网上找的,自己去看吧
回复
broown 2004-12-14
动态链接库,动态载入内存。多次连接,只存在一份代码。
静态链接库,再编译的时候静态链接,多次连接,产生多份代码。
回复
匪六哥 2004-12-14
最好有现成的例子
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告