VC++:创建,调用Win32静态链接库

概述

DLL(Dynamic Linkable Library)动态链接库,Dll可以看作一种仓库,仓库中包含了可以直接使用的变量,函数或类。

仓库的发展史经历了"无库" ---> "静态链接库"  ---> "动态链接库"。

静态链接库与动态链接库都能实现共享代码,如果使用静态链接库,编译后lib中的指令会被包含在生成的EXE文件中,如果使用动态链接库,则不会被包含到EXE文件中,EXE文件执行时动态加载和卸载dll文件。

库的分类

1.Win32库(非MFC)库

    Win32库又分为:动态链接库和静态链接库

    Win32库不采用MFC类库结构,导出函数为标准的C接口,可以被MFC或非MFC编写的应用程序调用。

2.MFC库

    MFC库又分为:MFC规则DLL和MFC扩展DLL

    MFC规则DLL:包含一个集成自CWinApp的类,但其无消息循环。

    MFC扩展DLL:采用MFC的动态链接库创建,它只能被MFC编写的应用程序调用。

创建Win32静态链接库

使用vs2010进行创建

1.“新建项目” 项目名为"wn32lib”--->选择"Win32项目" --->下一步 勾选 "静态库",点击完成:

这时候将生成一个空的项目,创建wn32lib.cpp和wn32lib.h。

wn32lib.cpp

#include <stdio.h>

int WN_Add(int a, int b)
{
return a + b;
} int WN_Say()
{
printf("say hello \n");
return 1;
}

wn32lib.h

#ifndef _WIN32LIB_H
#define _WIN32LIB_H int WN_Add(int a, int b);
int WN_Say(); #endif

编译该项目,会在Debug目录下生成wn32lib.lib文件

VC++:创建,调用Win32静态链接库

调用Win32静态链接库

鼠标在解决方案右击  ---> "添加" ---> "新建项目",项目名称为"libTest",选择win32控制台项目

在libTest.cpp源文件中添加如下代码:

// libTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "../wn32lib/wn32lib.h" #ifdef _DEBUG
#pragma comment(lib, "../Debug/wn32lib.lib")
#else
#pragma comment(lib, "../Release/wn32lib.lib")
#endif int _tmain(int argc, _TCHAR* argv[])
{
int result = WN_Add(1, 5);
printf("result = %d\n", result);
WN_Say();
getchar();
return 0;
}

编译连接生成libTest.exe文件,执行结果如下:

VC++:创建,调用Win32静态链接库

欢迎加群交流:C/C++开发交流

VC++:创建,调用Win32静态链接库

上一篇:Signalr实时通讯


下一篇:Qt之创建并使用静态链接库