用vs编写dll时由于理解的不是很清楚,遇到了几个坑,写给新手,避免再次遇到同样的错误
1.新建项目时选择win32项目-dll,不要选择下图的DLL(windows应用商店应用),我就是选择了这个导致加载dll失败,getLastError有时返回4250,有时返回126,坑
2.导出dll函数可以在函数前加上__declspec(dllexport)或定义.def文件。.def文件定义方法:项目右键-添加-新建项-Visual C+±代码-模块定义文件(.def)
.def文件里编写如下内容,表示导出一个add函数:
LIBRARY dll
EXPORTS
add @1
注:用__declspec(dllexport)时编译后的函数名会变化(改为__stdcall调用时函数名也会变),而用.def文件定义函数名不会变,如果需要函数名不变,建议用.def文件定义。