विजुअल स्टूडियो 2005 का उपयोग कर विंडोज एनटी 4.0 के लिए बनाएँ?

एक एमएफसी एप्लिकेशन जिसे मैं माइग्रेट करने का प्रयास कर रहा हूं afxext.h का उपयोग करता है, जो सेट करने के लिए _AFXDLL का कारण बनता है, जो इस त्रुटि का कारण बनता है यदि मैं / MT </कोड>:

कृपया _AFXDLL बिल्ड

के लिए / MD स्विच का उपयोग करें

तिथि से मेरा शोध इंगित करता है कि विजुअल स्टूडियो (सी ++, इस मामले में) 2005 का उपयोग कर विंडोज एनटी 4.0 पर निष्पादन के लिए आवेदन बनाना असंभव है।

क्या यह वास्तव में सच है? क्या कोई कामकाज उपलब्ध है?

0
जोड़ा संपादित
विचारों: 1
रिकॉर्ड के लिए, आर्कजीआईएस 10.0 पायथन 2.6.5 के साथ आता है
जोड़ा लेखक akdom, स्रोत
कृपया कोई इसकी रक्षा करें।
जोड़ा लेखक Jonathan Mee, स्रोत
@ माइक, मेरे पास 'संसाधन' का एक कस्टम पोस्ट प्रकार है और इन पोस्टों में 'फॉर्म', 'एमपी 3' जैसी कई अलग-अलग श्रेणियां हैं। साइट पर यह संसाधन क्षेत्र किसी अन्य अनुभाग के अंतर्गत है (जो कस्टम लूप वाला एक पृष्ठ है उन कस्टम पोस्ट) जिन्हें एक्सप्लोर कहा जाता है। जो मैं प्राप्त करना चाहता हूं वह डोमेन.com/Explore/Resources/Resource-Category/Resource- नाम या domian.com/explore/resources/forms/production-form-1 है। मेरा वर्तमान पुनर्लेखन नियम (register_post_type() में) 'rewrite' => array ('slug' => "एक्सप्लोर/संसाधन", 'with_front' => झूठा है)। शीघ्र प्रतिक्रिया के लिए शुक्रिया!
जोड़ा लेखक Tom, स्रोत
@ माइक, मैंने टैक्सोनोमी, कस्टम पोस्ट और रीराइट्स और नए नियंत्रक के बारे में आपके ट्रैक सुझाव के बारे में मेलिंग सूची में पत्राचार देखा, मुझे लगता है कि मेरी समस्या वहां वर्णित चीज़ों के समान है, इसलिए मुझे कुछ इंतजार करना होगा नया, अधिक उपयुक्त कार्यान्वयन।
जोड़ा लेखक Tom, स्रोत
मैंने थोड़ी सी इस दृष्टिकोण के साथ एक दीवार मारा और कुछ भी पुनः लिखने के नियमों के साथ पूरी तरह से गड़बड़ हो गया (रद्द करने, फ्लश करने और न ही उन्हें हटाने में मदद नहीं मिली) इसलिए मैं एक अलग से बदल गया, लेकिन मैं इसे फिर से बनाने की कोशिश करूंगा, पैक यह (आवश्यक टेम्पलेट फ़ाइलों के साथ) और मेलिंग-सूची ईमेल पते पर आपको ईमेल करता है। धन्यवाद।
जोड़ा लेखक Tom, स्रोत
@ प्रवेश: यह स्पष्ट नहीं है कि आप क्या कर रहे हैं। मुझे यकीन नहीं है कि जब आप कहते हैं कि "गतिशील रूप से 'पदों की श्रेणी का नाम किसी भी तरह से प्राप्त करें" । क्या आप कृपया अधिक गहराई में समझा सकते हैं? साथ ही, क्या आप कृपया हमें बता सकते हैं कि आपका कस्टम पोस्ट प्रकार क्या है और कई उदाहरण यूआरएल देते हैं जिन्हें आप अपनी प्रणाली का उत्पादन करना चाहते हैं?
जोड़ा लेखक MikeSchinkel, स्रोत
मुझे इस पर कुछ शोध करने जा रहे हैं, मानते हैं कि कोई और ऐसा करने से पहले सही तरीके से इसका उत्तर नहीं देता है।
जोड़ा लेखक MikeSchinkel, स्रोत
किसी भी मौके पर आप अपना वर्डप्रेस डेटाबेस किसी भी तरह से उपलब्ध करा सकते हैं ताकि मैं इसे लोड कर सकूं और इसका परीक्षण करने के लिए अपने डेटा को फिर से बनाना नहीं पड़े? आप gist.github.com पर एक निजी गिस्ट के रूप में SQL डंप फ़ाइल पोस्ट कर सकते हैं ...
जोड़ा लेखक MikeSchinkel, स्रोत

7 उत्तर

नहीं, ArcGIS की प्रति रिलीज पायथन के एक संस्करण। इसका कारण सरल है: अधिकांश जादू एक सी एक्सटेंशन (arcgisscripting) में होता है। सी एपीआई संस्करण से संस्करण में बदल जाते हैं, और डीएलएल पाइथन के अन्य संस्करणों में अच्छा नहीं खेलेंगे।

हालांकि, हर बार मुख्य Python.org साइट एक सुरक्षा फिक्स (2.6.एक्स) जारी करती है, वे बाइनरी संगत हैं और स्थापित की जा सकती हैं।

16
जोड़ा

Nope. An Esri staff member says no in a forum reponse post:

आर्कजीआईएस 10 फाइनल एक और एक पायथन के केवल एक संस्करण के साथ जहाज जाएगा। पर   प्री-रिलीज हमारे पास 2.6.2 है। शायद 10 फाइनल के लिए हमारे पास होगा   2.6.5। ऐसा कहकर, आर्कजीआईएस 10 पायथन के किसी भी 2.6 संस्करण के साथ काम करेगा। तो अब से 6 महीने कहें, हमारे पास पाइथन 2.6.6 जारी है लेकिन   आर्कजीआईएस केवल 2.6.5 का उपयोग कर रहा है, आप सुरक्षित रूप से पायथन 2.6.6 स्थापित कर सकते हैं और   आर्कजीआईएस ठीक काम करेगा। ध्यान दें कि यह संगतता केवल एक के साथ काम करती है   पायथन की प्रमुख रिलीज। दूसरे शब्दों में आर्कजीआईएस 10 कभी काम नहीं करेगा   पायथन 2.7 या पायथन 3.1 या अजगर की कोई अन्य प्रमुख रिलीज। केवल   पायथन 2.6 समर्थित है।

10
जोड़ा
आह ठीक है, एक कोशिश के लायक है।
जोड़ा लेखक ESV, स्रोत
ध्यान रखें कि पोस्ट 2 साल पुराना है। आप जानते हैं कि 2 साल पहले क्या सच था और आर्कजीआईएस 10.0 के लिए भविष्य में आर्कजीआईएस 10.x के लिए अभी भी सच नहीं हो सकता है।
जोड़ा लेखक Stephen Quan, स्रोत
आर्कजीआईएस 10.2.2 अभी भी पायथन 2.7.x पर है। हालांकि नया आर्कजीआईएस प्रो डेस्कटॉप एप्लिकेशन (2014 के मध्य में रिलीज होने के लिए) पायथन 3.4 का उपयोग करता है - और उसी जीपी पर्यावरण (टूलबॉक्स) का उपयोग डेस्कटॉप 10x के रूप में करता है। तो आर्कजीआईएस स्क्रिप्टर्स को अपने कौशल लेखन कोड पर काम करना चाहिए जो कि 2.7/3.4 संगत है - जो बीटीडब्ल्यू मुश्किल नहीं है।
जोड़ा लेखक Curtis Price, स्रोत

I think it is important to make this Q&A cover not just ArcGIS Desktop 10.0, Python 2.7 and Python 3.1, but also to incorporate the latest versions of desktop products from the ArcGIS platform and the Python programming language.

आर्कजीआईएस मंच से (वर्तमान में) नवीनतम डेस्कटॉप उत्पादों में पाइथन समर्थन के लिए मुझे लगता है कि आपको विचार करना चाहिए:

यदि आपको आर्कजीआईएस प्रो के बाहर पाइथन का उपयोग करने की आवश्यकता है, तो डाउनलोड करें   माई एस्सी से पाइथन सेटअप। यह स्थापना पायथन स्थापित करेगा   3.4.1, आर्कजीआईएस प्रो द्वारा आवश्यक सभी तृतीय-पक्ष आवश्यकताओं, और एक ArcGISPro.pth फ़ाइल जिसका उपयोग सभी आर्कजीआईएस प्रो फ़ोल्डरों की पहचान के लिए किया जाता है   ArcPy चलाने के लिए आवश्यक है।

डेस्कटॉप geoprocessing उपकरणों के लिए ArcGIS की आवश्यकता है कि Python 2.7.x और   संख्यात्मक पायथन 1.7.x स्थापित हैं। यदि डेस्कटॉप सेटअप के लिए आर्कजीआईएस   पाइथन 2.7.x या न्यूमेरिकल पायथन (NumPy) नहीं मिला है   लक्ष्य कंप्यूटर पर 1.7.x इंस्टॉल किया गया, पायथन 2.7.8 और न्यूमेरिकल पायथन 1.7.1 की पूरी स्थापना के दौरान स्थापित किया जाएगा   आर्कजीआईएस 10.3.x।

3
जोड़ा

मुझे arc10 के बारे में पता नहीं है, लेकिन सभी आर्कजीआईएस 9 संस्करणों में आप पाइथन को नवीनतम और सबसे बड़े संस्करण में कुछ सरल कदम । यह एक असमर्थित कॉन्फ़िगरेशन है, ESRI नॉलेजबेस आलेख 31912 देखें। अगर यह आपके लिए आर्कजीआईएस 10 के साथ काम करता है तो कृपया रिपोर्ट करें।

1
जोड़ा
यह केवल उसी प्रमुख.मिनेर संस्करण (यानी आर्कजीआईएस 10 में 2.6.3 से 2.6.5 तक) के रिलीज के लिए काम करता है। यह पूरी तरह से काम नहीं करेगा आर्कजीआईएस में 2.5.एक्स से 2.6.एक्स तक जा रहा है क्योंकि पाइथन संस्करणों के एपीआई के बीच कुछ बाइनरी असंगतताएं हैं। यदि यह करता है काम करता है, तो आप बस भाग्यशाली हैं। लंबे समय तक चलने वाले किसी भी समय सूक्ष्म और खतरनाक डेटा भ्रष्टाचार के साथ समय के साथ भ्रष्टाचार होगा।
जोड़ा लेखक Paul, स्रोत
मैं असंगतताओं और/या डेटा भ्रष्टाचार के स्पष्ट उदाहरण/प्रदर्शनों का स्वागत करता हूं (ईमानदारी से, मैं वास्तव में करता हूं)। मैंने कई वर्षों तक प्रमुख पायथन संस्करणों में अपग्रेड किया है और अभी तक (अभी तक) किसी भी महत्वपूर्ण मुद्दे का सामना नहीं किया है। दूसरी तरफ मैंने कुछ सुंदर arcgis से महत्वपूर्ण डेटा भ्रष्टाचार देखा है। तो, यह एक जोखिम है जिसे मैं लेने के लिए तैयार हूं, लेकिन उपयुक्त सावधानी और सावधानी बरतने के साथ।
जोड़ा लेखक Greg, स्रोत

वर्कअराउंड बहु-थ्रेडेड डीएलएल को ठीक करना है। सरल निर्देश । संक्षिप्त सारांश:

<�पी> शिपिंग 8.0 सी रनटाइम लाइब्रेरी डीएलएल (MSVCR80.DLL) का समर्थन नहीं करता है   एक कारण के लिए एनटी 4.0 एसपी 6 और केवल एक कारण: माइक्रोसॉफ्ट में कोई    GetLongPathNameW पर फ़ंक्शन कॉल जोड़ा गया जिसमें मौजूद नहीं है   एनटी 4.0 पर kernel32.dll।      

CRTLIB.C लाइन 577 पर, GetLongPathNameW पर एक कॉल है। बस इसे इसके साथ बदलें: ret = 0;   केवल NT 4.0 पर MSVCR80.DLL के इस बिल्ड का उपयोग करें।

एक बार जब आप काम कर चुके हैं, तो अधिक सामान्य समाधान के साथ आना तुच्छ होना चाहिए।

0
जोड़ा

_AFXDLL त्रुटि से छुटकारा पाने के लिए, क्या आपने एमएफसी का उपयोग डीएलएल के बजाय स्थिर lib के रूप में करने के लिए सेटिंग्स में बदलने का प्रयास किया है? यह डीएलएल के बजाए रनटाइम libs को स्थिर में बदलने में पहले से ही कर रहा है।

0
जोड़ा

हालांकि मैं afxext.h से परिचित नहीं हूं, मैं सोच रहा हूं कि इसके बारे में क्या यह विंडोज एनटी 4 के साथ असंगत है ....

हालांकि, मूल प्रश्न का उत्तर देने के लिए: "तिथि से मेरा शोध इंगित करता है कि विजुअल स्टूडियो (सी ++, इस मामले में) 2005 का उपयोग कर विंडोज एनटी 4.0 पर निष्पादन के लिए आवेदन बनाना असंभव है।"

जवाब हाँ होना चाहिए, विशेष रूप से यदि एप्लिकेशन मूल रूप से लिखा गया था या एनटी 4 पर चल रहा था! Afxext.h चीज़ के साथ, यह एक आसान हाँ होना चाहिए।

दूसरी चीज जो मुझे परेशानी मिल रही है वह ढीली प्रकृति है जिसमें लोग एनटी टर्म फेंक रहे हैं। माना जाता है कि ज्यादातर लोग विंडोज एनटी 4 के रूप में 'एनटी' के बारे में सोचते हैं लेकिन यह अभी भी संदिग्ध है क्योंकि 'अधिकांश लोग' सभी लोगों के बराबर नहीं हैं।

हकीकत में 'एनटी' शब्द एनटी श्रृंखला के बराबर है। एनटी श्रृंखला एनटी 3, एनटी 4, एनटी 5 (2000, एक्सपी, 2003) और एनटी 6 (विस्टा) है।

Win32 is a subsystem which you target your C/C++ code too. So I see no reason why one should not be able target this NT4 platform & subsystem or, if this is a platform porting excercise, remove the MFC dependencies that VC is possibly imposing.

मिश्रण में afxext.h जोड़ना, यह मुझे उपप्रणाली संगतता समस्या की तरह लगता है। यह मेरे Google शोध से एमएफसी का हिस्सा है। Afxext.h एमएफसी (माइक्रोसॉफ्ट फाउंडेशन क्लास) एक्सटेंशन प्रतीत होता है।

क्या आप एमएफसी पर अपनी निर्भरता को हटा सकते हैं? यह किस प्रकार का आवेदन है? (सीएलआर, सेवा, जीयूआई इंटरफ़ेस?) क्या आप प्रोजेक्ट को वीसी 8.0 में एक अप्रबंधित सी ++ प्रोजेक्ट में परिवर्तित कर सकते हैं?

उम्मीद है कि इनमें से कुछ आपको मदद करेंगे।

0
जोड़ा