关于VS2010下生成lib和dll,并使用的过程

首先要准备好.h和.cpp文件

(一)lib

新建VS2010项目,注意选择Win32项目,而不是MFC DLL项目。MFC DLL 和win32 DLL的差别就是一个使用MFC类库,一个不使用如果你代码中用到了MFC,那么一定要创建MFC DLL,因为win32 DLL用不了MFC类。

下一步,最好不要选预编译选项!选预编译头的话,就在.cpp文件中添加 #include "StdAfx.h"

关于VS2010下生成lib和dll,并使用的过程

然后添加进来.h和.cpp文件,就可以直接点生成解决方案了。别点调试,因为没有入口函数。这里要注意你生成lib的项目配置属性要和你使用此lib的项目配置属性要保持一致 。将.h文件和生成的lib文件拷到你的项目中并添加,就可以使用了。

关于VS2010下生成lib和dll,并使用的过程

若出现错误error LNK2005: ___xi_a 已经在 msvcrt.lib(cinitexe.obj) 中定义,解决办法:属性::C++::运行时库,确保该项目和所引用的所有的库都是相同的选项,如release版本时都选择"多线程dll"

(二)dll

创建Win32项目(同上),下一步

关于VS2010下生成lib和dll,并使用的过程

添加.h和.cpp文件,然后修改项目配置属性如下,

关于VS2010下生成lib和dll,并使用的过程

然后修改主要的.h文件和.cpp文件

在.h文件的头部添加:

  1. #ifndef _DLL_API
  2. #define _DLL_API _declspec(dllexport)
  3. #else
  4. #define _DLL_API _declspec(dllimport)
  5. #endif
然后在.h中声明的函数之前加上 _DLL_API ,在.cpp中定义的函数之前加上 _DLL_API(好像也可以不加)

然后生成解决方案。调用的时候需要的是.h文件、Debug文件夹下的.dll文件.lib文件

在工程中调用dll和lib成功。

参考:

https://blog.****.net/lihuajie1003/article/details/52571424


https://www.cnblogs.com/LuckyAnnika/p/5008511.html
  1. #ifndef _DLL_API
  2. #define _DLL_API _declspec(dllexport)
  3. #else
  4. #define _DLL_API _declspec(dllimport)
  5. #endif