创建一个win32项目,名称为dll1.首先建立头文件dll_test.h
#pragma once
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#define MYDLL_API __declspec(dllimport)
#endif
namespace MathFuncs
{
extern "C" MYDLL_API double Add(double a, double b);
extern "C" MYDLL_API double Mul(double x, double y);
}
创建dll_test.cpp
#include "dll_test.h"
#include <iostream>
using namespace std;
namespace MathFuncs
{
double Add(double a, double b)
{
cout << "a+b=" << a + b << endl;
return a + b;
}
double Mul(double x, double y)
{
cout << "x*y=" << x*y << endl;
return x*y;
}
}
点击生成解决方案后,生成相应的dll和lib文件,新建一个调用dll的项目,用于测试,最简单粗暴的办法就是把生成的dll和lib还有dll_test.h这三个文件放到新建的项目中
#include <iostream>
#include"dll_test.h"
#pragma comment(lib, "dll1.lib")
using namespace std;
using namespace MathFuncs;
int main()
{
double a = 2, b = 3,x=10,y=9;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "x=" << x << endl;
cout << "y=" << y << endl;
double t1=Add(2, 3);
double t2=Mul(10, 9);
return 0;
}
输出如下: