Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3275051
  • 博文数量: 346
  • 博客积分: 10189
  • 博客等级: 上将
  • 技术积分: 3125
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 19:46
文章分类

全部博文(346)

文章存档

2013年(35)

2011年(35)

2010年(76)

2009年(48)

2008年(152)

分类: C/C++

2008-09-02 13:08:43

一、静态链接库
        1.静态链接库的生成方法 
        在vc下建立一个新项目,项目类型选择win32 static library,然后在项目中加入.h\.cpp\.c文件,编译链接后就会生成一个静态链接库.lib文件。
        如果想要取得尽量好的与平台无关性,则在.h文件头加入extern "C",强制编译器以C方法编译.cpp的文件,生成的文件名不会像.cpp那样给函数加上一堆附加信息。这样其他的编译器也可能识别他。但是这种方法只 适合没有用到C++重载等特性时才可以使用。

       2.静态链接库的使用
       把以上生成的.lib和.h文件加入到工程中去,在project选项中选择setting,然后在link中添加*.lib,表示链接时用到他,在项目文件中加入#include "*.h"即可使用这个静态链接库

 

二、动态链接库
        1.动态链接库的生成方法
        在vc下建立一个新项目,项目类型选择win32 dynamic link library,然后在项目中添加.h\.cpp\.c文件,编译链接后就会生成.dll文件。
         也可以在resource files文件夹下生成一个.def文件,文件内容如下:
         LIBRARY            *.dll
         EXPORTS         
                                     dll中的函数名
         这个def文件在编译后会生成.lib文件,他是用于解析dll中函数用的。

        2.动态链接库的使用方法一
        把.lib、.dll、.h三个文件都放到工程中去,在工程文件中加入#include "*.h"文件,选择project的setting选项,然后在link中加入.lib文件,即可使用该库。

        3.动态链接库的使用方法二
       把.dll、.h三个文件都放到工程中去,在工程文件中加入#include ,做一个函数指针和一个handle,函数指针指向你要用的,handle类型为HMODULE,如示:

    typedef void (*PFN)();
    HMODULE hdll 
= ::LoadLibrary("mydll.dll");
    PFN pfn 
= (PFN)::GetProcAddress(hdll,"helloword");
    (
*pfn)();
    ::FreeLibrary(hdll);
       这种方法不用在setting的link中加入lib。
阅读(1252) | 评论(0) | 转发(0) |
0

上一篇:操作符重载

下一篇:一套不错的考试题

给主人留下些什么吧!~~