1 新建MFC对话框应用程序MFCApp
2 在解决方案中右键新建项目,选择Windows桌面向导
输入项目名称MYDLL,点击创建
选择应用程序类型为动态链接库,点确定
3 在dllmain.cpp里面添加下面代码,编译此时在输出目录可以看到会生成MYDLL.dll和MYDLL.lib
__declspec(dllexport) void nothing(void);
void nothing(void)
{
}
4 在对话框项目MFCApp中添加引用
5 在MYDLL项目中右键新建类CMath
#pragma once
class __declspec(dllexport) CMath
{
public:
int Add(int a, int b);
};
#include "pch.h"
#include "CMath.h"
int CMath::Add(int a, int b)
{
return a+b;
}
6 在对话框CMFCAppDlg::OnInitialDIalog里面添加下面代码
CMath math;
int num = math.Add(5, 2);
CString str;
str.Format(_T("%d"), num);
MessageBox(str);
7 运行即可
8 如果在MYDLL中添加一个继承与CSocket的类CClientSocket
#pragma once
#include <afxsock.h>
class CClientSocket :
public CSocket
{
};
9 此时编译MYDLL时出现下面错误
10 此时修改项目属性,高级,MFC的使用为在共享dll中使用MFC
11 再次编译MYDLL,此时会出现下面的错误
12 修改项目属性,c/c++ ,预编译器,预编译器定义,删掉_USRDLL
13 再次编译MYDLL,编译通过