Vă mulțumim pentru susținere

Construiți pentru Windows NT 4.0 utilizând Visual Studio 2005?

O aplicație MFC pe care încerc să o migrez utilizează afxext.h , ceea ce provoacă setarea _AFXDLL , ceea ce provoacă această eroare dacă am setat code>:

Utilizați comutatorul / MD pentru build-urile _AFXDLL

Cercetarea mea până în prezent indică faptul că este imposibil să se creeze o aplicație de executare pe Windows NT 4.0 folosind Visual Studio (în acest caz C ++) 2005.

Este adevărat acest lucru? Există vreo soluție disponibilă?

0
adăugat editat
Pentru înregistrare, ArcGIS 10.0 vine cu Python 2.6.5
adăugat autor akdom
Cineva vă protejează asta.
adăugat autor Jonathan Mee
@Mike, am un tip de post personalizat de resurse și aceste postări au mai multe categorii diferite, cum ar fi "formulare", "mp3" etc. Acum, această zonă Resurse în site este sub o altă secțiune (care este o pagină cu buclă personalizată pentru acele posturi personalizate) care se numește Explorează. ceea ce vreau să realizez este domain.com/Explore/Resources/Resource-Category/Resource-Name sau domian.com/explore/resources/forms/production-form-1. regula mea curentă de rescriere (în register_post_type ()) este 'rescrie' => array ('slug' => "explore/resources", "with_front" => false). Vă mulțumi
adăugat autor Tom
@Mike, tocmai am văzut corespondența din lista de corespondență despre taxonomii, mesaje personalizate și rescrieri și sugestia ta despre noul controler, cred că problema mea este similară cu ceea ce este descris acolo, așa că voi trebui să aștept câteva mai nouă, mai potrivită.
adăugat autor Tom
Am lovit un zid cu această abordare și, de asemenea, ceva a fost complet confundat cu regulile de rescriere (nu a ajutat la anularea, înroșirea și ștergerea acestora), așa că am trecut la altul, dar voi încerca să-l recreez, (cu fișierele șablon necesare) și vă trimite un e-mail pe adresa de e-mail a listei de adrese. Mulțumiri.
adăugat autor Tom
@Amit: Nu este clar ce urmaresti. Nu știu ce vrei să spui atunci când spui "dinamic" că ai cumva numele categoriei postărilor ". Vă rog să explicați mai profund? De asemenea, puteți să ne spuneți ce este tipul dvs. de post particularizat și să oferiți mai multe adrese URL pe care doriți să le producă sistemul dvs.?
adăugat autor MikeSchinkel
Va trebui să fac niște cercetări în legătură cu aceasta, presupunând că altcineva nu-i răspunde corect înainte de a mă face.
adăugat autor MikeSchinkel
Orice șansă ați putea să faceți ca baza dvs. de date WordPress să fie disponibilă astfel încât să o pot încărca și să nu trebuiască să vă recreeze datele pentru a testa acest lucru? Ați putea posta fișierul dump SQL ca un conținut privat la gist.github.com ...
adăugat autor MikeSchinkel

7 răspunsuri

Nu, o versiune de Python pentru fiecare versiune ArcGIS. Motivul pentru aceasta este simplu: majoritatea magiei se întâmplă într-o extensie C (arcgisscripting). API-urile C se modifică de la versiune la versiune și DLL-ul nu va juca frumos în alte versiuni ale Python.

Cu toate acestea, de fiecare dată când principalul site Python.org lansează o soluție de securitate (2.6.X), acestea sunt compatibile binar și pot fi instalate.

16
adăugat

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

ArcGIS 10 final va fi livrat cu o singură versiune a lui python. La   Pre-lansare avem 2.6.2. Cel mai probabil pentru 10 finale vom avea   2.6.5. Spunând asta, ArcGIS 10 va funcționa cu orice versiune 2.6 a Pythonu. Deci, spunem 6 luni de acum, am lansat Python 2.6.6 dar   ArcGIS utilizează numai 2.6.5, puteți instala în siguranță Python 2.6.6 și   ArcGIS va funcționa bine. Rețineți că această compatibilitate funcționează numai cu a   lansarea majoră a Python. Cu alte cuvinte, ArcGIS 10 nu va funcționa niciodată   Python 2.7 sau Python 3.1 sau orice altă eliberare majoră de Python. Numai   Python 2.6 este acceptat.

10
adăugat
Ei bine, merită să încercați.
adăugat autor ESV
Rețineți că postul este de 2 ani. Știți că ceea ce a fost adevărat acum 2 ani și pentru ArcGIS 10.0 nu poate fi în continuare neapărat adevărat pentru ArcGIS 10.x în viitor.
adăugat autor Stephen Quan
ArcGIS 10.2.2 este încă la Python 2.7.x. Cu toate acestea, noua aplicație desktop ArcGIS Pro (care va fi lansată la mijlocul anului 2014) utilizează Python 3.4 - și utilizează același mediu GP (cutii de instrumente) ca Desktop 10x. Deci, scriitorii ArcGIS ar trebui să lucreze la abilitățile lor de a scrie cod care este compatibil 2.7/3.4 - care BTW nu este atât de dificil.
adăugat autor 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.

Pentru sprijinul Python în cele mai recente produse desktop de pe platforma ArcGIS cred că ar trebui să aveți în vedere:

Dacă aveți nevoie să utilizați Python în afara ArcGIS Pro, descărcați   Setarea Python de la My Esri. Această instalare va instala Python   3.4.1, toate cerințele terților cerute de ArcGIS Pro și un fișier ArcGISPro.pth care se utilizează pentru a identifica toate dosarele ArcGIS Pro   necesar pentru a rula ArcPy.

Instrumentele de geoprocesare ArcGIS pentru Desktop necesită Python 2.7.x și   Numerical Python 1.7.x sunt instalate. Dacă setarea ArcGIS pentru Desktop   nu găsește Python 2.7.x sau Python Numeric (NumPy)   1.7.xinstalat pe computerul țintă, Python 2.7.8 și Numerical Python 1.7.1 vor fi instalate în timpul instalării complete a   ArcGIS 10.3.x.

3
adăugat

Nu știu despre arc10, dar în toate versiunile ArcGIS 9 ai putea să actualizezi Python la cea mai recentă și cea mai bună versiune cu câțiva pași simpli . Aceasta este o configurație neacceptată, consultați articolul 31912 al bazei de cunoștințe ESRI . Vă rugăm să raportați dacă acest lucru va funcționa pentru dvs. cu ArcGIS 10.

1
adăugat
Acest lucru funcționează numai pentru versiuni de aceeași versiune major.minor (adică mergând de la 2.6.3 la 2.6.5 în ArcGIS 10). Acest lucru ABSOLUT nu va lucra fiabil mergând de la 2.5.X la 2.6.X în ArcGIS deoarece există unele incompatibilități binare între API-urile versiunilor Python. Dacă funcționează , ești doar norocos. Orice proces lung va avea probabil corupție subtilă și periculoasă a datelor în timp.
adăugat autor Paul
Salut exemple explicite/demonstrații de incompatibilități și/sau corupție de date (sincer, chiar fac). Am modernizat versiuni majore cu Python de mai mulți ani și nu (încă) am întâlnit probleme importante. Pe de altă parte, am văzut câteva corecții destul de importante pentru coruperea datelor de la arcgis . Deci, este un risc pe care sunt dispus să îl iau, dar cu o atenție și o diligență potrivită.
adăugat autor Greg

Soluționarea este de a repara DLL multi-threaded. Instrucțiuni simple . Rezumat scurt:

Livrarea 8.0 C Runtime Library DLL (MSVCR80.DLL) nu este acceptată   NT 4.0 SP6 pentru un motiv și un singur motiv: cineva de la Microsoft   a adăugat un apel pentru funcția GetLongPathNameW care nu există în   kernel32.dll pe NT 4.0.

     

CRTLIB.C Pe linia 577, există un apel la GetLongPathNameW . pur și simplu înlocuiți-l cu: ret = 0;   utilizați numai această construire a MSVCR80.DLL pe NT 4.0.

Odată ce le-ați luat pe cei care lucrează, găsirea unei soluții mai generice ar trebui să fie banală.

0
adăugat

Pentru a scapa de eroarea _AFXDLL, ai încercat să schimbi setările pentru a utiliza MFC ca un static lib în loc de un DLL? Aceasta este similară cu ceea ce faceți deja în schimbarea libs runtime la statică în loc de DLL.

0
adăugat

Deși nu sunt familiarizat cu afxext.h, mă întreb ce nu-l face incompatibil cu Windows NT4 ....

Cu toate acestea, pentru a răspunde la întrebarea inițială: "Cercetarea mea până în prezent indică faptul că este imposibil să construiți o aplicație de executare pe Windows NT 4.0 folosind Visual Studio (în acest caz C ++) 2005."

Răspunsul ar trebui să fie da, mai ales dacă aplicația a fost inițial scrisă sau rulează pe NT4! Cu lucru afxext.h deoparte, acest lucru ar trebui să fie ușor DA.

Celălalt lucru cu care mă confruntă este natura liberă în care oamenii aruncă termenul NT. Acordat celor mai mulți oameni să se gândească la "NT" ca Windows NT4, dar este încă ambiguă deoarece "majoritatea oamenilor" nu este egală cu "toți oamenii".

În realitate, termenul "NT" este egal cu seriile NT. Seria NT este NT3, NT4, NT5 (2000, XP, 2003) și NT6 (Vista).

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.

Adăugând fișierul afxext.h la mix, mi se pare o problemă de compatibilitate a subsistemului. Face parte din MFC din cercetarea Google. Afxext.h pare a fi extensiile MFC (Microsoft Foundation Class).

Îți poți elimina dependența de MFC? Ce tip de aplicație este aceasta? (CLR, serviciu, interfață GUI?) Puteți converti proiectul într-un proiect C ++ neangajat în VC 8.0?

Sperăm că unele dintre acestea vă vor ajuta.

0
adăugat