• 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"头文件中,

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

    1. #ifdef MYOBJECT_EXPORTS
    2. #define MYOBJECT_DLLAPI __declspec(dllexport)
    3. #else
    4. #define MYOBJECT_DLLAPI __declspec(dllimport)
    5. #endif

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

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

    添加上 MYOBJECT_EXPORTS,

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

    应该是导出的代码亮了,

    #define MYOBJECT_DLLAPI __declspec(dllexport)

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

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

    添加上 MYOBJECT_DLLAPI

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

    比如我这里的

    1. typedef struct MYOBJECT_DLLAPI STRU_CHANNEL_INFO
    2. {
    3. char chChanName[40]; //通道名称
    4. STRU_CHANNEL_INFO()
    5. {
    6. chChanName[0] = '\0';
    7. }
    8. }CHANNEL_INFO, * pCHANNEL_INFO;
    9. class MYOBJECT_DLLAPI MyObject
    10. {
    11. public:
    12. MyObject();
    13. ~MyObject();
    14. };

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

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

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

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

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

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

    免得我们手动复制了,

    命令的话比如

    1. xcopy /y $(OutDir)$(TargetName)$(TargetExt) $(OutDir)..\..\..\Bin\$(Configuration)_$(Platform)
    2. //xcopy /y D:\HIK_DEV\MyProjects\HIKVideoLib\x64\Debug\HIKVideoLib.dll D:\HIK_DEV\MyProjects\HIKVideoLib\x64\Debug\..\..\..\Bin\Debug_x64

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

  • 相关阅读:
    微型计算机的组成
    适用于电脑和手机的照片恢复工具指南
    第55章 业务逻辑之订单、支付实体定义
    vscode调试react 最初的源码
    Git和Gitee的区别
    Wireshark TS | 网络路径不一致传输丢包问题
    软考中级-软件设计师-第2章 计算机组成与体系结构
    今天给在家介绍一篇健身俱乐部信息管理系统设计与实现
    微信公众号分销商城源码系统+多元商家+收银台 带完整的搭建教程
    【Android进阶】7、Android各SDK版本的区别与兼容
  • 原文地址:https://blog.csdn.net/sdaujz/article/details/126800865