OpenNI中的很多函数返回如下:
XN_C_API XnInt32 XN_C_DECL xnVersionCompare (const XnVersion *pVersion1, const XnVersion *pVersion2)
我现在想要的是什么是XN_C_API和XN_C_DECL。 只是好奇!
答案 0 :(得分:4)
这与返回值无关。在没有查看源代码的情况下,我怀疑在编译Windows时:
XN_C_API
被定义为__declspec(dllexport)
或__declspec(dllimport)
,具体取决于您是编译DLL还是从中导入函数。
XN_C_DECL
被定义为该函数所需的calling convention(可能是__stdcall
或__cdecl
)
答案 1 :(得分:0)
如果没有查看定义,我猜:
XN_C_API
实际上是extern "C"
,因此可以从C ++调用C函数。
XN_C_DECL
处理Windows强加的调用约定和导出/导入问题。可能是__declspec(ddlexport)
或__declspec(dllimport)
,可能包含__stdcall
等,也可能会担心FAR
等(但可能不再需要)。< / p>