启动Microsoft Visual Studio 2010下Visual Studio Tools的Visual Studio命令提示(2010)开启命令行界面,在界面中使用dumpbin命令可以用于查看dll的相关信息:
dumpbin -exports xx.dll ——查看.dll提供的的导出函数;
在VS2010中编译动态链接库:
1,创建Win32 控制台应用程序,设置应用程序类型为DLL,附加选项点击导出符号;
2,导出函数
// 导出变量
MYDLL_APIint nMyDll=0;
// 导出无参函数
MYDLL_APIint fnMyDll(void){
return42;
}
//导出有参函数
MYDLL_API int _stdcall MaxNumber(int x, int y){
if (x > y)
return x;
return y;
}
//导出的类CMYDLL的函数CMyDll()
CMyDll::CMyDll()
{
return;
}
在.cpp中写好函数后,还需要在头文件.h中进行声明,声明里也有相应的声明格式:
extern MYDLL_API int nMyDll;//声明导出的变量
MYDLL_API int fnMyDll(void);//声明导出的无参函数
MYDLL_API int _stdcallMaxNumber(int x, int y);//声明导出的有参函数
class MYDLL_API CMyDll {//声明的类
public:
CMyDll(void);
};
3,写一个.def的模块文件:
LIBRARY "dll名称"
EXPORTS
MaxNumber
函数名2
函数名3
...
将该.def文件放在编译的文件夹下,然后点击项目,打开属性页面,在配置属性下的链接器中,点击输入项目,在模块定义文件中添加写的.def模块文件;
4,然后点击编译即可,不过该动态库只能在安装了VS2010运行库的环境下能使用,如果想要在其他环境下也可以使用,则在工程的属性项目中配置属性下的常规选项中将MFC的使用修改为在静态库中使用MFC,不过如此编译出来的dll文件比原来的dll文件要大的多;