zoukankan      html  css  js  c++  java
  • 关于MFC的DLL调用方法问题

     参考资料:

    一、dll导出方式:

    MFC的DLL函数导出方法有两种:一种是通过模块定义文件DEF文件;另一种是在导出函数前加_declspec(dllexport)。

    1.def文件方法:

    只需要在EXPORTS后写上要导出的函数名称即可。

    优点:导出函数名称在编译后不会发生改变,适合与VB、c等其他语言调用。

    2._declspec(dllexport)方法:

    在导出函数前添加,但是函数名称会发生改变,如果不想要改变,在其前面添加extern "C",表示按C方式导出;

    即:extern "C" _declspec(dllexport) void funcname(void);

    缺点:extern表示全局,“C”表示按c语言方式编译,这种方法只能导出全局函数。

    二、导出全局变量,类静态变量

    此时客户端必须有_declspec(dllimport)声明

    一种简单的方法:

    1.#ifdef _EXPORT

    #define EXPORT_DLL extern "C" _declspec(dllexport)

    #else

    #define EXPORT_DLL extern "C" _declspec(dllimport)

    #endif

    将这段话写在dll导出函数的.h文件中,并在预处理器中定义_EXPORT即可。因为客户端也要包含该.h文件,所以对客户端也是有作用的。

  • 相关阅读:
    Docker的使用
    Django常见问题
    Linux系统使用
    Nginx
    Redis
    MySQL基础、主从复制、优化
    Python常见的问题
    Python基础知识
    Vue的使用
    python监控tomcat日记文件
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8686279.html
Copyright © 2011-2022 走看看