DLL导出及调用方法

本文详细介绍了如何在C++中导出DLL函数并进行静态与动态调用。通过示例代码展示了两种方法,包括使用预处理器定义和.def文件来实现DLL的创建与调用。内容涵盖__declspec属性、LoadLibrary、GetProcAddress等关键API的使用。
摘要由CSDN通过智能技术生成

方法一:
sample.h
#ifdef SAMPLEDLL_EXPORT
#define DLL_API extern “C” __declspec(dllexport)
#else
#define DLL_API extern “C” __declspec(dllimport)
#endif
DLL_API int __stdcall add(int a, int b);
DLL_API int __stdcall sub(int a, int b);

sample.cpp
#define SIMPLEDLL_EXPORT
#include “sample.h”
int __stdcall add(int a, int b)
{
return a + b;
}
int __stdcall sub(int a, int b)
{
return a - b;
}

静态(隐式)调用
dlltest.cpp
#include"sample.h"
#pragram comment(lib, “sample.lib”)
void main()
{
int a, b;
a = add(10, 8);
b = sub(10, 8);
}

动态(显式)调用
typedef int(__stdcall *pADD)(int a, int b);
typedef int(__stdcall *pSUB)(int a, int b);
HINSTANCE hDll = LoadLibrary(“sample.dll”);
if (hDll == NULL)
{
AfxMessageBox(“error”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值