1 新建DLL项目MYDLL
2 创建类CMyOP,修改类为导出类
#pragma once
class __declspec(dllexport) CMyOP
{
public:
int Add(int a, int b);
};
#include "pch.h"
#include "CMyOP.h"
int CMyOP::Add(int a, int b)
{
return a + b;
}
3 编译后生成dll和lib
4 创建新的DLL项目MYInvokeDLL
5 拷贝上面的dll和lib到cpp同级目录
6 为项目链接器添加依赖项MYDLL.lib
7 添加导出函数
extern "C" __declspec(dllexport) int Add(int a, int b)
{
CMyOP op;
return op.Add(3, 2);
}
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include "../../MYDLL/MYDLL/CMyOP.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
extern "C" __declspec(dllexport) int Add(int a, int b)
{
CMyOP op;
return op.Add(3, 2);
}
8 编译生成dll lib
9 再新建一个控制台项目MYInvokeDLLTEST
将上面生成的MYInvokeDLL.dll,MYInvokeDLL.lib拷贝到cpp同级目录下
10 修改代码添加导入函数,并在main里面调用
// MYInvokeDLLTEST.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
extern "C" __declspec(dllimport) int Add(int a, int b);
int main()
{
std::cout << "Hello World!\n";
int t = Add(3, 2);
}
11 此时运行时候会提示找不到MYDLL.dll
12 将MYDLL.dll也拷贝到cpp同级目录
13 运行