应用程序与DLL导出函数的“静态库”通讯
一、什么是“静态库”
静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件。在链接步骤中,连接器将从库文件或有所需的代码,复制到生成的可执行文件中的这种库。
例如创建带有导出函数的dll文件,其中这个lib文件就是库文件。
程序编译一般需经预处理、编译、汇编和链接几个步骤,静态库特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝,浪费内存。
静态库和动态库是两种共享程序代码的方式。它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。
继续在Dll1.dll文件里的dllmain.cpp中添加函数:
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
//声明导出函数->把这个ccc函数导出去
extern "C" __declspec(dllexport) void ccc();
//用作导出的函数
void ccc() {
MessageBox(NULL,"导出函数被调用成功ÿ