আমি কীভাবে উইন্ডোজ 7 64-বিটে একটি ডিএলএল ফাইল নিবন্ধন করব?


101

আমি নিম্নলিখিত কোড ব্যবহার করার চেষ্টা করেছি:

cd c:\windows\system32
regsvr32.exe dllname.ax

তবে এটি আমার পক্ষে কাজ করছে না। আমি কীভাবে একটি 64৪-বিট প্রসেসরের সাহায্যে উইন্ডোজ on এ একটি ডিএলএল ফাইল নিবন্ধন করতে পারি?


এই প্রশ্নটিকে "vb.net" ট্যাগ করা হিসাবে দেখে, আমি ভাবতে চাই যে আপনি ভিবি.এনইটি-তে তৈরি করা কোনও ডিএলএল নিবন্ধকরণের চেষ্টা করছেন কেন? এর সাথে ব্যবহার করার জন্য regsvr32, একটি ডিএলএল অবশ্যই ফাংশন রফতানি করবে DllRegisterServerএবং DllUnregisterServer। আপনি মোটেও তৈরি করেন এমন বিস্তৃত DLL এর কোনও নিবন্ধ নেই।
কোডি গ্রে

12
আপনি কাজ করে না বা দরকারী না এর অর্থ কী? আপনি কি একটি ত্রুটি বার্তা পান? এটা কি বলে?
কোডি গ্রে

উত্তর:


68

regsvr32 name.dllকমান্ড প্রম্পট টাইপ করুন (এলিভেটেড মোডে কার্যকর করা!) এবং "এন্টার" টিপুন। name.dllআপনি যে ডিএলএল নিবন্ধন করতে চান তার নামটি প্রতিস্থাপন করা উচিত Note উদাহরণস্বরূপ, আপনি iexplore.dll নিবন্ধন করতে চান, টাইপ করুন regsvr32 iexplore.dll


5
regsvr32 ফাইলের নাম এবং এক্সটেনশান সহ .dll ফাইলের পাথ এবং এন্টার টিপুন
আর কে শর্মা

202

ঠিক আছে, আপনি এটি 32 বা 64 বিট ডেল কিনা উল্লেখ করেন না এবং আপনি ত্রুটি বার্তাটি অন্তর্ভুক্ত করেন না তবে আমি অনুমান করব যে এই কেবি নিবন্ধে বর্ণিত একই সমস্যা: ত্রুটি বার্তা যখন আপনি রেগসভিআর 32.exe চালান 64-বিট উইন্ডোজ এ

এই নিবন্ধ থেকে উদ্ধৃতি:

এই আচরণটি ঘটে কারণ System32 ফোল্ডারে Regsvr32.exe ফাইলটি একটি 64-বিট সংস্করণ। আপনি যখন কোনও ডিএলএল নিবন্ধনের জন্য রেগসভ্র 32 চালান, আপনি ডিফল্টরূপে 64-বিট সংস্করণটি ব্যবহার করছেন।

নিবন্ধ থেকে সমাধান:

এই সমস্যাটি সমাধান করতে,% SystemRoot% \ Syswow64 ফোল্ডার থেকে Regsvr32.exe চালান। উদাহরণস্বরূপ, ডিএলএল নিবন্ধন করতে নিম্নলিখিত কমান্ডগুলি টাইপ করুন: cd \windows\syswow64 regsvr32 c:\filename.dll


13
কেন এটি নির্বাচিত উত্তর নয়?
মাইক দেবেনি

5
এটি সত্যই সঠিক উত্তর হওয়া উচিত। আমি বুঝতে পারি যে তার মূল পোস্টে বাক্য গঠনটি ভুল ছিল তবে রাজকুমার মন্তব্য করেছিলেন যে সঠিক সিনট্যাক্স ব্যবহার করার পরেও তিনি একটি ত্রুটি বার্তা পেয়েছিলেন। এটির পরিবর্তে যে কেউ অনুসন্ধান করছে তার সঠিক উত্তরের জন্য দুটি পদক্ষেপ নেয়। প্রথমে সঠিক হিসাবে নির্বাচিত উত্তরে, তারপরে মন্তব্য চেইনটি অনুসরণ করে, এই পোস্টটিতে শেষ হবে।
রব

102

যদি ডিএলএল 32 বিট হয়:

ডিএলএলটিকে সিটিতে অনুলিপি করুন: elev উইন্ডোজ \ সিসউইউডব্লিউ \
an একটি উন্নত কমান্ড প্রম্পটে:%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll

যদি ডিএলএল 64 বিট হয়:

ডিএলএলটিকে সিটিতে অনুলিপি করুন: \ উইন্ডোজ \ সিস্টেম 32
an একটি উন্নত কমান্ড প্রম্পটে:%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll

আমি জানি এটি ভুল উপায় বলে মনে হচ্ছে, তবে এটি কাজ করে। দেখা:

http://support.microsoft.com/kb/249873
উক্তি: "দ্রষ্টব্য একটি উইন্ডোজ অপারেটিং সিস্টেমের -৪
-বিট সংস্করণে , Regsv32.exe ফাইলের দুটি সংস্করণ রয়েছে: -৪ -বিট সংস্করণটি% সিস্টেমরোট% is System32 \ regsvr32.exe।
32-বিট সংস্করণটি% systemroot% \ SysWoW64 \ regsvr32.exe
""


26
সাপোর্ট.মাইক্রোসফট.কম এর লিঙ্ক সহ ... "আমি জানি এটি ভুল উপায়ে মনে হয়, তবে এটি সেইভাবে কাজ করে" ... এই লিঙ্কটি বিশ্বাস করা শক্ত hard
ট্রেভর বয়েড স্মিথ

6
"এলিভেটেড সিএমডি ইন" খুব গুরুত্বপূর্ণ !!
shindigo

4
আমি মনে করি না এটি আমাদের সিস্টেম 32 বা syswow64 ফোল্ডারে অনুলিপি করতে হবে। ফাইল যেখানেই থাকুক না কেন কেবল নিবন্ধভুক্ত করুন।
নিকোস

30

একটি এক্স On৪ সিস্টেমে, সিস্টেম 32 bit৪ বিটের জন্য এবং সিসউও 64৪২ 32 বিটের জন্য (অন্য উত্তরে বর্ণিত অন্যভাবে নয়)। WOW (উইন্ডোজ অন উইন্ডোজ) 32 বিট সাবসিস্টেম যা 64 বিট সাবসিস্টেমের আওতায় চলে)।

এটি নামকরণের পদে একটি জগাখিচুড়ি, এবং কেবল বিভ্রান্তির জন্য কাজ করে, তবে এটিই এটি।

আবার ...

syswow64 32 বিট, 64 বিট নয়।

system32 64৪ বিট, 32 বিট নয়।

এই ডিরেক্টরিগুলির প্রত্যেকটিতে একটি regsrv32 রয়েছে। একটি 64 বিট, এবং অন্যটি 32 বিট। এটি odbcad32 এবং এট আল এর সাথে একই চুক্তি। (আপনি যদি 32-বিট ওডিবিসি ড্রাইভার দেখতে চান যা সিস্টেম 32 এ ডিফল্ট অডব্যাড 32 এর সাথে দেখাবে না যা 64-বিট)


1
কেন এটা কোন ব্যাপার? regsvr32: বিবরণ সম্পর্কে যত্ন নিতে হবে, তত্ত্বগতভাবে এটা নির্ণয় করতে পারবে কিনা আপনি একটি 32 বিট বা 64 বিট ডিএলএল নিবন্ধনের stackoverflow.com/questions/18935163/...
Sk8erPeter

8

স্টার্ট মেনুটি খুলুন এবং অনুসন্ধান বাক্সে সিএমডি টাইপ করুন Ctrl + শিফট ধরে এন্টার টিপুন

এটি প্রশাসক মোডে কমান্ড প্রম্পট চালায়।

এখন টাইপ করুন: regsvr32 MyComobject.dll


6

অবশেষে আমি সমাধানটি খুঁজে পেয়েছি ঠিক প্রশাসক হিসাবে লিখুন তখন সিএমডি চালান

cd \windows\syswow64

তাহলে এটি লিখুন

regsvr32 c:\filename.dll

আমি আশা করি যে উত্তরটি আপনাকে সাহায্য করবে


আপনি যদি ইতিমধ্যে ফাইলনাম.ডিল কে সিসউও 64৪ ফোল্ডারে অনুলিপি করে রেখেছিলেন এবং আপনি কমান্ড প্রম্পটে ওয়ার্কিং ডিরেক্টরিটি syswow64 তে পরিবর্তন করেন, তবে "regsvr32 c: \ filename.dll" এ "c:।" দরকার নেই। সংক্ষেপে, "regsvr32 c:
name

6

যদি ডিএলএল 32 বিট হয়:

  1. সিএলে ডিএলএল অনুলিপি করুন: \ উইন্ডোজ \ সিসউওডব্লিউ 64 64
  2. এলিভেটেড সেন্টিমিটারে:% উইন্ডির% \ সিসউওডব্লিউ \৪ \ রেগসভ্র 32২.এক্সি% উইন্ডির% \ সিসওওডব্লিউ \ \ নামযুক্ত.ডিল

যদি ডিএলএল 64 বিট হয়:

  1. সিটিতে ডিএলএল অনুলিপি করুন: \ উইন্ডোজ \ সিস্টেম 32 \
  2. উন্নত সেমিডিতে:% উইন্ডির% \ System32 \ regsvr32.exe% উইন্ডির% \ System32 \ নামযুক্ত.ডিল

6

এখানে সমস্ত কিছুই ভুল পথে ব্যর্থ হয়েছিল। তারপরে আমি পুরানো উইন 95 দিনের একটি কৌশল মনে করি। প্রোগ্রাম ফোল্ডারটি খুলুন যেখানে .dll অবস্থান করে, সি: / উইন্ডোজ / সিস্টেম 32 খুলুন regsvr32 এ স্ক্রোল ডাউন করুন এবং প্রোগ্রাম ফোল্ডারটি থেকে rllrver32 এ dll টানুন এবং ড্রপ করুন। গম্ভীর গর্জন, সম্পন্ন।


2
এটি কাজ করে তবে সমস্যা হতে পারে যদি আপনার এডমিন হিসাবে চালানো দরকার।
ওয়ার্কাবাইট

3

ত্রুটি বার্তা জানা বরং মূল্যবান হবে। এটি তথ্য সরবরাহ করার জন্য বোঝানো হয়েছে, যদিও তা আপনার কাছে কোনও ধারণা দেয় না যদিও তা আমাদের সাথে করে। অনুমান করতে বাধ্য হওয়ায়, আমি বলব যে ডিএলএল একটি 32-বিট ডাইরেক্টএক্স ফিল্টার। এই ক্ষেত্রে এটি যথাযথ ক্রিয়া হওয়া উচিত:

cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax

এটি অবশ্যই একটি উন্নত কমান্ড প্রম্পটে চালানো উচিত যাতে ইউএসি প্রয়োজনীয় রেজিস্ট্রি অ্যাক্সেস বন্ধ করতে না পারে। Superuser.com এ এ সম্পর্কে আরও প্রশ্ন জিজ্ঞাসা করুন


3

আমি কেবল এই অত্যন্ত সহজ পদ্ধতিটি পরীক্ষা করেছি এবং এটি পুরোপুরি কার্যকর হয় - তবে আমি অন্তর্নির্মিত প্রশাসক অ্যাকাউন্টটি ব্যবহার করি, সুতরাং উন্নত সুবিধাগুলির জন্য আমাকে হুপের মধ্য দিয়ে ঝাঁপিয়ে পড়তে হবে না।

নিম্নলিখিত ব্যাচ ফাইলটি সিস্টেম ফোল্ডারের মধ্যে / আউট ফাইলগুলি সরানোর প্রয়োজনীয়তা থেকে ব্যবহারকারীকে মুক্তি দেয়। এটির যথাযথ সংস্করণ প্রয়োগ করতে এটি উইন্ডোজে ছেড়ে দেয় Regsvr32

নির্দেশাবলী:

  • আপনি যে ফোল্ডারে লাইব্রেরি ( -.dllবা -.ax) ফাইলটি নিবন্ধভুক্ত করতে চান সেটিতে একটি নতুন পাঠ্য ফাইল খুলুন এবং নীচের রুটিনগুলির মধ্যে একটিতে আটকে দিন:

    echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
    copy %1 C:\Windows\System32
    regsvr32 "%nx1"
    echo END BATCH FILE
    pause
    

    echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
    copy %1 C:\Windows\SysWOW64
    regsvr32 "%nx1"
    echo END BATCH FILE
    pause
    
  • আপনার নতুন পাঠ্য ফাইলটি ব্যাচের ( -.bat) ফাইল হিসাবে সংরক্ষণ করুন; তারপরে ব্যাচ ফাইলের উপরে আপনার -.dllবা -.axফাইলটি কেবল টানুন এবং ছেড়ে দিন ।

  • যদি ইউএসি আপনাকে প্রশাসক হিসাবে ব্যাচ ফাইল চালানোর সুযোগ না দেয় তবে আপনাকে ম্যানুয়ালি সুযোগগুলি উন্নত করতে হবে (নির্দেশাবলী উইন্ডোজ for এর জন্য রয়েছে):

    1. ব্যাচ ফাইলে রাইট ক্লিক করুন;
    2. নির্বাচন করুন Create shortcut;
    3. শর্টকাটে ডান ক্লিক করুন;
    4. নির্বাচন করুন Properties;
    5. Compatibilityট্যাবে ক্লিক করুন ;
    6. লেবেলযুক্ত বাক্সটি চেক করুন Run this program as administrator;
    7. আপনার -.dllবা -.axফাইলটি ব্যাচ ফাইলের পরিবর্তে নতুন শর্টকাটের উপরে রেখে দিন।

এটাই ইউএসি-সম্পর্কিত কোনও ফলো-আপ প্রচেষ্টা (গুলি) এর ব্যর্থতা রোধ করার COPY পরিবর্তে আমি বেছে নিয়েছি MOVE । আসল গ্রন্থাগার ( -.dll বা ) ফাইল মোছার পরে সফল নিবন্ধকরণ হওয়া উচিত should-.ax

পূর্ববর্তী পাসগুলি দ্বারা সিস্টেম ফোল্ডারে ( C:\Windows\System32 বা ) তৈরি করা অনুলিপিগুলি সম্পর্কে চিন্তা করবেন নাC:\Windows\SysWOW64 - আপনি যখনই ব্যাচ ফাইল চালাবেন তখন এগুলি ওভাররাইট করা হবে।

আপনি যদি ভুল ব্যাচ ফাইলটি চালনা না করেন তবে সঠিক ব্যাচ ফাইল চালানোর আগে আপনি সম্ভবত ভুল সিস্টেম ফোল্ডারে ( C:\Windows\System32 বা C:\Windows\SysWOW64 ) তৈরি করা অনুলিপি মুছতে চান , ... বা ...

  • উইন্ডোজকে তার ডিরেক্টরি অবস্থানটি পুরোপুরি যোগ্যতার দ্বারা নিবন্ধকরণের জন্য সঠিক লাইব্রেরি ফাইল বেছে নিতে সহায়তা করুন।

    1. ডান ব্যাচ ফাইল থেকে সিস্টেম ফোল্ডারের পাথ অনুলিপি করুন
      • যদি 64-বিট: C:\Windows\System32
      • যদি 32-বিট: C:\Windows\SysWOW64
    2. এটি পরবর্তী লাইনে আটকে দিন যাতে এটি পূর্ববর্তী হয় %nx1
      • যদি 64-বিট: regsvr32 "C:\Windows\System32\%nx1"
      • যদি 32-বিট: regsvr32 "C:\Windows\SysWOW64\%nx1"
        • উদ্ধৃতি চিহ্নের ভিতরে পথটি আটকান
        • %nx1সিস্টেম ফোল্ডার পথ থেকে পৃথক করতে ব্যাকস্ল্যাশ .োকান
      • বা ...

  • এই শটগান ব্যাচ ফাইলটি চালান, যা (ক্রমে) করবে:

    1. বাতিল হওয়া নিবন্ধকরণ প্রক্রিয়াগুলি পরিষ্কার করুন
      • আপনার লাইব্রেরি ফাইল দ্বারা সম্পন্ন যে কোনও নিবন্ধকরণ প্রক্রিয়া বিপরীত;
      • আপনার লাইব্রেরি ফাইলের কোনও অনুলিপি মুছুন যা কোনও সিস্টেম ফোল্ডারে সংরক্ষণ করা হয়েছে;
      • এই মুহুর্তে আপনাকে ব্যাচ ফাইলটি শেষ করার অনুমতি দেওয়ার জন্য বিরতি দিন (এবং আপনি চাইলে অন্যটি চালান)।
    2. আপনার লাইব্রেরি ফাইলে 64-বিট ইনস্টলেশন করার চেষ্টা করুন
      • আপনার লাইব্রেরির ফাইলটিতে অনুলিপি করুন C:\Windows\System32;
      • আপনার লাইব্রেরি ফাইলটি একটি 64-বিট প্রক্রিয়া হিসাবে নিবন্ধন করুন;
      • এই মুহুর্তে আপনাকে ব্যাচ ফাইলটি শেষ করার অনুমতি দেওয়ার জন্য বিরতি দিন।
    3. 64-বিট ইনস্টলেশন পূর্বাবস্থায় ফেরান
      • Library৪-বিট প্রক্রিয়া হিসাবে আপনার লাইব্রেরি ফাইলের যে কোনও নিবন্ধকে বিপরীত করুন;
      • আপনার লাইব্রেরি ফাইলটি মুছুন C:\Windows\System32;
      • এই মুহুর্তে আপনাকে ব্যাচ ফাইলটি শেষ করার অনুমতি দেওয়ার জন্য বিরতি দিন (এবং আপনি চাইলে অন্যটি চালান)।
    4. আপনার লাইব্রেরি ফাইলে 32-বিট ইনস্টলেশন করার চেষ্টা করুন
      • এতে আপনার লাইব্রেরি ফাইলটি অনুলিপি করুন C:\Windows\SystemWOW64
      • আপনার লাইব্রেরি ফাইলটি 32-বিট প্রক্রিয়া হিসাবে নিবন্ধন করুন;
      • এই মুহুর্তে আপনাকে ব্যাচ ফাইলটি শেষ করার অনুমতি দেওয়ার জন্য বিরতি দিন।
    5. লাইব্রেরী ফাইলের মূল, অনিবন্ধিত অনুলিপি মুছুন

Run as administratorআমি যখন ব্যাট ফাইলের জন্য একটি শর্টকাট তৈরি করেছি তখন গ্রাই আউট হয়ে যায়। আমি প্রশাসক হিসাবে লগ ইন করছি। এছাড়াও, এটা %nx1নাকি %n1?
জন গ্রাহ

3

উইন্ডোজ in-এ একটি পার্থক্য রয়েছে Administ অ্যাডমিনিস্ট্রেটর হিসাবে লগ ইন করা প্রশাসক হিসাবে কোনও প্রোগ্রাম চালানোর সময় একই অধিকার দেয় না

সূচনাতে যান - সমস্ত প্রোগ্রাম - অ্যাকসেসরিজ। কমান্ড উইন্ডোতে ডান ক্লিক করুন এবং "প্রশাসক হিসাবে চালান" নির্বাচন করুন এখন dllকে সাধারণত নিবন্ধ করুন: regsrvr32 xxx.dll


3

এবং এটি করার সময়, আপনি যদি ত্রুটি কোড 0x80040201 পান তবে DllRegisterServer এ সমাধানটি ত্রুটি কোড 0x80040201 দ্বারা ব্যর্থ হয়েছে , তবে নিশ্চিত হন, আপনি প্রশাসক হিসাবে রান হিসাবে কমান্ড প্রম্পটটি ওপেন করুন ।


3

আপনি চালাতে প্রয়োজন cmd.exeমধ্যেc:\windows\system32\ by administrator

কমান্ডগুলি: নিবন্ধভুক্তকরণের জন্য * .dll ফাইল

regsvr32.exe /u C:\folder\folder\name.dll

* .Dll ফাইল নিবন্ধনের জন্য

regsvr32.exe C:\folder\folder\name.dll

2

Regsvr32 সম্পর্কিত বিভ্রান্তির অংশটি হ'ল 64৪-বিট উইন্ডোতে নাম এবং পথ পরিবর্তন হয়নি, তবে এটি এখন -৪-বিট ডিএলএল নিবন্ধিত করে। 32-বিট regsvr32 সিসডাব্লু 64 এ বিদ্যমান, এমন একটি নাম যা 64-বিট অ্যাপ্লিকেশনগুলিকে উপস্থাপন করে। তবে নামে ডাব্লুডাব্লু Windows উইন্ডোজ on৪ এর উইন্ডোজকে বা উইন্ডোজ -৪-বিটের আরও স্পষ্টতা উইন্ডোজ 32-বিটকে বোঝায়। আপনি যখন এইভাবে চিন্তা করেন তখন নামটি অর্থটি অনুধাবন করে যদিও এটি এই প্রসঙ্গে বিভ্রান্তিকর।

আমি আমার মূল উত্সটি একটি এমএসডিএন ব্লগে খুঁজে পাচ্ছি না তবে এটি এই উইকিপিডিয়া নিবন্ধে উল্লেখ করা হয়েছে http://en.wikedia.org/wiki/WoW64


1

আমি এখানে একটি Win7 x64 মেশিনে এই সমস্যাটি কীভাবে স্থির করেছি:

1 - ত্রুটি বার্তা:

"CoCreateInstance () Plkease ব্যর্থ হয়েছে আপনার রেজিস্ট্রি এন্ট্রি চেক করুন CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3} এবং নিশ্চিত করুন যে আপনি প্রশাসক হিসাবে লগ ইন করেছেন"

2 - প্রক্রিয়া ঠিক করুন:

  • Cmd.exe ক্লিক করুন এবং "প্রশাসক হিসাবে চালান" চয়ন করুন
  • টাইপ করা হয়েছে: regsvr32 / s সি: \ প্রোগ্রাম ফাইলস \ অটোডেস্ক \ 3 ডিএস ম্যাক্স ডিজাইন 2015 \ atl.dll regsvr32 / s সি: \ প্রোগ্রাম ফাইলস \ অটোডেস্ক \ 3 ডিএস সর্বাধিক ডিজাইন 2015 \ MAXCompferences.dll
  • উইন 7 পুনরায় আরম্ভ করুন এবং আবার ব্যবসায় ফিরে!

আশাকরি এটা সাহায্য করবে !

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