_declspec(dllexport) 导出符号到 dll,或者使用 模块定义文件

使用 cl 进行编译:

cl /LDd Math.c

/LDd 表示产生 Debug 版的 dll,/LD 生成 release 版

通个 dumpbin 查看 dll 的导出符号

dumpbin /EXPORTS Math.dll

__declspec(dllimport) 声明某一个符号是导入符号

cl /c TestMath.c
link TestMath.obj Math.lib

在静态链接的时候,.lib 是一组目标文件的集合(.a),在动态链接里仍是这样,但是不含有真正的 Math.c 的代码和数据,而是用来描述 Math.dll 的导出符号的“胶水代码”