zoukankan      html  css  js  c++  java
  • VC2010 编写DLL并调用;

    一  、 新建DLL项目

    文件- 新项目-win32控制台

    应用类型选择DLL,附件选项 选择导出符号 建立了 dllapp项目。

    在DLLapp.h  添加DLLAPP_API int Max(int a ,int b );

    // 下列 ifdef 块是创建使从 DLL 导出更简单的
    // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLLAPP_EXPORTS
    // 符号编译的。在使用此 DLL 的
    // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
    // DLLAPP_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
    // 符号视为是被导出的。
    #ifdef DLLAPP_EXPORTS
    #define DLLAPP_API __declspec(dllexport)
    #else
    #define DLLAPP_API __declspec(dllimport)
    #endif

    // 此类是从 dllapp.dll 导出的
    class DLLAPP_API Cdllapp {
    public:
        Cdllapp(void);
        // TODO: 在此添加您的方法。
        int Max(int a ,int b );
    };

    extern DLLAPP_API int ndllapp;

    DLLAPP_API int fndllapp(void);
    DLLAPP_API int Max(int a ,int b );

    在dllapp中添加函数

    DLLAPP_API int Max(int a ,int b )
    {
     if (a>b)return a;
     else return b;
       
    }

    // dllapp.cpp : 定义 DLL 应用程序的导出函数。
    //

    #include "stdafx.h"
    #include "dllapp.h"


    // 这是导出变量的一个示例
    DLLAPP_API int ndllapp=0;

    // 这是导出函数的一个示例。
    DLLAPP_API int fndllapp(void)
    {
        return 42;
    }
    DLLAPP_API int Max(int a ,int b )
    {
        if (a>b)return a;
        else return b;
        
    }
    // 这是已导出类的构造函数。
    // 有关类定义的信息,请参阅 dllapp.h
    Cdllapp::Cdllapp()
    {
        return;
    }

    编译通过后找到生成的 lib 和 dll文件

    新建一个项目来使用这个dllapp.MAX(int ,int )函数

    LINKER 输入中添加 dllapp.lib

    VC++目录添加 include 、lib等路径和调用其他DLL一样,系统PATH 添加dllapp.dll 路径

  • 相关阅读:
    7月23日 R进行层次聚类算法的继续完善
    明天学习的内容
    MySql快速导出为excel文件
    数据挖掘的隐私边界 【转自《中欧商业评论》】
    【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
    7月20日下一步工作
    R对term进行kmeans聚类完整实例(tm包)
    数学之美 系列一 统计语言模型
    7月30日总结
    MathType输入Support 自动分开的问题
  • 原文地址:https://www.cnblogs.com/cndavy/p/2544687.html
Copyright © 2011-2022 走看看