1. 激活环境变量,path,lib,include等
运行C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>vcvars32.bat
注意观察Path, LIB,INCLUDE这几个环境变量,若这里出现异常,后面编译链接会报错
2.编写本地源程序(本文使用C语言)Math.c和Math.h
//Math.c
#define MYDLL __declspec(dllexport)
MYDLL double Add(double a, double b)
{
return a + b;
}
MYDLL double Sub(double a, double b)
{
return a - b;
}
MYDLL double Mul(double a, double b)
{
return a * b;
}
//Math.h
extern double Add(double a, double b);
extern double Sub(double a, double b);
extern double Mul(double a, double b);
3.编译DLL
cl /c Math.c //generate .obj
link -out:Math.dll /dll Math.obj //generate .dll
dumpbin -exports Math.dll //view dll content
4 编写本地调用DLL的源程序UseMathDll.c
//UseMathDll.c
#include "Math.h"
#include <stdio.h>
// int _tmain(int argc, _TCHAR* argv[]) //c++ feature
int main()
{
double result = Mul(1.0f, 5.5f);
printf ("result = %f\n",result);
return 0;
}
5 编译并链接本地DLL调用程序
//call the dll
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe" /c UseMathDll.c
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe" -out:a.exe UseMathDll.obj Math.lib
从上可以看到从UseMath.c中调用Math.dll的Add函数, 并返回结果输出。