উইন্ডোজ লাইব্রেরির বিষয়বস্তুগুলি কীভাবে দেখুন (* .lib)


179

আমার কাছে একটি বাইনারি ফাইল রয়েছে - উইন্ডোজ স্ট্যাটিক লাইব্রেরি (* .lib)।
সেই লাইব্রেরি থেকে ফাংশনগুলির নাম এবং তাদের ইন্টারফেসের সন্ধান করার কোন সহজ উপায় আছে?

এর মতো কিছু emfarএবং elfdumpইউটিলিটিগুলি (লিনাক্স সিস্টেমে)?


1
দ্রষ্টব্য: .NET নির্দিষ্ট কমান্ড প্রম্পটটি ভিজ্যুয়াল স্টুডিও সংস্করণগুলির সাথে আসে তবে এক্সপ্রেস সংস্করণে আসে না। প্রেরক: social.msdn.microsoft.com/ Forums
en-

উত্তর:


198

ধরে নিই যে আপনি একটি স্ট্যাটিক লাইব্রেরি সম্পর্কে কথা বলছেন, গ্রন্থাগারে DUMPBIN /SYMBOLSফাংশন এবং ডেটা অবজেক্ট দেখায়। যদি আপনি কোনও আমদানি গ্রন্থাগার (কোনও .libএকটি ডিএলএল থেকে রফতানি হওয়া প্রতীকগুলিকে বোঝাতে ব্যবহৃত) সম্পর্কে কথা বলছেন তবে আপনি চান DUMPBIN /EXPORTS

নোট করুন যে "সি" বাইনারি ইন্টারফেসের সাথে যুক্ত ফাংশনগুলির জন্য, এটি এখনও আপনাকে মান, পরামিতি বা কলিং কনভেনশন ফেরত পাবে না। এই তথ্যটি মোটেই এনকোড করা হয়নি .lib; আপনাকে অবশ্যই জানতে হবে যে তাদের আগে থেকে সঠিকভাবে কল করার জন্য (উদাহরণস্বরূপ শিরোনামের ফাইলে প্রোটোটাইপের মাধ্যমে)।

সি ++ বাইনারি ইন্টারফেসের সাথে যুক্ত ফাংশনগুলির জন্য, কলিং কনভেনশন এবং আর্গুমেন্টগুলি ফাংশনের রফতানীতে এনকোড করা হয় (এটি "নাম ম্যাঙ্গেলিং" নামেও পরিচিত)। DUMPBIN /SYMBOLSআপনাকে "ম্যাংলেড" ফাংশন নাম এবং প্যারামিটারগুলির ডিকোডড সেট উভয়ই দেখিয়ে দেবে।


6
উভয় / SYMBOLS এবং / রফতানি আজকাল কাজ করে না। .Lib ফাইলে সমস্ত ফাংশন দেখতে আমাকে | আরও পাইপযুক্ত / সমস্ত ব্যবহার করতে হবে।
ব্যবহারকারী5280911

100

ভিজ্যুয়াল কমান্ড কনসোল খুলুন (ভিজ্যুয়াল স্টুডিও কমান্ড প্রম্পট)

dumpbin /ARCHIVEMEMBERS openssl.x86.lib

অথবা

lib /LIST openssl.x86.lib

বা এটি 7-জিপ দিয়ে খুলুন :) এটি একটি এআর আর্কাইভ


19
7-জিপ সহ দুর্দান্ত কৌশলটি মনে হয় সেখানে দুটি .txt ফাইল রয়েছে তার অর্থ কী?
দামিয়ান

21

আমি ar t libfile.aইউনিক্সের মতো একটি সরঞ্জাম চাইছিলাম ।
উইন্ডোজ সমতুল্য lib.exe /list libfile.lib


4
হ্যাঁ lib (কেবলমাত্র) আপত্তি ফাইলগুলি প্রদর্শন করবে; এটি আপত্তি ফাইলগুলিতে ফাংশন এবং ডেটা প্রদর্শন করবে না।
ব্যবহারকারী 34660

14

"ডাম্পবিন-এক্সপোর্ট" dll এর জন্য কাজ করে তবে কখনও কখনও lib এর জন্য কাজ না করে। লিবের জন্য আমরা "ডাম্পবিন-লিঙ্কারমেম্বার" বা কেবল "ডাম্পবিন-লিঙ্কারেম্বার: 1" ব্যবহার করতে পারি।



13

ডাম্পবিন / রফতানীর বেশিরভাগ তথ্য পাবেন এবং এমএসডিএন হিট করার পরে বাকিগুলি পাবেন।

ভিজ্যুয়াল স্টুডিও প্যাকেজগুলির মধ্যে একটি পান; সি ++


3

1) ভিএস 2017 এর জন্য একটি বিকাশকারী কমান্ড প্রম্পট খুলুন (বা আপনার মেশিনে যা কিছু সংস্করণ রয়েছে) (এটি এর অধীনে থাকা উচিত: মেনু শুরু করুন -> সমস্ত প্রোগ্রাম -> ভিজ্যুয়াল স্টুডিও 2017 (বা আপনার মেশিনে যে কোনও সংস্করণ রয়েছে) -> ভিজ্যুয়াল স্টুডিও সরঞ্জাম -> ভিএস 2017 এর জন্য বিকাশকারী কমান্ড প্রম্পট।

2) নিম্নলিখিত কমান্ড লিখুন:

dumpbin /EXPORTS my_lib_name.lib


2

এটি অন্যান্য উত্তরে যেমন দেখা যায় ঠিক তেমন dumpbin.exeকার্যকর করার পথে আপনার ভিজ্যুয়াল স্টুডিওর সংস্করণে দেওয়া বিকাশকারী কমান্ড প্রম্পটটি খুলতে হবে । অন্যথায়, আপনি হাত দ্বারা প্রয়োজনীয় পরিবেশের ভেরিয়েবল সেট করতে পারেন।

dumpbin /EXPORTS yourlibrary.libসাধারণত চিহ্নগুলির একটি ক্ষুদ্র তালিকা প্রদর্শন করবে। অনেক ক্ষেত্রে এটি লাইব্রেরি রফতানির কাজগুলি প্রদর্শন করবে না।

dumpbin /SYMBOLS /EXPORTS yourlibrary.libযে চিহ্নগুলি দেখায়, তবে অন্যান্য চিহ্নগুলির একটি অবিশ্বাস্য বিশাল পরিমাণও প্রদর্শন করবে। সুতরাং, আপনি এগুলি ফিল্টার করে নিয়েছেন, সম্ভবত একটি পাইপ দিয়ে findstr(যদি আপনি কোনও এমএস-উইন্ডোজ সরঞ্জাম চান), বা grep

Staticএই সরঞ্জামগুলির মধ্যে একটি ব্যবহার করে কীওয়ার্ডটি অনুসন্ধান করা ভাল ইঙ্গিত বলে মনে হচ্ছে।

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