আমার কাছে একটি বাইনারি ফাইল রয়েছে - উইন্ডোজ স্ট্যাটিক লাইব্রেরি (* .lib)।
সেই লাইব্রেরি থেকে ফাংশনগুলির নাম এবং তাদের ইন্টারফেসের সন্ধান করার কোন সহজ উপায় আছে?
এর মতো কিছু emfar
এবং elfdump
ইউটিলিটিগুলি (লিনাক্স সিস্টেমে)?
আমার কাছে একটি বাইনারি ফাইল রয়েছে - উইন্ডোজ স্ট্যাটিক লাইব্রেরি (* .lib)।
সেই লাইব্রেরি থেকে ফাংশনগুলির নাম এবং তাদের ইন্টারফেসের সন্ধান করার কোন সহজ উপায় আছে?
এর মতো কিছু emfar
এবং elfdump
ইউটিলিটিগুলি (লিনাক্স সিস্টেমে)?
উত্তর:
ধরে নিই যে আপনি একটি স্ট্যাটিক লাইব্রেরি সম্পর্কে কথা বলছেন, গ্রন্থাগারে DUMPBIN /SYMBOLS
ফাংশন এবং ডেটা অবজেক্ট দেখায়। যদি আপনি কোনও আমদানি গ্রন্থাগার (কোনও .lib
একটি ডিএলএল থেকে রফতানি হওয়া প্রতীকগুলিকে বোঝাতে ব্যবহৃত) সম্পর্কে কথা বলছেন তবে আপনি চান DUMPBIN /EXPORTS
।
নোট করুন যে "সি" বাইনারি ইন্টারফেসের সাথে যুক্ত ফাংশনগুলির জন্য, এটি এখনও আপনাকে মান, পরামিতি বা কলিং কনভেনশন ফেরত পাবে না। এই তথ্যটি মোটেই এনকোড করা হয়নি .lib
; আপনাকে অবশ্যই জানতে হবে যে তাদের আগে থেকে সঠিকভাবে কল করার জন্য (উদাহরণস্বরূপ শিরোনামের ফাইলে প্রোটোটাইপের মাধ্যমে)।
সি ++ বাইনারি ইন্টারফেসের সাথে যুক্ত ফাংশনগুলির জন্য, কলিং কনভেনশন এবং আর্গুমেন্টগুলি ফাংশনের রফতানীতে এনকোড করা হয় (এটি "নাম ম্যাঙ্গেলিং" নামেও পরিচিত)। DUMPBIN /SYMBOLS
আপনাকে "ম্যাংলেড" ফাংশন নাম এবং প্যারামিটারগুলির ডিকোডড সেট উভয়ই দেখিয়ে দেবে।
আমি ar t libfile.a
ইউনিক্সের মতো একটি সরঞ্জাম চাইছিলাম ।
উইন্ডোজ সমতুল্য lib.exe /list libfile.lib
।
LIB.EXE হ'ল ভিএস এর লাইব্রেরিয়ান
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(ইউনিক্সে লাইবটোলের মতো)
1) ভিএস 2017 এর জন্য একটি বিকাশকারী কমান্ড প্রম্পট খুলুন (বা আপনার মেশিনে যা কিছু সংস্করণ রয়েছে) (এটি এর অধীনে থাকা উচিত: মেনু শুরু করুন -> সমস্ত প্রোগ্রাম -> ভিজ্যুয়াল স্টুডিও 2017 (বা আপনার মেশিনে যে কোনও সংস্করণ রয়েছে) -> ভিজ্যুয়াল স্টুডিও সরঞ্জাম -> ভিএস 2017 এর জন্য বিকাশকারী কমান্ড প্রম্পট।
2) নিম্নলিখিত কমান্ড লিখুন:
dumpbin /EXPORTS my_lib_name.lib
এটি অন্যান্য উত্তরে যেমন দেখা যায় ঠিক তেমন dumpbin.exe
কার্যকর করার পথে আপনার ভিজ্যুয়াল স্টুডিওর সংস্করণে দেওয়া বিকাশকারী কমান্ড প্রম্পটটি খুলতে হবে । অন্যথায়, আপনি হাত দ্বারা প্রয়োজনীয় পরিবেশের ভেরিয়েবল সেট করতে পারেন।
dumpbin /EXPORTS yourlibrary.lib
সাধারণত চিহ্নগুলির একটি ক্ষুদ্র তালিকা প্রদর্শন করবে। অনেক ক্ষেত্রে এটি লাইব্রেরি রফতানির কাজগুলি প্রদর্শন করবে না।
dumpbin /SYMBOLS /EXPORTS yourlibrary.lib
যে চিহ্নগুলি দেখায়, তবে অন্যান্য চিহ্নগুলির একটি অবিশ্বাস্য বিশাল পরিমাণও প্রদর্শন করবে। সুতরাং, আপনি এগুলি ফিল্টার করে নিয়েছেন, সম্ভবত একটি পাইপ দিয়ে findstr
(যদি আপনি কোনও এমএস-উইন্ডোজ সরঞ্জাম চান), বা grep
।
Static
এই সরঞ্জামগুলির মধ্যে একটি ব্যবহার করে কীওয়ার্ডটি অনুসন্ধান করা ভাল ইঙ্গিত বলে মনে হচ্ছে।