1.右键项目添加->win32项目->选择dll或者lib就行
2.仅生成dll而没有lib,是因为缺少def文件的原因
解决方式:右键添加->新建项->选模块定义文件(.def)就行
3.dll文件中lib的生成
解决方式:打开工程属性,选择【Link】-【Advanced】-【Import libraries】设置即可。
4.warning C4273: ****.dll链接不一致
方法1: 选择项目->属性->预处理器->预处理定义, 增加:HYCOMMONWINAPI_EXPORTS
方法2:
就是在
#ifdef HYCOMMONWINAPI_EXPORTS
#define HYCOMMONWINAPI_API __declspec(dllexport)
#else
#define HYCOMMONWINAPI_API __declspec(dllimport)
#endif
前面增加 #define HYCOMMONWINAPI_EXPORTS
其实这两种方法都是增加定义
方法3:在你的dll cpp文件中把
#define HYCOMMONWINAPI_EXPORTS
加在#include <接口文件.h>
的前面
方法4:右击dll工程 -- 属性,打开属性页,展开:配置属性 -- C++ --预处理器,在预处理器定义的最后面填入:_AFXEXT,再次编译则搞掂。
5.错误warning MSB8004: Output Directory does not end with a trailing slash.
5.afxdll错误
实际使用的时候注意的地方:
(1)使用的函数一定要定义为到处函数,否则会出现无法解析的问题。
(2)在写dll的使用外部接口不要使用stl的东西,包括函数的参数以及返回值,不然会出现一些奇怪的问题 。