2009-03-27 16 views
6

पर डायरेक्टएक्स एप्लिकेशन मैं एक डब्ल्यूपीएफ एप्लीकेशन विकसित कर रहा हूं जहां 3 डी भाग डायरेक्टएक्स 9 द्वारा संभाला जाता है (बहुत से 3 डी जो WPF का उपयोग करके पर्याप्त तेज़ी से नहीं चलते थे)।64 बिट विंडोज़

समस्या यह है कि एप्लिकेशन "किसी भी CPU" के साथ कॉन्फ़िगरेशन के रूप में जारी किया जाता है और जब कोई उपयोगकर्ता इसे 64 बिट विंडो पर चलाता है, तो direcX भाग क्रैश (System.BadImageFormatException)। स्पष्ट रूप से डायरेक्टएक्स भाग के लिए शामिल डीएलएस 64 बिट विंडोज़ पर प्रयोग योग्य नहीं है।

यह हमारे अन्य अनुप्रयोगों में उपयोग किए जाने वाले कुछ अन्य 3: rd भाग dlls के साथ हुआ है, लेकिन हमने 64 बिट विंडोज मशीन पर चल रहे हैं तो x64 के लिए बनाए गए लोगों को रनटाइम में डीएलएस को बदलकर हल किया है। क्या आप में से कोई भी जानता है कि मैं x64 के लिए डायरेक्टएक्स 9 डीएलएस कहां पा सकता हूं? अगर वे बिल्कुल मौजूद हैं।

उनके जो मेरे द्वारा की जरूरत है:

  • Microsoft.DirectX.Direct3D
  • Microsoft.DirectX.Direct3DX
  • Microsoft.DirectX

अगर वे मौजूद नहीं है, समस्या यह कर सकते हैं किसी अन्य तरीके से हल किया जाना चाहिए? क्योंकि आवेदन ClickOnce के माध्यम से जारी किया गया है और विन्यास का एक परिवर्तन ClickOnce (विन्यास ClickOnce कुंजी में शामिल है) काम करना बंद कर


मुझे जोड़ने कि मैं एक Winforms उपयोग कर रहा हूँ चलो बनाने मैं 86 के लिए विन्यास को नहीं बदल सकते डब्ल्यूपीएफ एप्लिकेशन द्वारा होस्ट किया गया हिस्सा और यह कि Winforms भाग डायरेक्टएक्स डीएलएस का उपयोग कर रहा है, जिसके बारे में मैं पूछ रहा हूं। WPF: s 3 डी का उपयोग करने के बजाय WPF में बहुत से 3 डी मेष पेश करने का यह एक बेहतर और तेज़ तरीका था। दुर्भाग्य से यह समस्या इसके बजाय हुई।

+0

के रूप में एक अलग रूप में: XNA/खिड़कियों बलों खुद भी 64 पर 32-बिट मोड का उपयोग करने - तो मुझे आश्चर्य है कि अगर यह संभव नहीं है ... मैं वास्तव में पता नहीं है, हालांकि। –

+0

बस एक एफवाईआई, डब्ल्यूपीएफ 3 डी सामान प्रत्यक्ष एक्स के लिए एक रैपर है। वे बहुत ज्यादा हैं। कुछ सामान दें या लें। – Tony

उत्तर

5

डीएलएल की आपको प्रबंधित डायरेक्टएक्स की आवश्यकता है। दुर्भाग्यवश माइक्रोसॉफ्ट अब प्रबंधित डायरेक्टएक्स और इसके उत्तराधिकारी का समर्थन नहीं करता है, एक्सएनए 64 बिट का समर्थन नहीं करता है।

स्लिमडैक्स प्रबंधित डायरेक्टएक्स के लिए एक खुला स्रोत विकल्प है, और यह 64 बिट का समर्थन करता है। दूसरा विकल्प डायरेक्टएक्स कोड को अप्रबंधित सी ++ में लिखना है।

+0

उत्तर देने के लिए धन्यवाद। तो मूल रूप से मुझे पूरे 3 डी भाग को फिर से प्रोग्राम करना होगा यदि मैं चाहता हूं कि यह x64 पर चलने में सक्षम हो। यह कोई भी सीपीयू-कॉन्फ़िगरेशन बेकार है ... –

+1

अच्छी तरह से एक प्रबंधित वातावरण में प्रत्यक्ष एक्स का माइक्रोस्कोफ्ट समर्थन बेकार है, लेकिन हाँ। डायरेक्टएक्स/डब्ल्यूपीएफ इंटरऑप के साथ धक्का को देखते हुए मैं भविष्य में बेहतर समर्थन देखने की उम्मीद कर रहा हूं। –

+0

xna के साथ एक और विकल्प http://forums.create.msdn.com/forums/t/90094.aspx मिश्रण। –

0

आप अपने WPF एप्लिकेशन को केवल 32-बिट ऐप के रूप में चलाने के लिए सेट कर सकते हैं। अपने क्लिकऑन समस्या को एक और SO प्रश्न के रूप में पोस्ट करें। यह शायद आपका सबसे अच्छा विकल्प है।

Project Properties -> Build -> Platform Target -> x86

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