先看代
码
:
以下是在
dev-c++
里建立自已的
dll
时
的
dll.h
里面的代
码
,
这
里面有一个
:_declspec(dllexport)
#ifndef _DLL_H_
#define _DLL_H_// 防重 复 定 义
#define _DLL_H_// 防重 复 定 义
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
DLLIMPORT void HelloWorld (void);
#endif /* _DLL_H_ */
上面代
码
里面的
_delcspce(dllexport)
被定
义为
宏
,
这样
可以提高程序的可
读
性
!
这
个的作是是将
函数定
义为导
出函数
,
也就是
说这
个函数要被包含
这
个函数的程序之外的程序
调
用
!
本
语
句中就是
:void Helloword(void):
摘自
msdn:
在
32
位
编译
器版本中,可以使用
__declspec(dllexport)
关键
字从
DLL
导
出数据、函数、
类
或
类
成
员
函数。
__declspec(dllexport)
将
导
出指令添加到
对
象文件,
若要
导
出函数,
__declspec(dllexport)
关键
字必
须
出
现
在
调
用
约
定
关键
字的左
边
(如果指定了
关键
字)。
例如:
__declspec(dllexport) void __cdecl Function1(void);
若要
导
出
类
中的所有公共数据成
员
和成
员
函数,
关键
字必
须
出
现
在
类
名的左
边
,如下所示:
class __declspec(dllexport) CExampleExport : public CObject
{ ... class definition ... };
生成
DLL
时
,通常
创
建一个包含正在
导
出的函数原型和
/
或
类
的
头
文件,并将
__declspec(dllexport)
添加到
头
文件中的声明。若要提高代
码
的可
读
性,
请为
__declspec(dllexport)
定
义
一个宏并
对
正在
导
出的
每
个符号使用
该
宏:
#define DllExport __declspec( dllexport )
__declspec(dllexport)
将函数名存
储
在
DLL
的
导
出表中。如果希望
优
化表的大小