2010-11-04 4 views
5

हमारे पास एक अलग समाधान है जिसमें कई अलग-अलग पुस्तकालय शामिल हैं। हम अभी 64 बिट सिस्टम पर विकास के लिए माइग्रेट हुए हैं और इस बारे में हम सोच रहे हैं कि समाधान में प्रत्येक व्यक्तिगत परियोजना के लिए हमें किस प्लेटफॉर्म लक्ष्य को निर्दिष्ट करना चाहिए।सी # समाधान, क्या सभी परियोजनाएं किसी भी को छोड़कर एसीसीपीयू को लक्षित कर सकती हैं जो x86 होना चाहिए?

वर्तमान समय में, हमारे पास केवल एक लाइब्रेरी प्रोजेक्ट है जो 32 बिट डीएलएल फ़ाइल का संदर्भ देता है। हम इस डीएलएल फ़ाइल के एक इंटरऑप का संदर्भ देते हैं, हालांकि हमें इस परियोजना के लिए मंच के रूप में x86 को लक्षित करते समय एक त्रुटि प्राप्त होती है जबकि शेष परियोजनाओं को समाधान में "कोई भी CPU" छोड़ दिया जाता है।

मेरा सवाल है, क्या हम 32 बिट इंटरऑप का संदर्भ देने वाले किसी भी को छोड़कर हमारी सभी परियोजनाओं पर किसी भी सीपीयू को लक्षित कर सकते हैं? या सिर्फ x86 के लिए सबकुछ बनाना चाहिए क्योंकि यह बिना किसी त्रुटि के काम करता है।

उत्तर

3

हां।

सभी डीएलएल लेकिन कोई भी एसीसीपीयू हो सकता है।

बस प्रक्रिया x86 बनाना सुनिश्चित करें, और सभी डीएलएल 32 बिट्स के रूप में लोड होंगे।

आपको क्या त्रुटि मिल रही है? त्रुटि संदेश जोड़ने से अधिक उपयोगी उत्तर मिलेंगे।

+0

हम 64 बिट मशीन पर विकास कर रहे हैं। जब हम पुस्तकालय को छोड़कर सभी परियोजनाओं के लिए "कोई भी CPU" लक्षित करते हैं, तो 32 बिट डीएलएल संदर्भ की आवश्यकता होती है, यह काम नहीं करता है। हमें एक त्रुटि संदेश प्राप्त होता है "सीएलएसआईडी {संख्या} के साथ घटक के लिए COM क्लास फैक्ट्री को पुनर्प्राप्त करना विफल रहा। – Horges

+0

आह, हाँ, तो यह काम नहीं करेगा। अगर आप केवल EXE प्रोजेक्ट को x86 में बदलते हैं तो यह काम करना चाहिए। – codekaizen

+0

हां, यह काम करता है हमने केवल मुख्य आवेदन को X86 पर सेट किया है और शेष किसी भी सीसीपीयू के रूप में रह सकते हैं। जब (और यदि हम कर सकते हैं) हम एक नया डीएलएल प्राप्त करते हैं जो 64 बिट का समर्थन करता है तो हमें केवल मुख्य एप्लिकेशन के लिए लक्षित प्लेटफॉर्म बदलना होगा। धन्यवाद codekaizen – Horges

1

मुझे लगता है कि यदि आपके सभी डीएल किसी भी सीपीयू हैं, तो आपका .exe x64 या x86 हो सकता है। लेकिन, यदि आपका exe या तो x64 या x86 है तो आपका .dlls अन्य नहीं हो सकता है। इसके अतिरिक्त, यदि आपका .exe AnyCPU है, तो मेरा मानना ​​है कि यह किसी भी मोड में मशीन के मूल में लोड होगा। जिसका अर्थ है कि आपके डीएल के पास आपके सिस्टम के लिए कोई भी सीपीयू या मूल मोड था।

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

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