Sunday 15 April 2012

'#define AP_MODULE_DECLARE(type) type' in C/C++ -


क्यों करता अपाचे स्रोत:

  #define AP_MODULE_DECLARE (प्रकार) टाइप   

क्या का उपयोग कर, उदाहरण के लिए, इस रूप का फायदा है:

  AP_CORE_DECLARE (शून्य) ap_add_per_dir_conf (server_rec * रों, शून्य * dir_config); `  

बनाम

  शून्य ap_add_per_dir_conf (server_rec * रों, शून्य * dir_config);  

धन्यवाद।

ध्यान दें कि अन्य परिभाषाओं उन लोगों के लिए संभव हो रहे हैं मैक्रो। में शामिल / ap_config.h निम्न है (मेरे द्वारा जोड़े गए कुछ इंडेंटेशन के साथ):

  #if! परिभाषित (WIN32) || परिभाषित (AP_MODULE_DECLARE_STATIC) ... # परिभाषित (Win32) # AP_MODULE_DECLARE (प्रकार) टाइप __stdcall # बाकी # परिभाषित AP_MODULE_DECLARE (प्रकार) को परिभाषित करता है, तो टाइप करें # endif ... #else ... # परिभाषित AP_MODULE_DECLARE (प्रकार) __declspec (dllexport) टाइप __stdcall ... #endif  

यहां, AP_MODULE_DECLARE __ stdcall (जो निर्दिष्ट करता है एक विशेष बुला सम्मेलन) जोड़ सकते हैं और करने के लिए प्रयोग किया जाता है / या __ डिक्स्स्पीक (डलेक्सपोर्ट) (जो साझा लाइब्रेरी के इंटरफेस के भाग के रूप में फ़ंक्शन निर्यात करने से संबंधित है)।

ध्यान दें कि उदा। यदि एपी_MODULE_DECLARE_STATIC परिभाषित किया गया है तो __ डीसीएसपीसी (डलेक्सपोर्ट) जोड़ नहीं किया जाएगा। मेरा अनुमान (जो पूरी तरह से सटीक नहीं हो सकता है क्योंकि मैं इस कोड से परिचित नहीं हूं) यह है कि यह एक स्थैतिक पुस्तकालय के रूप में एक मॉड्यूल को जोड़ने से संबंधित है, जिस स्थिति में __ डीक्स्पीप (डलेक्सपोर्ट) नहीं बनायेगा अर्थ है।

अगर आप सोच रहे हैं कि उस फ़ाइल की टिप्पणियों में "dso" क्या है, तो यह गतिशील साझा ऑब्जेक्ट के लिए है यह मूलतः एक साझा लाइब्रेरी है, हालांकि अपाचे को साझा लाइब्रेरी उन चीज़ों के लिए आरक्षित किया जाता है जो रनटाइम पर dlopen (3) का उपयोग करके लोड नहीं किए जाते हैं।


No comments:

Post a Comment