zoukankan      html  css  js  c++  java
  • MFC实现普通DLL

    库有两种:动态链接库和静态链接库。

    一,使用动态链接库:

    通过项目——属性——配置属性——常规——项目默认值——配置类型下,选择动态库(.dll)选项

    这样会生成.lib和.dll两种文件。

    只是该.lib文件不包含程序实现文件,只包含函数入口信息,因此必须与对于生成的.dll文件配套使用。

    使用时又分为静态链接和动态链接。

    静态链接需要.h、.lib、.dll三种文件,使用时导入这三个文件即可。

    动态链接只需要.dll文件,使用时通过LoadLibrary加载获取函数入口地址。

    二、使用静态链接库:

    通过项目——属性——配置属性——常规——项目默认值——配置类型下,选择静态链接库(.lib)选项

    这样只生成.lib文件。

    该lib文件不仅包含程序入口地址,也包含程序实现代码,与上面的.lib文件是不一样的。

    使用时只需要.h,.lib文件即可。

    参考文献:https://blog.csdn.net/piaoxuezhong/article/details/64127436

    扩展dll生成DllMain()函数,这是与非扩展dll的区别:

    三、MFC扩展DLL导出类

    1.在dll类名前面添加AFX_EXT_CLASS;

    2.将生成的dll文件放在调用类的当前目录中

    3.包含进.h文件和生成的.lib文件。

    注意:不需要再添加_AFXEXT预处理器,也不需要添加项目依赖项。

    四、MFC扩展类导出全局变量

    1.在.cpp中定义全局变量:int a=5;

    2.在.h头文件中声明其为全局变量:extern AFX_EXT_DATA int a;

    3.剩下的就和导出类2,3步一样了。

    五、MFC扩展类导出全局函数

    1.在函数前面添加AFX_EXPORT就可以了,如:AFX_EXPORT void show();

    全体注意:上面三个宏AFX_EXT_CLASS、AFX_EXT_DATA、AFX_EXPORT都可以用__declspec(dllexport)替换,已经验证过了。

    所有的过程没有用到dllimport这个关键词,不用再有这个思维误区了。

  • 相关阅读:
    var_threshold
    一些动态绑定数据代码
    直线与圆的拟合测量
    圆的拟合__测量圆心距
    halcon骨架与xld的区分
    dyn_threshold
    模板匹配加测量Demo
    ToString 格式
    S7-200 运动控制
    环形图片识别
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8948005.html
Copyright © 2011-2022 走看看