一 、 新建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 );
// 宏的标准方法。此 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;
}
//
#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 路径