DLL的静态和动态通讯(C++)

本文介绍了DLL导出函数的创建以及静态库和动态库的概念。静态库在编译时链接,代码全部加载,运行独立,但可能导致空间浪费;动态库则在运行时加载,节省空间,多个应用可共享。静态通讯需将库文件.lib复制到解决方案文件夹,动态通讯需确保dll文件与.exe文件在同一位置。
摘要由CSDN通过智能技术生成

DLL导出函数

在创建DLL文件,设置一个函数为导出函数,作供外界使用的接口

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "stdafx.h"

// extern "C" 为了能够正确实现C++代码调用其他C语言代码,加上此代码后,会让编译器把这部分代码按C语言进行编译,防止函数名被修改,并告诉编译器这个变量或函数定义在其他模块中,应去其他模块寻找此变量或函数。
// 此函数如果有参数则添加相同的形参类型和名字,如果没有则不添加
// __declspec(dllexport) 将此函数导出供外界作为接口使用,如果没有,则不会将该函数视为DLL接口的一部分
extern "C" __declspec(dllexport) void 导出函数名();

// 用作导出的函数
void 导出函数名() {
	// 弹出框,加载应用程序时被调用,参数为(句柄可以为NULL,弹出框内容const char*,标题const char*,按钮类型这里弹出按钮Y/N)
	// 由于输入的是String,所以需要修改字符集为多字节,否则报错
	MessageBox(NULL,"导出函数被调用成功!","信息:",MB_YESNO);
}
 
//核心入口函数   DLL文件 动态链接库入口函数
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    cas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值