কীভাবে D3DX .dll নরক মোকাবেলা করবেন?


16

প্রতিটি এসডিকে আপডেট থেকে ডি 3 ডিএক্স ডেল এর প্রচুর সংখ্যক সংস্করণ রয়েছে, প্রতিটি সংস্করণে একটি স্বতন্ত্র নাম রয়েছে ( ডি 3 ডিএক্স ডেল নামগুলির তালিকা )।

সবসময়ই, লোকজনের কাছে সংস্করণগুলি অনুপস্থিত থাকে। সুতরাং তাদের ডাইরেক্টএক্সের সামঞ্জস্যপূর্ণ সংস্করণ থাকা সত্ত্বেও, আপনার ডি 3 ডি-ভিত্তিক প্রকল্পটি তাদের মেশিনে চলবে না।

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

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

এই ডিএলএল জাহান্নাম এড়াতে কারও কাছে কি চতুর সমাধান রয়েছে?


2
স্ট্যাক ওভারফ্লো ( স্ট্যাকওভারফ্লো ডটকম ) - এর থেকে আরও ভাল প্রতিক্রিয়া পেতে পারে - যদিও এটি আপনার গেমগুলিতে এটি সত্যিই প্রোগ্রামিংয়ের ক্ষেত্রে প্রযোজ্য। এর মধ্যে ... আপনি কি কেবল নিজের এক্সিকিউটেবলের মতো একই ফোল্ডারে ডিএলএল রাখতে পারবেন না?
রিকিট

হুমম ... ... এই সমস্যাটি হ্রাস করার জন্য, আমি কীভাবে সবচেয়ে প্রাচীনতম DX9 এসডিকে সংস্করণটি ধরে রাখতে পারি তা ফিরিয়ে দেওয়া কি নির্বোধ ধারণা হবে? জিনিসগুলি করার একটি ক্ষিপ্ত উপায় মনে হলেও এমএস সত্যিই এখানে একটি বিরক্তিকর সমস্যা তৈরি করেছে। আরেকটি সমান পাগল বিকল্পটি হবে স্ক্র্যাচ থেকে সর্বাধিক গুরুত্বপূর্ণ ডি 3 ডিএক্স কার্যকারিতা পুনরায় বাস্তবায়ন করা, তবে আমি ইফেক্টস সিস্টেমটি পুনরায় উদ্ভাবন করা পছন্দ করি না ...
bluescrn

সাম্প্রতিক এসডিকে (গত বছরের কিছু সময়ের হিসাবে আমি মনে করি) এফেক্ট সাবসিস্টেমটি মূলত মূল এবং ডি 3 ডিএক্স এসডিকে 10+ এর বাইরে চলে গেছে । আপনি এটি নিজেই সংকলন করতে পারেন, আসলে - কোডটি এসডিকে রয়েছে এবং এটি পুনরায় বিতরণযোগ্য (যেমনটি এটি থেকে উত্পাদিত বাইনারি রয়েছে)। 9 টি দিয়ে কাজ করা সিস্টেমটিকে ব্যাক করা সম্ভবত সহজ, এবং বাকি D3DX এর বেশিরভাগ অংশ পুনরায় বাস্তবায়ন করা বা এর বিকল্পগুলি খুঁজে পাওয়া বেশ সহজ।

2
D3dx ব্যবহার করবেন না। এটি যাইহোক প্রায় দ্রুত / ভাল / দক্ষ / শীতল নয়।

আমি ডাইরেক্টএক্স গণিত, জাল, টেক্সচার এবং সাধারণ সহায়ক উপাদানগুলিতে পাস করতে পারি - তবে সত্যিই ডি 3 ডিএক্সএফেক্টটি ছেড়ে দিতে পারি না। এবং আমি DX9 এর সাথে কম-বেশি বা চিরকালের জন্য আটকে আছি। এবং যতদূর আমি উদ্বিগ্ন, DX10 + এর অস্তিত্ব নেই, কারণ সেগুলি এক্সপিতে উপস্থিত নেই
bluescrn

উত্তর:


17

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

জুন ২০১০ এসডিকে হিসাবে, আপনি "রেডলিস্ট" ডিরেক্টরিতে কোনও কিছুর পুনরায় বিতরণ করার অনুমতি দিয়েছেন এবং এটি করার সময় আপনাকে অবশ্যই কয়েকটি উপাদান (DSetup32.dll, DSetup.dll, DXSetup.exe, DXupdate.cab এবং dxdllreg_x86.cab) অন্তর্ভুক্ত করতে হবে। রেডলিস্ট ডিরেক্টরিটিতে ডি 3 ডিএক্স ডিএলএল এর জন্য .cab ফাইলগুলি অন্তর্ভুক্ত রয়েছে, তবে ডিএলএলগুলি সেগুলি নয় তবে আপনার ভাগ্যের বাইরে।

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

সম্পাদনা: এখানে ডিএক্স ইনস্টলেশন স্টাফ সম্পর্কে একটি ভাল পৃষ্ঠা

সম্পাদনা 2: মন্তব্যে একটি সংশোধনের জবাবে "ওয়েব" বিট আউট করুন।


3
আপনাকে ওয়েব ইনস্টলার পুনরায় বিতরণ করার অনুমতি নেই, কেবল তাদের মাইক্রোসফট.কম পৃষ্ঠায় নির্দেশ করুন (তাই আদর্শ নয়), এবং পুনরায় বিতরণযোগ্য উপাদানগুলি সর্বনিম্ন 3 এমবি (একটি 'রিয়েল গেম' এর আকারের তুলনায় তুচ্ছ, তবে না অল্প অল্প
ফাঁকা

এর, হ্যাঁ, আপনি ঠিক বলেছেন, আমি ওয়েব ইনস্টলারটি সম্পর্কে ভুল বক্তব্য রাখি।

2

চারটি মূল সমাধান মনে মনে বসন্ত।

প্রথমটি হ'ল ডাইরেক্টএক্স এসডিকে পুরানো সংস্করণ ব্যবহার করা। আমি মনে করি যে 2004 বা তার আগের রাউন্ডের সংস্করণগুলি স্থিতিশীলভাবে সংযুক্ত ছিল (তবে যদি কোনও বৃহত্তর এক্সিকিউটেবল আকার আপনাকে ভয় দেয় যে কোনও বিকল্প নাও হতে পারে), এবং এটি এমনও হয় যে আপনি যদি 2006/2007 বা তার আগের সংস্করণ ব্যবহার করেন তবে আপনার প্রয়োজনীয় ডি 3 ডিএক্স ডিএলএলগুলি মেশিনে থাকার ক্ষেত্রে আরও অনেক বেশি সুযোগ দাঁড়াবে। এর খারাপ দিকটি হ'ল আপনি নতুন এসকেকে বাগফিক্স, পারফরম্যান্স বর্ধন এবং উন্নত কার্যকারিতা হারিয়ে ফেলবেন (এটি 9 এর বাইরে ডি 3 ডি এর কোনও সংস্করণও দেয় না)।

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

তৃতীয় সমাধানটি হ'ল ডি 3 ডিএক্স ব্যবহার না করা। কিছু ক্ষেত্রে বিকল্প হতে পারে, আপনার ক্ষেত্রে এটি বিকল্প নাও হতে পারে।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.