mfc调用dll

来源:互联网 发布:什么是数据库的完整性 编辑:程序博客网 时间:2024/05/17 22:41

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    ; 此处可以是显式导出TestGetMacAddGetMacDel

2.新建一个mfc程序,作为主程序来调用我们的dll(本例Main.exe):

在MainDlg.cpp中,调用dll的相关代码如下:

HINSTANCE   hInst   =   LoadLibrary(L"setup.dll");     // 加载DLLif(hInst){  // 加载成功 // 定义待访问函数原型    typedef   BOOL   (WINAPI   *MYFUNC)();       MYFUNC   fun   =   NULL;     // 获取函数地址  fun=(MYFUNC)GetProcAddress(hInst,   "GetMacDel");  if(fun)  {    // 成功    fun();  } FreeLibrary(hInst);     //释放 DLL} 






原创粉丝点击