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 路径

原文地址:https://www.cnblogs.com/cndavy/p/2544687.html