এমএফসি এবং এটিএল এর মধ্যে মৌলিক পার্থক্য কী?


110

ধরে নিচ্ছি যে আমি এগুলি কেবলমাত্র "সাধারণ" জিইউআই প্রোগ্রামগুলির জন্য ব্যবহার করছি (কোনও সিওএম, কোনও অ্যাক্টিভ্যাক্স, কিছুই অভিনব নয়), এটিএল এবং এমএফসি-র মধ্যে আমি যে মৌলিক পার্থক্যটি দেখতে পাব তা বুঝতে সাহায্য করতে কোনটি ব্যবহার করব?


আমি ওয়েবে কিছু অনুসন্ধান করেছি, তবে শেষ পর্যন্ত উত্তরগুলির সত্যিকার অর্থে কোনও উত্তরই আমার প্রশ্নের উত্তর দেয় না:

  • http://msdn.microsoft.com/en-us/library/bk8ytxz5(v=vs.80).aspx :

    • "এটিএল উভয়ই সি ++ এ একটি সিওএম উপাদান তৈরি করতে এবং একটি ছোট পদক্ষেপ বজায় রাখার একটি দ্রুত এবং সহজ উপায় M এমএফসি স্বয়ংক্রিয়ভাবে সরবরাহ করে এমন সমস্ত বিল্ট-ইন কার্যকারিতা প্রয়োজন না হলে নিয়ন্ত্রণ তৈরি করতে এটিএল ব্যবহার করুন" "

      সত্যিই আমার প্রশ্নের উত্তর দেয় না, কারণ:

      • আমি সিওএম নিয়ে কাজ করছি না।

      • এমপিএফটি কি দ্রুত বোঝায় না ? কেন কিভাবে?

    • "এমএফসি আপনাকে সম্পূর্ণ অ্যাপ্লিকেশন, অ্যাক্টিভএক্স নিয়ন্ত্রণ এবং সক্রিয় ডকুমেন্ট তৈরি করতে দেয় you আপনি যদি এমএফসি দিয়ে ইতিমধ্যে একটি নিয়ন্ত্রণ তৈরি করে থাকেন তবে আপনি এমএফসিতে বিকাশ চালিয়ে যেতে চাইতে পারেন a নতুন নিয়ন্ত্রণ তৈরি করার সময় আপনার প্রয়োজন না হলে এটিএল ব্যবহার করার বিষয়টি বিবেচনা করুন consider এমএফসির সমস্ত অন্তর্নির্মিত কার্যকারিতা। "

      এছাড়াও আমার প্রশ্নের উত্তর দেয় না, কারণ:

      • আমি সত্যিই এমনকি জানেন কি জন্য ActiveX হয় প্রথম স্থানে।

      • দেখে মনে হচ্ছে মাইক্রোসফ্ট এমএফসির ব্যবহারকে নিরুৎসাহিত করছে, তবে কেন তা আমি বুঝতে পারি না।

      • কি ঠিক হল MFC এর "বিল্ট-ইন কার্যকারিতা" যে ATL উপলব্ধ করা হয় না?

    • সাধারণভাবে, এটি আমার প্রশ্নের উত্তর দেয় না কারণ এটি ডাউনসাইড এবং তাদের পিছনে কারণগুলি ব্যাখ্যা করে না

কারণ প্রত্যক্ষ বা অপ্রত্যক্ষভাবে, সমস্ত কিছুই পূর্ববর্তী পৃষ্ঠায় লিঙ্কযুক্ত বলে মনে হচ্ছে:

আমি বর্তমানে যা পর্যবেক্ষণ করেছি ( দু'দিক শিখার চেষ্টা করার সময় কয়েক দিনের মধ্যে):

  • এটিএল টেম্পলেট বা সংকলন-কাল পলিমারফিজমের উপর ভিত্তি করে।
    • এটিএল পদ্ধতিগুলি অ-ভার্চুয়াল হতে থাকে এবং উল্লেখগুলি ফেরত দেয়।
  • এমএফসি ভার্চুয়াল পদ্ধতি, বা রান-টাইম পলিমারফিজমের উপর ভিত্তি করে।
    • এমএফসি পদ্ধতিগুলি ভার্চুয়াল হতে থাকে এবং পয়েন্টারগুলি ফেরত দেয়।

তবে তাদের মধ্যে কোনও স্থাপত্যের পার্থক্য বলে মনে হচ্ছে না :

  • উভয়ই বার্তার মানচিত্র ব্যবহার করে ( BEGIN_MSG_MAPবনাম BEGIN_MESSAGE_MAP... বড় ব্যাপার)
  • উভয় ক্লাসে Win32 পদ্ধতি মোড়ানো
  • উভয় একই CWndবনাম বনাম আছে বলে মনে হয় ।CWindow

তবে তারপরে, যদি কম্পাইল-টাইম বনাম রান-টাইম দিকটি ব্যতীত অন্য কোনও বাস্তব পার্থক্য না থাকে, তবে কেন উভয়ের উপস্থিতি রয়েছে? তাদের একটিও পর্যাপ্ত হওয়া উচিত নয়?

আমি এখানে কি মিস করছি?


3
আমি ভুল হতে পারি, তবে আমি জানি যে এমএফসি-র জন্য কিছুটা বড় রানটাইম ডিএলএল প্রয়োজন, যেখানে আমি মনে করি এটিএল সবগুলিই একটি এক্সে রূপান্তর করে। এটিএম সাধারণভাবে হালকা ওজন হয়। এছাড়াও, ডাব্লুটিএল
মেরলিন মরগান-গ্রাহাম

@ মেরলিন: ঠিক আছে, তবে কেন এটির জন্য ভারী রানটাইম ডিএলএল দরকার? এর মূল কারণ কী?
ব্যবহারকারী541686

1
ডিএলএল থেকে লিঙ্কযুক্ত প্রাক-সংকলিত শ্রেণীর উত্তরাধিকারী হওয়া এবং উত্স কোড অন্তর্ভুক্তি / টেমপ্লেট ইনস্ট্যান্টেশন দ্বারা লিঙ্কযুক্ত টেমপ্লেটগুলির উত্তরাধিকারের মধ্যে একই পার্থক্য। টেমপ্লেটগুলি সাধারণত "কেবলমাত্র শিরোনাম" লাইব্রেরি হয়। আমার উত্তর অসম্পূর্ণ, সুতরাং মন্তব্যে :) এমএফসি এখনও প্রচুর গ্রহণ এবং পিছনের সামঞ্জস্যের কারণে বিদ্যমান exists অন্যথায় এমএস তারা নতুন উইন 32 র‌্যাপ তৈরি করার সময় এটিকে ফেলে দিত created তাদের সফ্টওয়্যারটিতে দীর্ঘ সমর্থন চুক্তি রয়েছে (ভিন্ন, তবে 10 বছর পর্যন্ত)। সমর্থন অবমূল্যায়নের সাথে সামঞ্জস্যপূর্ণ নয়।
মার্লিন মরগান-গ্রাহাম

@ মেরলিন: সুতরাং আমি যা বুঝতে পারছি তা হল আমার এমএফসি ব্যবহার করা উচিত নয়? তারা "অতিরিক্ত কার্যকারিতা" কী তা উল্লেখ করে চলেছে? আমার কি দরকার?
ব্যবহারকারী541686

2
@ মেরলিন: এটিএল.ডিএলএল শুনছেন? "স্ট্যাটিক লাইব্রেরি হিসাবে এমএফসি ব্যবহার করবেন" শব্দটির শোনেন?
অজয়

উত্তর:


179

আমি মনে করি আপনার প্রশ্নের উত্তর বেশিরভাগ historicalতিহাসিক, যদি আপনি দুটি লাইব্রেরি কীভাবে উত্থিত হয়েছিল এবং সময়ের সাথে বিবর্তিত হয়েছে সেদিকে ফিরে তাকান।

সংক্ষিপ্ত উত্তরটি হ'ল, যদি আপনি "অভিনব" কিছু না করেন তবে এটিএল ব্যবহার করুন। এটি সিএমএম সহ সাধারণ ব্যবহারকারী ইন্টারফেসের জন্য দুর্দান্ত for

দীর্ঘ উত্তর: এমএফসিটি 90 এর দশকের গোড়ার দিকে সি ++ নামে নতুন এই ভাষাটি ব্যবহার করে এটি উইন্ডোজে প্রয়োগ করার জন্য নির্মিত হয়েছিল built এটি ওএসের কাছে না থাকলে এটি অফিসটিকে উন্নয়ন সম্প্রদায়ের মতো বৈশিষ্ট্যগুলির মতো উপলভ্য করে তোলে।

[অলঙ্করণ সম্পাদনা করুন: আমি মাইক্রোসফ্টে কাজ করিনি, সুতরাং আমি কখনই অফিসে এমএফসি-তে নির্মিত হয়েছিল কিনা জানি না, তবে আমি মনে করি উত্তরটি না। উইন 3..১-এ ফিরে 95 days দিন, অফিস ইউআই টিম নতুন নিয়ন্ত্রণ উদ্ভাবন করবে, তাদের লাইব্রেরিতে প্যাকেজ করবে, তারপরে উইন্ডোজ এবং এমএফসি টিমগুলি পুনরায় বিতরণযোগ্য ডলসের সাহায্যে র্যাপার এবং এপিআই অন্তর্ভুক্ত করবে। আমি অনুমান করব যে এই দলগুলির মধ্যে কিছুটা সহযোগিতা এবং কোড ভাগাভাগি হয়েছিল। অবশেষে controls নিয়ন্ত্রণগুলি পরিষেবা প্যাকগুলিতে বা পরবর্তী উইন্ডোজ সংস্করণে বেস অপারেটিং সিস্টেমে রূপান্তরিত করে। এই প্যাটার্নটি অফিস রিবনের সাথে অব্যাহত ছিল যা অফিসে পাঠানোর পরে উইন্ডোজে অ্যাড-অন উপাদান হিসাবে যুক্ত হয়েছিল এবং এটি এখন উইন্ডোজ ওএসের অংশ।]

সেই সময় গ্রন্থাগারটি সি ++ ভাষা এবং সংকলক উভয়ই নতুন হওয়ায় এবং অফিস বিকশিত হওয়ার সাথে সাথে মাইক্রোসফ্ট এটি সময়ের সাথে সাথে তৈরি করেছিল, এটি বেশ আদিম ছিল।

এই ইতিহাসের কারণে, এমএফসি:

  1. একটি মোটামুটি clunky নকশা আছে। এটি উইন্ডোজ এপিআই এর চারপাশে হালকা মোড়ক হিসাবে শুরু হয়েছিল, তবে বেড়েছে। সংক্ষেপে কিছু 'বৈশিষ্ট্য' রয়েছে যা আবিষ্কার করতে হয়েছিল কারণ সংকলক এবং ভাষা কেবল তাদের সমর্থন করে না। কোনও টেম্পলেট ছিল না, তারা একটি স্ট্রিং ক্লাস আবিষ্কার করেছিল, তারা তালিকা ক্লাস আবিষ্কার করেছিল, তারা তাদের নিজস্ব রান টাইম টাইপ সনাক্তকরণ ইত্যাদি ডিজাইন করেছিল
  2. অফিস এবং উইন্ডোজ বিবর্তনের 20 বছরের ব্যবস্থাসমূহ, যা আপনি সম্ভবত কখনও ব্যবহার করবেন না এমন সামগ্রীর পুরো ক্র্যাপ লোড অন্তর্ভুক্ত করে: একক এবং একাধিক ডকুমেন্ট ইন্টারফেস, ডিডিই, সিওএম, সিওএম +, ডিসিওএম, ডকুমেন্ট লিঙ্কিং এবং এমবেডিং (যাতে আপনি কোনও ওয়ার্ড ডকুমেন্ট এম্বেড করতে পারেন আপনার অ্যাপ্লিকেশন যদি আপনি চান), অ্যাকটিভএক্স নিয়ন্ত্রণ (ওয়েবের জন্য এমবেডিং অবজেক্টের বিবর্তন!), স্ট্রাকচার্ড ডকুমেন্ট স্টোরেজ, সিরিয়ালাইজেশন এবং ভার্শনিং, অটোমেশন (ভিবিএর প্রথম দিক থেকে) এবং অবশ্যই এমভিসি। সর্বশেষতম সংস্করণগুলিতে ভিজ্যুয়াল স্টুডিও স্টাইলের উইন্ডো ডকিং এবং অফিসের ফিতাটির জন্য সমর্থন রয়েছে। মূলত 20 বছরের মধ্যে রেডমন্ডের বাইরে থাকা প্রতিটি প্রযুক্তি কোথাও না কোথাও রয়েছে। এটি কেবল বিশাল!
  3. আপনার কাছে কখনও ব্যবহার করা হবে না এমন জিনিসগুলির জন্য প্রচুর পরিমাণে ছোট্ট গোগাচা, বাগ, কর্মক্ষেত্র, অনুমান, সমর্থন রয়েছে and আপনাকে অনেকগুলি ক্লাস বাস্তবায়নের সাথে এবং তারা কীভাবে একটি শালীন আকারের প্রকল্পে এটি ব্যবহার করতে ইন্টারঅ্যাক্ট করে তার সাথে ঘনিষ্ঠভাবে পরিচিত হওয়া দরকার। ডিবাগিংয়ের সময় এমএফসি উত্স কোডে ডেলিভ করা সাধারণ। ক্রাশের কারণে কিছু পয়েন্টারে নাল হয়ে থাকা 15 বছরের পুরানো টেক নোট সন্ধান করা এখনও ঘটে। প্রাচীন দস্তাবেজ এম্বেডিং স্টাফ আরম্ভ করার অনুমানগুলি অদ্ভুত উপায়ে আপনার প্রয়োগকে প্রভাবিত করতে পারে। এমএফসি-তে অ্যাবস্ট্রাকশন বলে কোনও জিনিস নেই, আপনার প্রতিদিন এটির কীর্তি এবং ইন্টার্নালগুলির সাথে কাজ করা দরকার, এটি কিছুই লুকায় না। এবং আমাকে ক্লাস উইজার্ডে শুরু করবেন না।

সি ++ ভাষা বিকশিত হওয়ার সাথে সাথে এটিএমটি আবিষ্কার করা হয়েছিল এবং টেমপ্লেটগুলি উপস্থিত হয়েছিল। এটিএমটি এমএফসি লাইব্রেরির রান-টাইম সমস্যাগুলি এড়াতে কীভাবে টেমপ্লেটগুলি ব্যবহার করবেন তা একটি শোকেস ছিল:

  1. বার্তা মানচিত্র: যেহেতু সেগুলি টেমপ্লেট ভিত্তিক, প্রকারগুলি পরীক্ষা করা হয় এবং আপনি যদি সীমাবদ্ধ ফাংশনটি স্ক্রু করেন তবে এটি তৈরি হয় না। এমএফসি-তে বার্তা মানচিত্রগুলি ম্যাক্রো ভিত্তিক এবং রান-টাইম সীমাবদ্ধ। এর ফলে বিজোড় বাগ, বার্তাটি ভুল উইন্ডোতে স্থান পেয়েছে, ক্রাশ বা ম্যাক্রোটি ভুলভাবে সংজ্ঞায়িত করা থাকলে বা ক্রমবর্ধমান কাজ করতে পারে না কারণ কিছু ঠিকঠাক না করে। ডিবাগ করা আরও অনেক কঠিন এবং লক্ষ্য না করেই ভাঙ্গা সহজ।
  2. COM / অটোমেশন: বার্তা মানচিত্রের অনুরূপ, COM মূলত ম্যাক্রো ব্যবহার করে রান-টাইম আবদ্ধ ছিল, প্রচুর পরিমাণে ত্রুটি হস্তান্তর করা এবং বিজোড় সমস্যা তৈরি করার প্রয়োজন পড়ে। এটিএল এটিকে টেমপ্লেট ভিত্তিক তৈরি করেছে, সময় বেঁধে সংকলন করেছে এবং এর থেকে আরও অনেক সহজ কাজ করে।

[অলঙ্করণ সম্পাদনা করুন: এটিএলটি তৈরি করার সময় মাইক্রোসফ্টের প্রযুক্তিগত রাস্তা মানচিত্রটি মূলত 'ডকুমেন্ট ম্যানেজমেন্ট' এর উপর নিবদ্ধ ছিল। অ্যাপল তাদের ডেস্কটপ প্রকাশনা ব্যবসায় হত্যা করছিল। এই স্পেসে প্রতিযোগিতা করার জন্য অফিসের 'ডকুমেন্ট ম্যানেজমেন্ট' বৈশিষ্ট্যগুলি বাড়ানোর জন্য অফিস 'ডকুমেন্ট লিঙ্কিং এবং এম্বেডিং' একটি প্রধান উপাদান ছিল। COM অ্যাপ্লিকেশন সংহতকরণের জন্য উদ্ভাবিত একটি মূল প্রযুক্তি ছিল এবং ডকুমেন্ট এম্বেডিং এপিআই COM এর উপর ভিত্তি করে ছিল। এমএফসি এই ব্যবহারের ক্ষেত্রে ব্যবহার করা কঠিন ছিল। তৃতীয় পক্ষের সিওএম বাস্তবায়ন এবং নথি এম্বেডিং বৈশিষ্ট্যগুলি ব্যবহার করতে এই নির্দিষ্ট প্রযুক্তিটিকে সহজ করার জন্য এটিএলই ছিল একটি ভাল সমাধান]

এই সামান্য পরিবর্তনগুলি এটিএমএল-এর বৈশিষ্ট্যগুলির মতো সমস্ত অফিসের প্রয়োজন হয় না এমন একটি সাধারণ অ্যাপ্লিকেশন নিয়ে মোকাবেলা করতে এটিএলকে অত্যন্ত সহজ করে তোলে। একটি সাধারণ ইউআই এবং কিছু অফিস অটোমেশন দিয়ে দেওয়া। যা খুব ছোট, এমএফসির ক্লাসগুলির একটি বিশাল লাইব্রেরি রয়েছে যা আঠালো এবং কাজ করা কঠিন।

দুর্ভাগ্যক্রমে এটিএল স্থবির হয়ে পড়েছে। এটিতে উইন্ডোজ এপিআই এবং সিওএম সমর্থনগুলির জন্য মোড়ক ছিল এবং এরপরে এটি আর কখনও যায় নি। ওয়েবটি বন্ধ হয়ে গেলে, এই সমস্ত জিনিসগুলি পুরানো খবরের মতো বাছাই করা ছিল।

[অলঙ্করণ সম্পাদনা করুন: মাইক্রোসফ্ট বুঝতে পেরেছিল যে এই 'ইন্টারনেট থিং'টি বড় হতে চলেছে। তাদের প্রযুক্তিগত রাস্তার মানচিত্রটি বিতরণ লেনদেন সার্ভারে ইন্টারনেট এক্সপ্লোরার, উইন্ডোজ সার্ভার, আইআইএস, এএসপি, এসকিউএল সার্ভার, সিওএম / ডিসিওএমে ফোকাস করার জন্য মারাত্মকভাবে পরিবর্তিত হয়েছে। সুতরাং ডকুমেন্ট লিঙ্কিং এবং এম্বেডিং এখন আর উচ্চ অগ্রাধিকার ছিল না]]

এমএফসির বিশাল পদচিহ্নগুলি তাদের পক্ষে ডাম্প করা অসম্ভব করে দিয়েছিল, তাই এটি এখনও ধীরে ধীরে বিকশিত হয়। টেমপ্লেটগুলি লাইব্রেরিতে আবার একইসাথে অন্যান্য ভাষা এবং এপিআই বর্ধিতকরণে অন্তর্ভুক্ত করা হয়েছে। (আমি এই প্রশ্নটি না হওয়া পর্যন্ত ডাব্লুটিএল-এর কথা শুনিনি। :)

শেষ পর্যন্ত, কোনটি ব্যবহার করা তা পছন্দসই বিষয়। আপনার প্রয়োজনীয় বৈশিষ্ট্যগুলির বেশিরভাগটি বেস ওএস এপিআইতে রয়েছে, যা লাইব্রেরিতে কোনও উপযুক্ত মোড়ক না থাকলে আপনি যে কোনও লাইব্রেরি থেকে সরাসরি কল করতে পারেন।

বহু বছর ধরে এমএফসি ব্যবহারের ভিত্তিতে কেবল আমার 2 সেন্ট এবং আমি এখন এটি প্রতিদিন ব্যবহার করি। কয়েক বছর ধরে কয়েকটি প্রকল্পে এটি প্রকাশিত হওয়ার সময় আমি এটিএল-এ ছড়িয়ে পড়েছিলাম। এই দিনগুলিতে এটি তাজা বাতাসের শ্বাস ছিল তবে সত্যই আর কোথাও যায় নি। এবং তারপরে ওয়েবটি এসেছিল এবং আমি এটির সব ভুলে গিয়েছিলাম।


সম্পাদনা: এই উত্তরের অবাক করা দীর্ঘায়ু রয়েছে। যেহেতু এটি আমার স্ট্যাক ওভারফ্লো পৃষ্ঠায় পপ আপ করে চলেছে, তাই আমি ভেবেছিলাম যে আমি যে মূল উত্তরটির অভাব অনুভব করেছি তার মূল উত্তরটিতে আমি কিছু শোভাকর যুক্ত করব।


39
+1 আমি চাই এটি +10 করতে পারতাম। দুর্দান্ত ইতিহাসের বর্ণনার জন্য ধন্যবাদ - এটি খুব ভাল লেখা এবং তথ্যপূর্ণ! :)
user541686

3
কেবল উল্লেখ করতে চেয়েছিলাম ... আমি কয়েকদিনের জন্য এমএফসি ব্যবহার করেছি, তারপরে এটিএল / ডাব্লুটিএল-এ স্যুইচ করেছি, যা আমি কিছুকাল ধরে ব্যবহার করছি। এবং এটা দুর্দান্ত ভয়ঙ্কর। আর কখনও এমএফসির দিকে তাকাবে না, সম্ভবত।
ব্যবহারকারী541686

1
সুতরাং মাইক্রোসফ্ট উভয় ব্যবহার করেই নতুন প্রোগ্রাম তৈরি করে, না তারা কি একে অপরকে ব্যবহারের সিদ্ধান্ত নিয়েছে?
মাফিন ম্যান

1
আমি ভেবেছিলাম আমি পার্থক্যটি জানতাম..কিন্তু এত সুন্দর ও বিস্তৃত ব্যাখ্যাটি আর কখনও দেখেনি..আপনার প্রতি..এক টন ধন্যবাদ :)
শিবী

1
আমি এই বিষয়টিতে পড়ার সেরা উত্তর; আপনার ডাব্লুটিএল
প্যাট

20

আমার অনেক লোক যারা আমার উভয়কেই ব্যবহার করেছেন তারা বলেছেন যে তাদের প্রোগ্রামিং অভিজ্ঞতা এমএফসির চেয়ে এটিএল-এর চেয়ে কম বেদনাদায়ক ছিল। আপনার সংকলিত এক্সিকিউটেবল এটিএল এর সাথেও অনেক ছোট হবে।

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি ডাব্লুটিএলকে একবার দেখুন , এটি এটিএল তৈরি করে।

তারা "অতিরিক্ত কার্যকারিতা" কী তা উল্লেখ করে চলেছে? আমার কি দরকার?

আপনি যদি আপনার প্রয়োজনীয়তাগুলি সংজ্ঞায়িত করেন তবে এমএফসি ব্যবহার করা এড়াতে পারলে উত্তর দেওয়া সহজ হতে পারে। দুর্ভাগ্যক্রমে "অভিনব কিছু নয়" যথেষ্ট একচেটিয়া নয়। আপনি যে বৈশিষ্ট্যগুলি ব্যবহার করতে চান তার মধ্যে অন্তর্ভুক্ত থাকা আরও সহায়ক হতে পারে (কোনটি নিয়ন্ত্রণ করে, কোন ফ্রেমওয়ার্ক / প্রযুক্তি / আপনি ব্যবহার করতে চান বিদ্যমান গ্রন্থাগার ইত্যাদি)।

তবে এখানে একটি নিবন্ধ এখানে এমএফসি-র এমন কিছু বৈশিষ্ট্য বর্ণনা করেছে যা ডাব্লুটিএল / এটিএল দ্বারা সরাসরি সমর্থিত নয়।

এমএফসি এ ক্ষেত্রেও বিবর্তিত হয়েছে যে এটি দুর্দান্ত অনেকগুলি পছন্দসই বৈশিষ্ট্য যেমন এমএপিআই, অন্যান্য উইন্ডোজ লোগো প্রয়োজনীয়তা, সকেট, নথি (যদি আপনি পছন্দ করেন এবং / অথবা সেই প্যাটার্নটি ব্যবহার করেন) সমর্থন করে, এবং যৌগিক নথি ফাইলগুলি সমর্থন করে। ডাব্লুটিএল এর দুর্দান্ত বৈশিষ্ট্যগুলির অংশ রয়েছে, তবে এমএফসিটি পরিষ্কার বৈশিষ্ট্য চ্যাম্প। উভয় পরিবেশ ফ্রেমযুক্ত মূল উইন্ডো আর্কিটেকচার (পৃথক ভিউ উইন্ডো সহ ফ্রেম উইন্ডো), এসডিআই এবং এমডিআই অ্যাপ্লিকেশনস, বিভক্ত উইন্ডো, ডায়লগ-ভিত্তিক অ্যাপ্লিকেশন এবং সিওএম সমর্থনের জন্য বিভিন্ন সিএম-ভিত্তিক ক্লাস সমর্থন করে।


3
জে এর উত্তর এই আছে। কিছু পার্থক্য ব্যাখ্যা করে নিবন্ধটির লিঙ্কের জন্য এটি রেখে দেওয়া।
মার্লিন মরগান-গ্রাহাম

9

এটিএম হ'ল ক্লাসগুলির একটি সেট যা COM অবজেক্টগুলির বাস্তবায়নকে সহজ করার জন্য।

আপনি এটি এমএফসি ছাড়াই ব্যবহার করতে পারেন। আমার কাজের সময়ে, আমরা কম্পিউটারের কোডে সিওএম ইন্টারফেসগুলি প্রকাশ করতে এটিএল ব্যবহার করি। কোনও জিইউআই জড়িত নেই, উদাহরণস্বরূপ আমাদের কাছে এই কম্পিউটেশনাল কোডটি কল করা আমাদের পক্ষে সম্ভব। এক্সেল ভিবিএ

এটি কীভাবে বিমূর্ত হয় তা দেখতে কিছু সিওএম গাইড / টিউটোরিয়াল দেখুন।

এমএফসিটি উইন 32 এপিআই-তে কেবল জিইউআই র‌্যাপার ক্লাসের একটি সেট। এটি কীভাবে বিমূর্ত হয় তা দেখতে কিছু উইন 32 এপিআই টিউটোরিয়ালটি দেখুন।


এটিএল কোনও সিওএম জড়িত ছাড়াই ব্যবহার করা যেতে পারে। এর অনেক শ্রেণীর সিওএমের সাথে কোনও সম্পর্ক নেই যা ডাব্লুটিএল-এর দিকে তাকালে আরও স্পষ্ট হয়।
0xC0000022L

1
@ 0xC0000022L: আমি CWindowImplযখন এটি লিখেছিলাম তখন আমি এবং বন্ধুরা সম্পর্কে সচেতন ছিলাম না । এটিএম-এর সাথে আমার এখন আরও অভিজ্ঞতা আছে, তাই আমি এই উত্তরটি পুনরায় লেখার চেষ্টা করতে পারি। বিশেষত, এটিএল / ডাব্লুটিএল সমস্ত এমএফসি কার্যত প্রতিস্থাপন করতে পারে।
আলেকজান্দ্রি সি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.