vc6静态库的生成和调用

转载 2013年12月05日 13:13:29

1、静态库的生成:

     在vc6.0++中Ctrl+N选择Projects下的Win32 Static Library,Project name:SumLib,点击OK,下一页中的两项可选可不选,点击Finish完成。

      在此工程中新建lib.h和lib.cpp两个文件,源码如下:

      //lib.h

     #ifndef LIB_H
     #define LIB_H
     int add(int x, int y);
     #endif

     //lib.cpp

     #include "lib.h"
     #include "StdAfx.h"//此处不加此语句总是出错

     int add(int x, int y)
     {
         return (x+y);
     }

 

     编译这个工程就得到了SumLib.lib文件,此文件就是一个函数库,它提供了add的功能。将lib.h头文件和SumLib.lib提交给用户后,用户就可以直接使用其中的add函数了。

 

2、静态库的调用:

 

     新建一个控制台应用程序,仅有一个main.cpp文件,源码如下:

     #include "lib.h"
     #include <iostream>

    using namespace std;

    #pragma comment(lib, "libTest.lib") //指定与静态库一起连接

    int main(int argc, char* agrv[])
    {
        int sum = add(4, 5);

        cout<<sum<<endl;

        return 0;
     }

     将生成的lib.h头文件和SumLib.lib静态库放到此工程的目录下即可执行。

 

      静态链接库与动态链接库都是共享代码的方式,它们的区别在于以下两点:        

  (1)采用静态链接库(lib)时,lib中的指令被全部直接包含在最终生成的exe文件中;但采用dll时,该dll不必被包含在最终exe文件中,exe文件执行时可以“动态”地引用和卸载这个与exe独立的dll文件,从而在运行时节省系统资源。

  (2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。

     (3)静态链接库由.h和.lib文件组成,.h文件要声明.lib中供外界调用的函数的原型,不能缺少。

     (4)VC6中调用静态链接库.lib一共有3种方法:
      ①使用语句#include "lib.h",并将lib.h拷贝到当前工程目录下;对SumLib.lib使用语句 #pragma comment(lib,"***//SumLib.lib"),将SumLib.lib拷贝到目
录"***//SumLib .lib"下。                                                                      
      ②使用语句#include “lib.h",并在工具->选项->目录->路径中添加lib.h的路径;对SumLib.lib,在工程->设置->连接->对象/库模块中添加SumLib.lib,并在工具->
选项->目录->路径中添加SumLib.lib的路径。
      ③lib.h文件的处理同①或②;对SumLib.lib,在工程->添加到工程->文件中导入此.lib文件。


vc6静态库的生成和调用

转自 1、静态库的生成:      在vc6.0++中Ctrl+N选择Projects下的Win32 Static Library,Project name:SumLib,点击OK,下...
  • wdjhzw
  • wdjhzw
  • 2014年08月18日 00:29
  • 516

vc6.0生成ocx,然后使用js调用

使用vc++6.0生成ocx,然后使用js进行注册,调用 1.在vc中新建OcxTestFirst的activex控件工程(选中MFC ActiveX ControlWizard)    ...
  • undergrowth
  • undergrowth
  • 2013年09月28日 00:52
  • 2326

VC++ 调用 C#生成DLL的两种方法

今年在C++调用对方用C#写的DLL时,遇到托管和非托管的问题。      原帖:      http://topic.csdn.net/u/20110916/12/fcf63501-45...
  • u012252959
  • u012252959
  • 2015年12月09日 16:34
  • 2753

深度、广度优先遍历算法C实现

深度、广度优先遍历算法C实现
  • lby978232
  • lby978232
  • 2017年01月08日 17:07
  • 278

VC6命令行编译配置

对于大多数在windows上写windows C/C++应用程序的人可能用的都是微软提供的VC++6.0或Visual Studio集成开发环境,但是对想为了更好地理解程序编译链接过程和习惯如linu...
  • wenzhou1219
  • wenzhou1219
  • 2013年08月30日 10:11
  • 5178

Windows下用VC6.0编译Lua源码 生成静态库和动态链接库

1、 下载Lua源代码 到 http://www.lua.org/download.html 官网下载,我下载的是 lua-5.3.0 版本,解压源码包,得到 src 文件夹,这例有我们下面编译需要的...
  • Totohack
  • Totohack
  • 2015年03月12日 11:10
  • 1431

C# VC6调用VC6的动态库DLL

C# VC6调用VC6的动态库DLL 一 VC创建动态库 1. DLL的创建 启动VC6.0, 新建一个“Win32 Dynamic-Link Library”工程,选择“A s...
  • linfei2707
  • linfei2707
  • 2017年05月03日 18:03
  • 204

MFC.bsc文件的生成方法及使用方法

首先进入DOS命令模式:  C:/Program Files/Microsoft Visual Studio/VC98/bin目录下运行VCVARS32.BAT, 然后再进入C:/Progra...
  • BBOOT
  • BBOOT
  • 2014年05月31日 13:14
  • 760

VC6创建COM组件,Qt调用例子

一、建立 ATL 工程   步骤2.1:建立一个工作区(WorkSpace)。   步骤2.2:在工作区中,建立一个 ATL 工程(Project)。示例程序叫 June12,并选择DLL方式,见...
  • cibiren2011
  • cibiren2011
  • 2017年06月11日 16:00
  • 522

VC6使用GdiPlus绘制png图片

效果图 1 配置Gdiplus     (1)下载GDI+ for VC6.0 SDK 文件,下载地址 http://pan.baidu.com/s/1pKFEGC7         (2)新建...
  • MISADS
  • MISADS
  • 2017年11月23日 22:56
  • 107
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vc6静态库的生成和调用
举报原因:
原因补充:

(最多只允许输入30个字)