1.新建一个dll工程(本例setup.dll)
在setup.h中,添加暴露给外部的接口名称:
// setup.h : setup DLL 的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif
#include "resource.h" // 主符号
#define DLL_EXPORT __declspec(dllexport)
__declspec(dllimport) void GetMacAdd();//接口名称
__declspec(dllimport) void GetMacDel();//接口名称
在setup.cpp中,实现接口方法:
// setup.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include "setup.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
__declspec(dllexport) void GetMacAdd()
{
//AfxMessageBox(L"add");
return;
}
__declspec(dllexport) void GetMacDel()
{
//AfxMessageBox(L"del");
return;
}
在setup.def中,声明一下供外部调用的方法
; setup.def : 声明 DLL 的模块参数。
LIBRARY "setup"
EXPORTS
; 此处可以是显式导出
Test
GetMacAdd
GetMacDel
2.新建一个mfc程序,作为主程序来调用我们的dll(本例Main.exe):
在MainDlg.cpp中,调用dll的相关代码如下:
HINSTANCE hInst = LoadLibrary(L"setup.dll"); // 加载DLL
if(hInst)
{
// 加载成功
// 定义待访问函数原型
typedef BOOL (WINAPI *MYFUNC)();
MYFUNC fun = NULL;
// 获取函数地址
fun=(MYFUNC)GetProcAddress(hInst, "GetMacDel");
if(fun)
{
// 成功
fun();
}
FreeLibrary(hInst); //释放 DLL
}