2010-07-12 12 views
6

में विधियों के साथ जाने वाले तर्क ढूंढना ठीक है, इसलिए मैं dllbin में सभी विधियों को खोजने के लिए dumpbin.exe/export library.dll का उपयोग कर सकता हूं।सी ++ डीएल के

... लेकिन मैं कैसे पता लगा सकता हूं कि उन तर्कों को पारित करने के लिए? पाठ्यक्रम की एक शीर्षलेख फ़ाइल के बिना।

+0

इसी तरह का प्रश्न: [हेडर के बिना सी ++ डीएल में कॉल फ़ंक्शन] (http://stackoverflow.com/questions/554551/call-function-in-c-dll-without-header) – Amro

उत्तर

8

सामान्य सी-शैली निर्यात (उदाहरण के लिए, विंडोज एपीआई डीएलएल) के लिए: आप नहीं कर सकते। यह जानकारी डीएलएल में संग्रहीत नहीं है और संकलन के बाद अनिवार्य रूप से खो जाती है (जब तक आपके पास हेडर या डीबगिंग प्रतीक नहीं होते)।

दूसरी ओर, सी ++ निर्यात, उनके हस्ताक्षर को उलझन वाले फ़ंक्शन नाम के हिस्से के रूप में संग्रहीत करते हैं और आप उन्हें निर्भरता वॉकर या इसी तरह के टूल का उपयोग करके देख सकते हैं, या उन्हें the UNDNAME tool या DUMPBIN's /SYMBOLS option का उपयोग करके मैन्युअल रूप से डिमंगल कर सकते हैं।

+0

अहह मीठा। धन्यवाद। लेकिन ... मैं नामों को कैसे समझ सकता हूं? उदाहरण के लिए इन विधि नाम: ? GetCpuSpeed ​​@@ YAHXZ ? GetCpuSpeed ​​@ CDLL1 @@ QAEHXZ कोई विचार? – Presidenten

+0

कम से कम निर्भरता वॉकर कुछ मेनू प्रविष्टि के माध्यम से नामों को ध्वस्त करने में सक्षम है। विस्तृत जानकारी के लिए, http://en.wikipedia.org/wiki/Name_mangling – Philipp

+0

के "बाहरी लिंक" अनुभाग देखें अधिक लिंक: http://msdn.microsoft.com/en-us/library/5x49w699.aspx http: //msdn.microsoft.com/en-us/library/b06ww5dd.aspx – Philipp

संबंधित मुद्दे