逆向基础学习 应用程序与DLL导出函数的通讯方法

本文介绍了应用程序与DLL通过静态库进行通讯的方法。首先,解释了静态库的概念,它是将公共代码编译成库文件,在链接阶段复制到可执行文件中。接着,讨论了静态库与动态库的区别,强调静态库会增加可执行文件大小。然后,展示了在DLL中添加函数并处理字符编码问题的步骤。最后,详细说明了如何连接使用静态库,包括#pragma comment的用法,并提醒在运行时需要DLL文件。
摘要由CSDN通过智能技术生成

应用程序与DLL导出函数的“静态库”通讯

一、什么是“静态库”

静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件。在链接步骤中,连接器将从库文件或有所需的代码,复制到生成的可执行文件中的这种库。

例如创建带有导出函数的dll文件,其中这个lib文件就是库文件。

 程序编译一般需经预处理、编译、汇编和链接几个步骤,静态库特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝,浪费内存。

静态库和动态库是两种共享程序代码的方式。它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。

继续在Dll1.dll文件里的dllmain.cpp中添加函数:

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"
//声明导出函数->把这个ccc函数导出去
extern "C" __declspec(dllexport) void ccc();
//用作导出的函数
void ccc() {
	MessageBox(NULL,"导出函数被调用成功ÿ
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值