• vc6静态库的生成和调用


    转自vc6静态库的生成和调用


    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, "SumLib.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文件。


  • 相关阅读:
    AE二次开发,解决子窗体使用父窗体的AxControl控件
    ArcEngine二次开发中运行出现There is no Spatial Analyst license currently available or enabled.
    Js网站开发学习第一天
    Winform开发1
    MySql安装
    Windows ping加时间戳
    XML特性总结
    linux手册中函数名后小括号中数字的含义
    TCP通信
    swap交换分区概念
  • 原文地址:https://www.cnblogs.com/noble/p/4144117.html
Copyright © 2020-2023  润新知