উত্তর:
এটি সি ++ ভাষার একটি মাইক্রোসফ্ট নির্দিষ্ট এক্সটেনশন যা আপনাকে স্টোরেজ শ্রেণীর তথ্যের সাথে কোনও ধরণের বা ফাংশনকে বিশিষ্ট করতে দেয়।
নথিপত্র
ক্যানোনিকাল উদাহরণগুলি হ'ল __declspec(dllimport)এবং __declspec(dllexport)যা লিঙ্কারকে একটি ডিএলএল থেকে বা প্রতীক আমদানি ও রফতানি করতে (যথাক্রমে) নির্দেশ দেয়।
// header
__declspec(dllimport) void foo();
// code - this calls foo() somewhere in a DLL
foo();
( __declspec(..)কেবলমাত্র মাইক্রোসফ্টের নির্দিষ্ট জিনিসগুলি গুটিয়ে রাখে - সামঞ্জস্যতা অর্জনের জন্য, কেউ সাধারণত এটি ম্যাক্রো দিয়ে মুড়িয়ে দেয়)
.libমিল খুঁজে পেয়েছেন তা প্রথম বেছে নেবে যার সাথে মিলবে রফতানি প্রতীক।
এটি বেশিরভাগ অংশীদারি লাইব্রেরিতে (ডিএলএল) প্রতীকগুলি রফতানি / রফতানি করার জন্য ব্যবহৃত হয়। উভয় ভিজ্যুয়াল সি ++ এবং জিসিসি সংকলক সমর্থন করে __declspec(dllimport)এবং __declspec(dllexport)। অন্যান্য ব্যবহার (কিছু মাইক্রোসফ্ট-কেবল) এমএসডিএন-তে নথিভুক্ত রয়েছে ।
__Declspec কীওয়ার্ডটি বর্ণনা করার জন্য আর একটি উদাহরণ :
আপনি যখন উইন্ডোজ কার্নেল ড্রাইভার লিখছেন, কখনও কখনও আপনি নিজের প্রলোগ / এপিলোগ কোড সিক্যুয়েন্সগুলি ইনলাইন এসেম্বলার কোডটি ব্যবহার করে লিখতে চান , যাতে আপনি নগ্ন বৈশিষ্ট্য সহ আপনার ফাংশনটি ঘোষণা করতে পারেন ।
__declspec( naked ) int func( formal_parameters ) {}
অথবা
#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}
পড়ুন দয়া করে নগ্ন (C ++) গুলির
মূলত, এটিই মাইক্রোসফ্ট তার সি ++ এক্সটেনশনগুলি প্রবর্তন করে যাতে তারা ভবিষ্যতে স্ট্যান্ডার্ড সি ++ এর এক্সটেনশনের সাথে বিরোধ না করে। __Declspec এর সাহায্যে আপনি কোনও ফাংশন বা শ্রেণি গুণতে পারেন; __ডেস্কস্পেকের প্রকৃতির উপর নির্ভর করে সঠিক অর্থটি পরিবর্তিত হয়। __declspec (নগ্ন), উদাহরণস্বরূপ, prolog / epilog প্রজন্মকে দমন করে (বিঘ্নিত হ্যান্ডলার, এম্বেডেবল কোড ইত্যাদির জন্য), __declspec (থ্রেড) একটি পরিবর্তনশীল থ্রেড-স্থানীয় করে তোলে ইত্যাদি।
__Declspec বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকা এমএসডিএন এ উপলব্ধ এবং সংকলক সংস্করণ এবং প্ল্যাটফর্মের দ্বারা পরিবর্তিত হয়।
GCC 4.2, যেগুলি তাদের পাশাপাশি বিকল্প প্রস্তাব __attribute__ ((dllexport))করে __declspec(dllexport), __declspecকেবল মাইক্রোসফ্ট-কেবল এক্সটেনশন কল করা কি ন্যায়সঙ্গত ?
আমি জানি এটি আট বছর কেটে গেছে তবে আমি এমআরউবিতে পাওয়া কোডের এই অংশটি ভাগ করে নিতে চেয়েছিলাম যা দেখায় যে কীভাবে __declspec()মৌমাছিটি একই স্তরে ব্যবহার করতে পারে export keyword।
/** Declare a public MRuby API function. */
#if defined(MRB_BUILD_AS_DLL)
#if defined(MRB_CORE) || defined(MRB_LIB)
# define MRB_API __declspec(dllexport)
#else
# define MRB_API __declspec(dllimport)
#endif
#else
# define MRB_API extern
#endif
__declspec(dllexport)আপনার লাইব্রেরি প্রতিটি ফাংশন সামনে