C++ class NSTANDARD_API NWaitObject

来源:百度知道 编辑:UC知道 时间:2024/06/09 23:57:55
class NSTANDARD_API NWaitObject 像这样定义类是什么意思啊

NSTANDARD_API NWait就是个类名而已。
class NSTANDARD_API NWaitObject 与class x 没有本质的区别。
谁知道你看什么书这么变态,一个类名定义这么长。
我从字面上看不出是什么意思。API是应用程序接口的意思。
wait:等待,object :物体,对象。

查一下windowsapi函数,看看可有接近的。微软公司的变量定义都ta ma de 这么长

这是一个常用的库接口声明方法, 大多数的库都会使用这个方法来定义接口的, 而多数它可能会是以下的形式:

#define DLL_IMPORT __declspec(dllimport)
#define DLL_EXPORT __declspec(dllexport)

#ifdef BUILD_AS_DLL // 如果定义, 则说明库要被编译成 DLL, 否则为 LIB
#ifdef YOURLIB // 自定义的宏, 对于库内部源代码总是定义的
#define YOURLIB_API DLL_EXPORT // 对于库内部来说, 接口是要导出的
#else
#define YOURLIB_API DLL_IMPORT // 对于库外部(使用方)来说, 接口是导入的
#else // BUILD_AS_DLL
#define YOURLIB_API // 对于静态库(LIB), 没有导入导出的说道
#endif // BUILD_AS_DLL

最后你可以这样使用:

定义对外的类:
class YOULIB_API yourlib_class { ... };

定义对外的函数:
YOURLIB_API void yourlib_initial(void);

定义对外的变量:
YOURLIB_API int g_version;

这样做的目的是使你的源代码的适用范库更大(LIB, DLL), 增加可配置