मैं एक सी # विंडोज ऍप्लिकेशन जो भी आंतरिक रूप से कुछ कार्यों कॉल तैयार किया है के साथ भाग जाने के साथ एक कार्यक्रम लोड करने के लिए बनाया गया था [() DllImport के माध्यम से सी ++ DLL से आयातित]का प्रयास गलत प्रारूप अपवाद वी.एस. स्थापना
मेरे सी ++ कोड Win32 प्लेटफ़ॉर्म में डीएलएल के रूप में बनाया गया है जबकि मेरा सी # "कोई भी CPU" प्लेटफार्म के रूप में बनाया गया है।
जब मैं अपने परीक्षण मशीन में .EXE (सी #) चलाने के लिए, मैं एक त्रुटि
बनाया गया था का सामनाके रूप में एक प्रयास HRESULT से गलत प्रारूप अपवाद के साथ एक कार्यक्रम लोड करने के लिए 0x8007000B
हालांकि, अगर मैं अपनी मशीन में वीएसएस 2010 स्थापित करता हूं और फिर EXE चलाता हूं तो यह त्रुटि का सामना नहीं किया जाता है।
1) इस त्रुटि का कारण? 2) वीएसएस स्थापित होने पर त्रुटि क्यों नहीं देखी गई है?
मैं का उपयोग किया है Win7 ओएस (64 बिट) मंच है जो बदले में Win32
में बनाया (सी DllImport का उपयोग कर # में आयातित सी ++ Dll) एक DLL पर निर्भर करता है AnyCPU में .EXE (सी #) के निर्माण के लिए
मुझे लगता है कि यह एक गड़बड़ मिस्चैच त्रुटि है - आपका। डीएल 32-बिट है और आपका .exe 64-बिट या दूसरी तरफ है। वीएस सामानों का एक पूरा समूह स्थापित करता है, हालांकि मुझे नहीं पता कि यह आपकी समस्या का समाधान कैसे करेगा। – dandan78
क्या कोई मदद कर सकता है? –
ओएस, .dll bitness और .exe bitness शामिल करने के लिए कृपया अपना प्रश्न अपडेट करें। साथ ही, अपनी बिल्ड सेटिंग्स की जांच करें और अपने .dll के bitness से मेल खाने के लिए .Net भाग को मजबूर करें। – dandan78