【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\n");
    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文件)

时间: 2024-10-29 19:13:50

【VC++6.0】成功制作并使用lib库,转载的相关文章

vc下DLL项目设置dll和lib库输出路径以及使用lib/dll库时的包含路径

include 头文件包含路径设置: project->setting->C/C++->常规: Additional include directories(附加包含目录): ../../include等等 链接文件输出目录:    project->setting->配置属性->常规:输出目录 例如:输出目录:$(SolutionDir)Temp\Link\$(ProjectName)\$(ConfigurationName) 解释:项目目录-Temp-Link-工程

Windows 下VC++6.0制作、使用动态库和静态库

Windows 下VC++6.0制作.使用动态库和静态库 一.VC++6.0制作.使用静态库 静态库制作 1.如图一在VC++6.0中new一个的为win32 static library工程并新建一个.cpp和一个.h(C++header file)文件 2..cpp程序直接照老师给的打,注意这里需要改错,去掉(long) 3. .h文件需要自己编写格式如下.以head.h为例 #ifndef _HEAD_H_ #define _HEAD_H_ unsigned long unsgn_pow(

对VC++6.0爱得深沉(三)静态库的制作与使用

[创建] 1)建立新工程(win32静态库) (2)加入.h文件于.cpp文件如图. 3)编译-构建,生成.lib文件 [使用] 1)新建普通控制台程序 2)打开项目文件夹与刚才生成的库文件夹 3)方法一: 把库的.h文件于库的.lib文件复制到本项目文件下,并用相对路径的形式编写本项目源代码如下: 方法二:用绝对路径的形式编写本项目源代码如下: 4)运行结果 ............... 至于静态库能干什么,如果有一个你自己写的函数,你经常能用到, 如果你不想每次写个项目就要重写一次,就可以

图解VC++6.0和ACE 5.4 开发入门

一 工具和下载 工具和环境: Win7, VC++6, ACE5.4 可在Win7下运行的VC6下载: http://blog.csdn.net/bcbobo21cn/article/details/44200205 ACE安装包和本文demo代码下载: http://pan.baidu.com/s/1kUUOOlh 注意有两个ace安装包,5.4是dsw的工程,6.3是sln的工程 二 安装环境 下载ace54,解压: 在vc6.0中打开ace源码: 2个工程:网上资料有说3个工程: 在工程中

对VC++6.0爱得深沉(一)安装vc++6.0,支持winXP,win7,win8.1,win10

[欢迎入坑] 从这里起,我称VC++6.0为小c. 为什么我对小c爱得深沉? 虽然饱受非议,但是,我只想说,我太单纯,小c轻轻松松成功运行在各个win平台,对于我来说她:高速.小巧.便捷.听话.可定制.功能适用.调试界面友好-- 这么多的理由,让我爱她够不够?或许理由经不起推敲,但是且容我慢慢介绍嘛. 首先,我要承认,有几样活小c是做不来的: 第一,小c不能成功配置opencv2.0及以上版本. 第二,不能在直接指定命令行参数,要接受参数还需在cmd下运行. 第三,不能在不设置的情况下自动显示运

[转]Microsoft Platform SDK 选择及在vc++6.0中的配置

Windows Platform SDK Download Sites: Windows Server 2003 PSDK February 2003 Edition,可以和VC6一起使用.并支持各种目标OS的最后一个版本的SDK. This edition of the SDK supports development for the following platforms: Windows Server 2003 Windows Advanced Server, Limited Editio

ACE的构建(VC++6.0环境)

ACE的构建(VC++6.0环境)Windows下ACE的构建1. 将ACE-5.5.zip解压到所需的安装目录,此处以E:/为例,解压后形成ACE_wrappers文件夹,因此ACE将会存在于ACE_wrappers/ace目录中.ACE_ROOT=E:/ACE_wrappers.2. 在系统中新建ACE_ROOT环境变量,值设为 E:/ACE_wrappers.具体设置为:我的电脑->属性->高级->环境变量->新建3. 在E:/ACE_wrappers/ace目录中创建一个头

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type. 无效的机器类型,真的是很让人捉急. 发生这个错误的原因是,我在win8.1上安装的是64bit的mysql服务器,而我编译32位的VC程序,连接的是64位的libmysql.lib库,所以会产生 “无效的机器类型(invalid machine type)”的错误提示. 对于这个“e

VC++6.0 sqlite3 配置、测试

/************************************************************************************* * VC++6.0 sqlite3 配置.测试 * 声明: * 本文仅仅是为了测试VC++6.0中是否可以使用sqlite3数据库,主要用于完成后续的 * 一些需求. * * 2015-10-21 晴 深圳 南山平山村 曾剑锋 *************************************************