दिलचस्प पोस्ट
जीमेलसेन्डर के माध्यम से ईमेल संलग्नक भेज रहा है? मैं जावास्क्रिप्ट के साथ सभी कुकीज़ कैसे हटा सकता हूं? नोटिस / चेतावनी पर स्क्रिप्ट निष्पादन रोकें AngularJS jQuery से बेहतर क्या करता है? डबल बफरिंग जब OnPaint में ड्राइंग न हो तो: यह काम क्यों नहीं करता? आईओएस के लिए एनईटी यूनिट टेस्ट रनर पांडा डेटाफ़्रेम में सूचियों की सूची प्राप्त करना एक इकाई परीक्षण में HttpContext.Current.Session सेट ओरेकल में वर्कर और वर्चार 2 के बीच क्या अंतर है? जावा कोड के कुछ वर्गों के लिए एक्लिप्स कोड फॉर्मेटर कैसे बंद करें? रियायती WCF सेवा में ".svc" एक्सटेंशन को कैसे निकालें? जावा 8 की वैकल्पिक स्ट्रीम फ्लैटमैप के साथ प्रयोग करना एल्गोरिदम: एक सरणी से डुप्लिकेट पूर्णांक निकालने का प्रभावी तरीका आईट्यून्स सभी आईओएस (आईफोन / आईपैड / एपल वॉच) उपकरणों के लिए स्क्रीनशॉट आकार से कनेक्ट करें छद्म तत्वों के अंदर घोंसले के शिकार छद्म तत्व

64 बिट प्रक्रिया से 32 बिट कोड कॉलिंग

मेरे पास एक आवेदन है जिसे हम 32 बिट से 64 बिट में माइग्रेट करने का प्रयास कर रहे हैं। यह एनआईटी है, एक्स 64 झंडे का इस्तेमाल करते हुए संकलित हालांकि, हमारे पास 32 बिट के लिए संकलित फॉरट्रान 90 में लिखे गए कई DLL हैं फोरट्रान DLL में फ़ंक्शंस काफी सरल हैं: आप डेटा डालते हैं, डेटा खींचते हैं; किसी भी प्रकार की कोई स्थिति नहीं हम भी वहाँ बहुत समय नहीं खर्च करते हैं, शायद 3% की कुल, लेकिन गणना तर्क यह करता है अमूल्य है।

क्या मैं 64bit कोड से 32 बिट DLL को कॉल कर सकता हूं? एमएसडीएन बताता है कि मैं नहीं कर सकता, अवधि। मैंने कुछ सरल हैकिंग की है और यह सत्यापित किया है। सब कुछ एक अवैध प्रविष्टि बिंदु अपवाद फेंकता है मैंने अभी तक पाया है कि एकमात्र संभव समाधान सभी 32 बिट DLL फ़ंक्शन के लिए COM + wrappers बनाना है और 64 बिट प्रक्रिया से COM को खोलता है। यह काफी सिरदर्द की तरह लगता है हम वाह अनुकरण में भी प्रक्रिया चला सकते हैं, लेकिन फिर मेगिंग की अधिकतम सीमा बढ़ा नहीं की जाएगी, लगभग 1.6 जीबी पर कैपिंग

क्या 32bit DLL को 64 बिट सीएलआर प्रक्रिया से कॉल करने का कोई दूसरा तरीका है?

Solutions Collecting From Web of "64 बिट प्रक्रिया से 32 बिट कोड कॉलिंग"

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

यहां एक बहुत अच्छा लेख है:

32-बिट DLL को 64-बिट कोड से एक्सेस करना

आपको अपने निष्पादन योग्य प्रक्रियाओं को 32-बिट प्रक्रियाओं (किसी भी सीपीयू या x64 बनाम) के रूप में लिखना होगा ताकि वे Vista के लिए WoW32 के साथ लोड हो जाएंगे। यह उन्हें 32-बिट इम्यूलेशन मोड में लोड करेगा और आपके पास प्रविष्टि बिंदु समस्या नहीं होगी। आप किसी भी सीपीयू मोड में आपको पुस्तकालय छोड़ सकते हैं, लेकिन आपके निष्पादनयोग्य को x 86 के रूप में संकलित करना होगा।

जॉन का उत्तर सही है यदि आप अपने मौजूदा डीएलएस को पुनः कंपाइल नहीं करना चाहते हैं; हालांकि यह आपके लिए एक विकल्प भी हो सकता है।

हमारी टीम वर्तमान में मेमोरी छत को बढ़ाने के लिए हमारे एक्स 86 फोरट्रान कोड को एक्स 64 में माइग्रेट कर रही है।