Bygg for Windows NT 4.0 ved hjelp av Visual Studio 2005?

stemmer
17

En MFC applikasjon som jeg prøver å migrere bruksområder afxext.h, noe som fører til _AFXDLLfor å få satt, noe som fører til denne feilen hvis jeg setter /MT:

Bruk / MD-bryter for _AFXDLL bygger

Min forskning hittil viser at det er umulig å bygge en applikasjon for kjøring på Windows NT 4.0 ved hjelp av Visual Studio (C ++, i dette tilfellet) 2005.

Er dette virkelig sant? Er det noen løsning tilgjengelig?

Publisert på 03/08/2008 klokken 02:48
kilden bruker
På andre språk...                            


5 svar

stemmer
8

Nei, det er mange applikasjoner bygget med VS2005 som har å støtte Windows XP, 2000, NT, hele bunken. Problemet er at (som standard) VS2005 ønsker å bruke bibliotekene / eksport ikke tilstede på NT.

Se denne tråden for litt bakgrunnsinformasjon.

Deretter starter begrense dine avhengigheter via preprosessor makroer, og unngå APIer som ikke støttes på NT.

Svarte 03/08/2008 kl. 16:54
kilden bruker

stemmer
4

Å kvitte seg med den _AFXDLL feil, har du prøvd å bytte til innstillingene for å bruke MFC-maskinen som en statisk lib i stedet for en DLL? Dette ligner på det du allerede gjør i å endre runtime libs til statisk stedet for DLL.

Svarte 23/08/2008 kl. 01:16
kilden bruker

stemmer
3

Løsningen er å feste den flertråds DLL. Enkle instruksjonene . Kort sammendrag:

Den frakt 8,0 C Runtime Library DLL (msvcr80.dll) støtter ikke NT 4.0 SP6 for en grunn og en grunn bare: noen på Microsoft lagt til en funksjon kall til GetLongPathNameWsom ikke finnes i kernel32.dll på NT 4.0.

CRTLIB.C On line 577, det er et kall til GetLongPathNameW. bare erstatte den med: ret = 0; bare bruke denne build av Msvcr80.Dll på NT 4.0.

Når du har fått de arbeider, bør komme opp med en mer generell løsning være trivielt.

Svarte 14/10/2008 kl. 12:32
kilden bruker

stemmer
1

Selv om jeg er ikke kjent med afxext.h, jeg lurer på hva det gjør det uforenlig med Windows NT4 ....

Men for å svare på det opprinnelige spørsmålet: "Min forskning hittil viser at det er umulig å bygge en applikasjon for kjøring på Windows NT 4.0 ved hjelp av Visual Studio (C ++, i dette tilfellet) 2005."

Svaret bør være ja, spesielt hvis søknaden ble opprinnelig skrevet eller kjører på NT4! Med afxext.h ting til side, bør dette være en enkel YES.

Den andre tingen jeg finner problemer med er løs naturen som folk kaster ut NT sikt. Gitt folk flest tenker på 'NT' som Windows NT4, men det er fortsatt tvetydig fordi 'folk flest' er ikke lik 'alle mennesker'.

I realiteten begrepet 'NT' er lik NT-serien. NT-serien er NT3, NT4, NT5 (2000, XP, 2003) og NT6 (Vista).

Win32 er et delsystem som du målrette C / C ++ kode også. Så jeg ser ingen grunn til at man ikke skal kunne målrette denne NT4 plattformens delsystem eller, hvis dette er en plattform porting excercise, fjerne MFC avhengigheter som VC er muligens imponerende.

Legge til afxext.h til mix, det høres for meg ut som et delsystem kompatibilitetsproblem. Det er en del av MFC fra Google forskning. Den afxext.h synes å være de MFC (Microsoft Foundation Class) utvidelser.

Kan du fjerne avhengigheten av MFC? Hva slags program er dette? (CLR, service, GUI-grensesnitt?) Kan du konvertere prosjektet til en uovervåkede C ++ prosjekt i VC 8.0?

Forhåpentligvis noe av dette vil hjelpe deg med.

Svarte 18/09/2008 kl. 16:18
kilden bruker

stemmer
-1

Tanken er at exe er nødvendig for å koble til statisk bibliotek.

Vennligst prøv denne "Configuration Properties", "Generelt", "Bruk av MFC" til "Bruk MFC i en statisk Library" "Configuration Properties", "Generelt", "Bruk av ATL" til "Statisk Link til ATL"

"Configuration Properties", "C \ C ++", "Code Generation", "Runtime Library" til "multi-threaded (\ MT)"

Test Platform Bygg Machine: Visual Studio 2005 på Windows XP SP2 Client Machine: Window XP SP2 (ingen VS2005 installert)

Svarte 20/11/2008 kl. 23:04
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more