MFC:创建dll和调用dll

来源:互联网 发布:剑网三军爷脸数据 编辑:程序博客网 时间:2024/05/29 14:29

一、创建dll文件:

1、打开VS2010,新建Win32项目,如下图所示:

2、应用程序类型,选取DLL

3、添加新类 DigitalProc,在头文件 DigitalProc.h中添加如下代码:

#ifndef DIGITALPROCl_H_#define DIGITALPROCl_H_#ifdef DIGITALDLL#define DIGITALDLL extern "C" _declspec(dllimport)#else#define DIGITALDLL extern "C" _declspec(dllexport)#endifDIGITALDLL int Add(int num1, int num2);DIGITALDLL int Minus(int num1, int num2);DIGITALDLL int Max(int num1, int num2);DIGITALDLL int Min(int num1, int num2);#endif

4、在 DigitalProc。cpp中添加如下代码:

#include "stdafx.h"int Add(int num1, int num2){    return num1 + num2;}int Minus(int num1, int num2){    return num1 - num2;}int Max(int num1, int num2){    return num1 > num2 ? num1 : num2;}int Min(int num1, int num2){    return num1 < num2 ? num1 : num2;}

5、新建模块定义文件,如下图所示:

在该文件中添加如下代码:

LIBRARY "DigitalOpera"EXPORTSAdd @1Minus @2Max @3Min @4

6、编译(会提示无法启动程序...dll,但无关紧要,文件已成功生成),生成dll和lib文件,如下图所示:


一、调用dll文件:

1、新建一个控制台程序,将DigitalOpera.dll添加到该项目的Debug目录下;

2、在主文件中添加如下代码:

#include "stdafx.h"#include <Windows.h>#include <iostream>using namespace std;typedef int (*lpAddFunc)(int, int);typedef int (*lpMinusFunc)(int, int);typedef int (*lpMaxFunc)(int, int);typedef int (*lpMinFunc)(int, int);int _tmain(int argc, _TCHAR* argv[]){    lpAddFunc addFunc;    lpMinusFunc minusFunc;    lpMaxFunc maxFunc;    lpMinFunc minFunc;    HINSTANCE hDll;    hDll = LoadLibrary("..\\Debug\\DigitalOpera.dll");    if (hDll != NULL)    {        addFunc = (lpAddFunc)GetProcAddress(hDll, "Add");        minusFunc = (lpMinusFunc)GetProcAddress(hDll, "Minus");        maxFunc = (lpMaxFunc)GetProcAddress(hDll, "Max");        minFunc = (lpMinFunc)GetProcAddress(hDll, "Min");        if (addFunc != NULL)        {            cout << addFunc(12, 35) << endl;            cout << minusFunc(12, 35) << endl;            cout << maxFunc(12, 35) << endl;            cout << minFunc(12, 35) << endl;        }    }    return 0;}

3、运行结果如下:


至此,有关dll的创建和调用过程已简单的阐述完毕。

0 0
原创粉丝点击