Építsd a Windows NT 4.0 Visual Studio 2005-ben?

szavazat
17

Egy MFC alkalmazás, próbálok áttérni felhasználása afxext.h, ami _AFXDLLkap létre, ami okozza ezt a hibát, ha én meg /MT:

Használja a / MD kapcsoló _AFXDLL épít

Kutatásaim arra vonatkozólag, hogy lehetetlen, hogy építsenek egy alkalmazás végrehajtása Windows NT 4.0 a Visual Studio (C ++, ebben az esetben) 2005.

Ez tényleg igaz? Vannak olyan megoldás áll rendelkezésre?

A kérdést 03/08/2008 03:48
a forrás felhasználó
Más nyelveken...                            


5 válasz

szavazat
8

Nem, sok alkalmazás épült VS2005, hogy támogatni kell a Windows XP, 2000, NT, az egész köteget. A kérdés az, hogy (alapértelmezés szerint) VS2005 akarja használni a könyvtárak / export nincs jelen NT.

Lásd ezt a szálat valamilyen háttérben.

Ezután indítsa korlátozza a függőségek keresztül előfeldolgozó makrók és elkerülve API, amely nem támogatja az NT.

Válaszolt 03/08/2008 17:54
a forrás felhasználó

szavazat
4

Ahhoz, hogy megszabaduljon a _AFXDLL hiba, próbáltál már változik, hogy a beállításokat használja MFC statikus lib helyett DLL? Ez hasonló ahhoz, amit már most a változó futási lib statikus helyett DLL.

Válaszolt 23/08/2008 02:16
a forrás felhasználó

szavazat
1

Bár nem vagyok tisztában afxext.h, kíváncsi vagyok, mi ez teszi kompatibilis a Windows NT4 ....

Azonban a választ az eredeti kérdésre: „Kutatásaim arra vonatkozólag, hogy lehetetlen, hogy építsenek egy alkalmazás végrehajtása Windows NT 4.0 a Visual Studio (C ++, ebben az esetben) 2005.”

A válasz lehet igen, különösen, ha az alkalmazásban eredetileg írott vagy futó NT4! A afxext.h dolog félre, ezt kell egy egyszerű IGEN.

A másik dolog, én vagyok találni baj van a laza jellegű, amelyben az emberek kidobták az NT távon. Megadott legtöbb ember úgy gondolja, a „NT”, mint a Windows NT4, de ez még mindig nem egyértelmű, mivel a „legtöbb ember” nem egyenlő a „minden ember számára.”

A valóságban a „NT” egyenlő az NT sorozat. Az NT sorozat NT3, NT4, NT5 (2000, XP, 2003) és NT6 (Vista).

Win32 alrendszere, amely célozza meg a C / C ++ kódot is. Tehát nem látok okot arra, hogy miért kellene nem tudja cél ennek NT4 platform & alrendszert, vagy ha ez a platform számhordozás torna, távolítsa el a MFC függőségek VC esetleg impozáns.

Hozzáadjuk a afxext.h a keverékhez, úgy hangzik, hogy nekem, mint egy alrendszer kompatibilitási probléma. Ez része MFC Google kutatás. A afxext.h tűnik az MFC (Microsoft Foundation Class) kiterjesztéseket.

Lehet eltávolítani a függőség MFC? Milyen típusú alkalmazás ez? (CLR, szolgáltatás, grafikus felület?) Tud konvertálni projekt menedzselt C ++ projekt VC 8.0?

Remélhetőleg néhány ez segít mentén.

Válaszolt 18/09/2008 17:18
a forrás felhasználó

szavazat
3

A megoldás az, hogy rögzítse a többszálas DLL. Egyszerű utasításokat . Rövid összefoglaló:

A hajózási 8,0 C Runtime Library DLL (Msvcr80.Dll) nem támogatja NT 4.0 SP6 egyik oka, és az egyik oka csak: valaki a Microsoft hozzá egy függvényhívás GetLongPathNameW, amely nem létezik kernel32.dll NT 4.0.

CRTLIB.C On line 577, van egy hívás GetLongPathNameW. Egyszerűen cserélje ki: ret = 0; csak akkor használja ezt épít Msvcr80.Dll NT 4.0.

Miután megvan dolgozók, jön egy sokkal általánosabb megoldást kell triviális.

Válaszolt 14/10/2008 13:32
a forrás felhasználó

szavazat
-1

Az elképzelés az, hogy az exe szükséges összekapcsolni a statikus könyvtár.

Kérjük, próbálja meg ezt a "Configuration Properties", "General", "Use of MFC" "Use MFC egy statikus Library" "Configuration Properties", "General", "Use of ATL", hogy "Static Link ATL"

"Configuration Properties", "C \ C ++", "Code Generation", "Runtime Library", hogy "a többszálas (\ MT)"

Test Platform Építőanyag Gép: Visual Studio 2005, Windows XP SP2 kliens gép: Windows XP SP2 (nincs VS2005 telepítve)

Válaszolt 21/11/2008 00:04
a forrás felhasználó

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