2012-03-07 54 views
0

很多O功能在OpenNI回報這樣的:.cpp的回報好奇心

XN_C_API XnInt32 XN_C_DECL xnVersionCompare (const XnVersion *pVersion1, const XnVersion *pVersion2) 

我想現在的XN_C_API和XN_C_DECL。 只是好奇心!

+1

在標題或文檔中查看它們嗎?使用網絡搜索? ...或者是關於這裏的語法的問題? ... – 0xC0000022L 2012-03-07 19:31:10

回答

4

這與返回值沒有任何關係。不看來源,我懷疑的Windows編譯時:

  • XN_C_API被定義爲任何__declspec(dllexport)__declspec(dllimport)這取決於你編譯DLL或它的導入功能。

  • XN_C_DECL被定義爲預期的calling convention的功能(可能__stdcall__cdecl

0

,而不必看着的定義,我猜想:

  • XN_C_API是有效用於C++編譯器的extern "C",以便可以從C++調用C函數。

  • XN_C_DECL處理由Windows施加的調用約定和導出/導入問題。這可能是__declspec(ddlexport)__declspec(dllimport),它可能包括__stdcall等,也可能擔心FAR等(但可能不需要更多)。