MFC加载动态链接库方法
Posted 郑军学长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC加载动态链接库方法相关的知识,希望对你有一定的参考价值。
1、LoadDll.cpp
1 #include "StdAfx.h"
2 #include "LoadDLL.h"
3
4 pMFCCallBackDll DLL_MFCCallBackDll;
5
6 HINSTANCE g_Hinstance; //实例句柄
7
8 //加载DLL
9 BOOL LoadDll(char *name)
10 {
11 //char name[200] = {""}; //DLL名字存放,且,最大长度为50 /*------------这里-----------------*/
12 //g_Hinstance = LoadLibrary(name);
13 if(g_Hinstance != NULL) return TRUE; //如果g_Hinstance不为空就返回
14
15 //name = {""};
16 //memset(name, 0, sizeof(char)*200); //清空数组 /*------------这里-----------------*/
17 //g_Hinstance = LoadLibrary(name);
18 DLL_MFCCallBackDll = NULL;
19
20 //sprintf(name,"C://Users//Administrator//Desktop//ZJDLLV1.0.3.dll");/*------------这里-----------------*/
21 g_Hinstance = LoadLibrary(name);
22 if(g_Hinstance == NULL)
23 {
24 AfxMessageBox("加载dll动态库失败!");
25 return FALSE;
26 }
27
28 DLL_MFCCallBackDll = (pMFCCallBackDll)GetProcAddress(g_Hinstance, "ZJY_我的");
29 if(NULL == DLL_MFCCallBackDll)
30 {
31 AfxMessageBox("加载动态库MFCCallBackDllTest函数失败");
32 FreeLibrary(g_Hinstance);
33 g_Hinstance = NULL;
34 return FALSE;
35 }
36 return TRUE;
37 }
38
39 //卸载DLL
40 void QuitDll()
41 {
42 if (g_Hinstance != NULL)
43 {
44 DLL_MFCCallBackDll = NULL;
45 FreeLibrary(g_Hinstance);
46 g_Hinstance = NULL;
47 }
48 }
2、LoadDll.h
1 #ifndef __MFCCLOADDLL_H
2 #define __MFCCLOADDLL_H
3
4 #include <windows.h>
5
6 BOOL LoadDll(char *name); //加载DLL
7 void QuitDll(); //卸载DLL
8
9 typedef WORD (WINAPI *pMFCCallBackDll)(WORD a); //返回cahr *
10
11 extern pMFCCallBackDll DLL_MFCCallBackDll; //外部定义
12
13 #endif //__MFCCLOADDLL_H
3、调用主界面
1 // testDllDlg.cpp : 实现文件
2 //
3
4 #include "stdafx.h"
5 #include "testDll.h"
6 #include "testDllDlg.h"
7 #include "afxdialogex.h"
8 #include "LoadDLL.h"
9
10 ******
11 ******
12 /*这里是原来默认代码*/
13 ******
14 ******
15
16
17 void CtestDllDlg::OnBnClickedOk()
18 {
19 WORD reslut = DLL_MFCCallBackDll(1);
20
21 if(reslut == 1)
22 {
23 AfxMessageBox("软件可正常使用!");
24 }
25 else if(reslut == 0)
26 {
27 AfxMessageBox("软件已过期!");
28 }
29 }
以上是关于MFC加载动态链接库方法的主要内容,如果未能解决你的问题,请参考以下文章