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

C/C++ : A weird library function declaration

本文关键字:一个 声明 库函数 C++      更新时间:2023-10-16

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

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

谢谢你能给我的任何信息!

这可能有条件地扩展到任一

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

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

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

然而,这留下了一个悬而未决的问题,为什么使用类似函数的宏而不是更简单的"宏";正常的";宏。

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

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