মাইক্রোসফ্ট কেবলমাত্র একটি সি ++ সিস্টেম তৈরি করত যা আপনাকে তাদের উইন্ডোজ এপিআই (উইন 32 নামে পরিচিত) অ্যাক্সেস করতে দেয়, তারপরে একদিন তারা আবিষ্কার করে N
সুতরাং তারা "সি ++ এর জন্য পরিচালিত এক্সটেনশানস" তৈরি করেছিলেন যা মূলত সি ++ ছিল তবে মান-বহির্ভূত এক্সটেনশনের লোড সহ, কীটওয়ার্ডগুলি যোগ __gc
করতে পছন্দ করে। নেট বৈশিষ্ট্যগুলি (নেটিভের তুলনায় জিসির হ্যাপে বরাদ্দ দেওয়ার মতো)
তবে লোকেরা এটি পছন্দ করে না কারণ এটি সমস্ত অতিরিক্ত কীওয়ার্ড রয়েছে, তাই সি ++, তাই মাইক্রোসফ্ট এটিকে নতুন করে ডিজাইন করে সি ++ / সি এলআই নামে পরিচিত, যার অতিরিক্ত কীওয়ার্ডগুলির একটি খুব ছোট সেট ছিল তবে এর মতো সিনট্যাক্স পরিবর্তনগুলি প্রবর্তিত ^
(যা হ'ল জিসি হিপের একটি .NET অবজেক্টের একটি রেফারেন্স 'পয়েন্টার')।
কয়েক বছর পরে এবং মাইক্রোসফ্ট বুঝতে পেরেছে। নেট তারা যে রূপালী বুলেট বলেছিল তা নয়, এবং তারা তাদের লড়াইয়ে নিযুক্ত উইন্ডোজ এবং বিকাশকারী দলগুলিকে একীভূত করেছিল। এই পুনর্মূল্যায়নের অংশটি একটি নতুন উইন্ডোজ এপিআই তৈরি করেছিল যা উইনআরটি নামে পরিচিত, এটি সম্পূর্ণ নেটিভ কোড এবং এর অর্থ পুরানো এক্সটেনশনগুলি আর কার্যকর ছিল না, তাই মাইক্রোসফ্ট তাদের সি ++ এক্সটেনশনগুলি এমন একটিতে তৈরি করেছিল যা নতুনটির সাথে কাজ করে উইনআরটি এপিআই সহজ - সি ++ / সিএলআই থেকে কিছু এক্সটেনশন রেখে (যেমন ^)।
সুতরাং - আপনি সেখানে যান, বর্ধিত সি ++ এর 3 টি ভিন্ন সংস্করণ যা অতিমাত্রায় সি ++। কমপক্ষে সর্বশেষতম সংস্করণটি আবার দেশীয় কোড, সুতরাং আপনি সরাসরি API এ অ্যাক্সেস করতে না চাইলে আপনার এক্সটেনশনগুলি ব্যবহার করার দরকার নেই (এটি ডাব্লুআরএল বলা হয় এবং এটি অনেকটা পুরানো এটিএল টেম্পলেট শ্রেণীর মতো)
যদি আপনি মনে করেন যে আপনি ক্রস-প্ল্যাটফর্ম কোডটি কোডিং করছেন যা আপনি চান না - আপনি এপিআই কলগুলি পরিবর্তন করতে পারেন, তবে আপনি ^
ভিজ্যুয়াল সি ++ ব্যতীত অন্য কোনও সংকলকটিতে এটি ব্যবহার করতে পারবেন না । আমি ডাব্লুআরএল এপিআই ব্যবহার করার পরামর্শ দিচ্ছি এবং সি ++ / সিএক্স এর তুলনায় আপনার লিখতে হবে এমন 'অতিরিক্ত কোড' দেওয়ার কারণে আপনার কোডটি যথাসম্ভব স্ট্যান্ডার্ড হিসাবে রাখা উচিত।