• 【VC++6.0】成功制作并使用lib库,转载


    微软有许多头文件,这些头文件里面定义了许多函数,但是在头文件中你却找不到函数内容的身影,因为函数主体被保存在了lib库中。保存在库中有一个好处,那就是源代码不容易被发现,也就是说其中的一些技术别人不容易学到。废话少说,我们现在就开始制作lib库。

          首先,第一步,打开VC++6.0,按Ctrl+N,选择工程选项卡,选中“Win32 Static Library”选项,输入工程名称,我们这里用“Lib库”,大家可以自己选择,至于路径,随便选一个吧,反正这次只是lib的实验。

         然后点击“确定”,我们两个都不选,如果选择“预编译的头文件”的话系统会自动帮你建好stdafx.h和stdafx.cpp。但另外一个“MFC支持”我没试过。

         点击完成后建立了一个空的工程,我们新建一个CPP文件(注意选上“添加到工程“Lib库”“这个选项,输入文件名main.cpp,随后,在 main.cpp中间输入函数代码和头文件,注意这里不需要添加main函数也不需要类似的包括dllmain函数在内的函数。

        编译,有错的改错,没错的运行。VC6会提示要求输入可执行文件名,我们点击取消,随后生成Lib库.lib完成。

        现在请把Debug下的Lib库.lib复制到系统目录或D盘中(我是复制到D盘的)

    不要以为现在就完成了哦!我们新建一个.h文件(实际上可以打开任意文件夹或驱动器,右键—>新建—>新建文本文档,然后重命名为.h文件即 可。)这里用lib.h,用记事本或VC++6打开我们刚刚新建的.h文件,将你定义的函数中函数的原型复制进去,比如说我刚才在lib文件中定义了一下 函数:

    int abc()
    {
        printf("abc
    ");
        return 0;
    }

     那么我在头文件中只要这么写:"int abc();" 就可以了(引号不算),注意后面有一个分号。.h文件编辑完了以后你就可以引用了,将.h文件复制到D盘中,在VC6中新建一个cpp文件,输入(我这里以lib文件和.h文件都在d:下做示范):

     

    #include <d:lib.h>
    #pragma    comment(lib,    "d:lib.lib")  //不是#include来包含,我一开始写日志时写错了,感谢狂飙为我从天落指出
    int main()
    {
        abc();
        return 0;
    }

    运行,没有错误,你会看到屏幕输出abc。怎么样?还有需要说明的是,虽然dll也可以实现这个一样的功能,但是lib有以下几点好处(对比dll):

    1.没有dllmain函数,运行更简单

    2.大小不大

    3.运行后lib就嵌在程序里面了,dll还要在程序旁边跟一个小尾巴(dll文件)

     

     

     

     

    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    关于lockkeyword
    关于多层for循环迭代的效率优化问题
    Android 面试精华题目总结
    Linux基础回想(1)——Linux系统概述
    linux源代码编译安装OpenCV
    校赛热身 Problem C. Sometimes Naive (状压dp)
    校赛热身 Problem C. Sometimes Naive (状压dp)
    校赛热身 Problem B. Matrix Fast Power
    校赛热身 Problem B. Matrix Fast Power
    集合的划分(递推)
  • 原文地址:https://www.cnblogs.com/rechen/p/5100499.html
Copyright © 2020-2023  润新知