C / C ++:一个奇怪的库函数声明

时间:2015-03-30 00:18:28

标签: c++ c function

我在C / C ++库中发现了这种函数声明,我想知道是否有任何以这种方式声明函数的标准......

SOMELIBAPI( someReturnType, someLibFuncName, (int arg1, int arg2));

感谢您提供给我的任何信息!

2 个答案:

答案 0 :(得分:0)

这可能会有条件地扩展到

__declspec(dllexport) someReturnType someLibFuncName (int arg1, int arg2) 

__declspec(dllimport) someReturnType someLibFuncName (int arg1, int arg2).

这样做的原因是它允许您在DLL和客户端应用程序中使用相同的标头。这样做也是suggested by MSDN

这使问题保持​​开放,为什么使用类似函数的宏代替更简单的"正常"宏。

答案 1 :(得分:0)

他们正在使用宏来创建函数声明,可能类似于

#define SOMELIBAP(a, b, c) extern "C" a b c ;