读书人

小弟我想问一下

发布时间: 2012-03-13 11:21:11 作者: rapoo

我想问一下
class a b{....};这里面a是宏定义,b是类名,这样的句子有什么用啊?

[解决办法]
class a b{....};这里面a是宏定义,b是类名,这样的句子有什么用啊?
===>
以VC为例, 这里一般用在建立动态连接库(dll)时.
在dll内部, a有一种定义;
在其他使用该dll的程序中, a有另一种定义.


以你的ZFunc为例, 假设ZFunc是库zfun.dll提供的类,
则在zfun.h中可能定义PLANNING_API如下:

#if defined(PLANNING_DLL_EXPORTS)
#define PLANNING_API __declspec(dllexport)
#else
#define PLANNING_API __declspec(dllimport)
#endif

在建立zfun.dll时, 定义宏PLANNING_DLL_EXPORTS.
而在使用zfun.dll时, 不定义宏PLANNING_DLL_EXPORTS.

这样同一个头文件zfun.h既可以提供给zfun.dll创建时用,
又可以提供给其他调用zfun.dll的的程序使用.

至于__declspec(dllexport) / __declspec(dllimport), 以及与dll有关
的知识, 自己google以下, 或者查msdn吧.:)

读书人网 >C++

热点推荐