visual studio 2019创建dll项目备忘

比如我已经在vs中建立了一个叫“MFCApplication1”的MFC 项目,

再要建立一个 dll 项目,

就在“解决方案资源管理器”中的“解决方案xxx”右键,

选择“新建项目”,找到“动态链接库(DLL)”添加,

比如这里我命名为“MyFirstLib”,

这样“解决方案资源管理器”中就可以看到两个项目了,

一个MFC项目,一个DLL项目,

在MyFirstLib项目中,

“头文件”右键添加,新建项目,选择“头文件(.h)”

比如这里我新建了"MyObject.h"这个头文件,

[这里主管曾教我要把生成的头文件

放到一个专门的Include的文件夹下,

我们也来这样操作一番吧]

选中MyFirstLib项目,右键选择“在文件资源管理器中打开文件夹”,

可以看到这里有"MyObject.h"这个头文件,

返回到上一层目录,也即是MyFirstLib文件夹的同级目录,

新建“Include”文件夹,继续在里面新建MyFirstLib\Include这两层文件夹,

[这样做是因为,后面我们可能还要继续新建DLL项目,

比如我一个MFC项目下要用两套相机,需要两套Dll,

所以每个DLL项目的头文件要放到相应的文件夹下]

然后我们回到“MyFirstLib文件夹”中将"MyObject.h"这个头文件,

拷贝到 "Include\MyFirstLib\Include" 路径下,

然后回到vs中,将头文件中的"MyObject.h"右键删除,

再对头文件选项右键选择“添加-现有项目”,

找到 "Include\MyFirstLib\Include" 路径下的"MyObject.h"添加上,

在菜单栏里选择的是Debug与x64,

进入到"MyObject.h"头文件中,

添加指定导出导入的代码,

#ifdef MYOBJECT_EXPORTS
#define MYOBJECT_DLLAPI __declspec(dllexport)
#else
#define MYOBJECT_DLLAPI __declspec(dllimport)
#endif

然后选中“MyFirstLib”项目,Alt+回车打开属性,

在“C/C++”的“预处理器”中的“预处理器定义”中

添加上 MYOBJECT_EXPORTS,

这个时候看编辑环境里的高亮代码颜色,

应该是导出的代码亮了,

#define MYOBJECT_DLLAPI __declspec(dllexport)

这里多谢大佬们分享的博客,不然我也整不明白导出的代码为什么不亮,

之后就是给自己要导出的结构体、类,

添加上 MYOBJECT_DLLAPI

这个放的位置网上有很多大佬分享的博客里有讲,

比如我这里的

typedef struct MYOBJECT_DLLAPI STRU_CHANNEL_INFO
{
	char    chChanName[40];						//通道名称

	STRU_CHANNEL_INFO()
	{
		chChanName[0] = '\0';
	}

}CHANNEL_INFO, * pCHANNEL_INFO;


class MYOBJECT_DLLAPI MyObject
{
public:
	MyObject();
	~MyObject();
};

字符集什么的可能还要按需调整,生成后,

就有 MyFirstLib.dll 和 MyFirstLib.lib 生成,

还有这里在MyFirstLib的属性中,选择“生成事件”,

然后比如选择“生成后事件”,

在命令行里可以添加复制的命令xcopy,

将dll和lib文件在生成后自动复制到相应目录下,

免得我们手动复制了,

命令的话比如

xcopy /y $(OutDir)$(TargetName)$(TargetExt) $(OutDir)..\..\..\Bin\$(Configuration)_$(Platform)


//xcopy /y D:\HIK_DEV\MyProjects\HIKVideoLib\x64\Debug\HIKVideoLib.dll D:\HIK_DEV\MyProjects\HIKVideoLib\x64\Debug\..\..\..\Bin\Debug_x64

感谢主管指导与大佬们分享的博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值