माइक्रोसॉफ्ट दुनिया में, __declspec(dllexport)
डीएलएल के बाहर से एक फ़ंक्शन या क्लास कॉल करने योग्य बनाता है।
जब आप डीएलएल बनाते हैं, डिफ़ॉल्ट रूप से, डीएलएल के भीतर परिभाषित कोई भी कार्य केवल उसी डीएलएल से कॉल करने योग्य होता है। आप उस फ़ंक्शन को निष्पादन योग्य या एक अलग DLL से कॉल नहीं कर सकते हैं।
यदि आप चाहते हैं कि आपका फ़ंक्शन डीएलएल के बाहर से बुलाया जाए, तो आपको इसे __declspec(dllexport)
जोड़कर निर्यात करना होगा।
इसके बारे में सोचने का एक तरीका यह है कि __declspec(dllexport)
एक डीएलएल के सार्वजनिक इंटरफ़ेस का हिस्सा होने के रूप में एक फ़ंक्शन को चिह्नित करता है।
जबकि आपने __declspec(dllimport)
के बारे में नहीं पूछा था, तो यह विपरीत है। एक अलग डीएलएल में फ़ंक्शन को कॉल करते समय, आपके डीएलएल को यह पता होना चाहिए कि यह एक अलग डीएलएल के सार्वजनिक इंटरफ़ेस का हिस्सा है, इसलिए यह कॉल को सही तरीके से संभाल सकता है (एक अलग डीएलएल में फ़ंक्शन को कॉल करने के लिए अधिक जटिल कोड की आवश्यकता होती है जो आपके लिए फ़ंक्शन को कॉल करती है)।
स्रोत
2010-02-20 08:17:43
@ दीपक: 'स्टैक ओवरफ्लो' में आपका स्वागत है! मैंने आपका कोड स्वरूपित किया है (इसे चुनें और Ctrl + K दबाएं)। –