Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361381
  • 博文数量: 71
  • 博客积分: 4691
  • 博客等级: 上校
  • 技术积分: 935
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-14 15:14
个人简介

who am i ... i'm back.

文章分类

全部博文(71)

文章存档

2014年(4)

2011年(1)

2010年(22)

2009年(17)

2008年(27)

我的朋友

分类: WINDOWS

2008-04-02 21:17:22

一.  静态库包括.lib.h文件,在工程中使用静态库分为3步:

<1> 在工程中加入静态库,有两种方法:

      **方法一:项目设置中引用.libproject->   setting->   link->   object/library modules中添加.lib;(需要在tools/options设置正确的引用路径)

      **方法二:在项目中直接加入libproject->   add to project->   files,选择正确的.lib

<2> 在工程中包括.h文件;(可能 需要在tools/options设置正确的引用路径)

<3> 在工程中使用静态库中的函数;

二.       动态链接库一般包括.lib(导出函数).h.dll文件,使用动态库有两种情况:

a .  隐式链接,同使用静态库相似,分为三步:引用.lib,包含头文件,使用导出函数;

b. 动态加载,直接使用LoadLibrary 加载所需的动态库,然后指定所需的导出函数,效率最高!

三.关于lib文件:

开发DLL的时候,就会生成两个文件:LIB静态库文件(接口文件)、DLL动态库文件(程序文件).

LIB是提供DLL接口的文件,供编译器使用.

#pragma comment(lib, "##/##/mine.lib")
是使本工程加入mine.dll动态链表库的接口库文件,让本工程可以使用mine.dll中的函数

另:建立c语言函数库的办法


1.现将二个函数sub1()及sub2()建立成一个函数库文件取名为mylib.lib。两个函数的函数及型参如下:   
            函数1:   void    sub1(void);   
            函数2:   float    sub2(int    i,float    x);  

   将它们分别建立一个文件,取名为s1.c及s2.c,在用命令tcc对它们分别编译后产成两个目标文件s1.obj及s2.obj,最后使用tlib命令 建立函数库文件mylib.lib,并建立相应的例表文件(例表文件主要用来检查主函数库的使用情况),命令格式如下:   
   tcc    s1.c    s2.c   
   tlib    mylib    +s1    +s2,mylib.lst   
   将产生的mylib.lib函数库文件拷贝到标准库目录下c:\tc\lib   

2.建立其头文件(假设取名为myfunc.h)内容如下:   
       extern    void    sub1(void);   
       extern    float    sub2(int,float);   
   将此文件拷贝到目录下c:\tc\include   

3.在用户的程序中按下例方式直接使用即可:   
   #include   
   main()   
   {…   
       调用sub1(),sub2();   
       …   
   }

   
4.在Turboc下用编译命令tcc对用户程序文件进行编辑及链接,设其用户程序文件名为my.c,使用命令格式:   
   tcc    -Ic:\tc\include


使用 VC 动态链接库的常用方法

http://www.blogjava.net/Jack2007/archive/2008/02/28/182801.html

--------------

方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载:

  1. HINSTANCE LoadLibrary( LPCTSTR lpLibFileName);

  2. FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName);

  3. BOOL FreeLibrary( HMODULE hLibModule);

  这最直观的一种方法,同时也是最麻烦的一种办法。

   方法二:让调用者的工程依赖于动态链接库工程。步骤如下:

  1. 让调用者的工程处于active状态下。

  2. 打依赖设置对话框:Project-->dependencies。

  3. 选择动态链接库工程。

  这种方法比较方便,但要求有DLL的项目文件。

    方法三:直接把动态链接库产生的.lib文件加入到调用者的工程中。

 方法四:进入Link设置:Project-->settings-->Link,选择Categery中的Input,在object/library modules里输入的动态链接库对应   

              的.lib文件名,在Additional library path中输入动态链接库对应的.lib的路径。

 方法五:#pragma (lib, "filename.lilb")

阅读(809) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~