Vybudovat pro Windows NT 4.0 pomocí Visual Studio 2005?

hlasů
17

Aplikace MFC, že se snažím přenést využití afxext.h, což způsobí, že _AFXDLLke zprovoznění, který způsobuje tuto chybu, pokud jsem nastavil /MT:

Použijte přepínač / MD pro _AFXDLL staví

Můj výzkum doposud ukazuje, že je nemožné vytvořit aplikaci pro výkon systému Windows NT 4.0 pomocí Visual Studio (C ++, v tomto případě) 2005.

Je to skutečně pravda? Existují nějaké řešení k dispozici?

Položena 03/08/2008 v 03:48
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
8

No, existuje mnoho aplikací vytvořené pomocí VS2005, které mají podporovat Windows XP, 2000, NT, celý stoh. Problém je, že (implicitně) VS2005 chce použít knihovny / exports není přítomné na NT.

Viz toto vlákno pro některé pozadí.

Pak se začít omezovat své závislosti prostřednictvím preprocesoru makra, a vyhnout se API, které nejsou podporovány v NT.

Odpovězeno 03/08/2008 v 17:54
zdroj uživatelem

hlasů
4

Jak se zbavit chyby _AFXDLL, zkoušeli jste změnu v nastavení použít MFC jako statické lib namísto DLL? To je podobné tomu, co jste již dělá při změně runtime libs na statické namísto DLL.

Odpovězeno 23/08/2008 v 02:16
zdroj uživatelem

hlasů
3

Řešením je opravit vícevláknové DLL. Jednoduché instrukce . Krátké shrnutí:

Rejdařská 8,0 C Runtime Library DLL (msvcr80.dll) nepodporuje NT 4.0 SP6 z různých důvodů a jen jeden důvod: někdo ve společnosti Microsoft přidal volání funkce pro GetLongPathNameWkteré neexistuje v kernel32.dll na NT 4.0.

CRTLIB.C Na řádku 577, je volání GetLongPathNameW. prostě jej nahradit: ret = 0; používat pouze tento sestavení msvcr80.dll na NT 4.0.

Poté, co jste dostali ti, kteří pracují, přicházejí s více obecné řešení by mělo být triviální.

Odpovězeno 14/10/2008 v 13:32
zdroj uživatelem

hlasů
1

I když nejsem obeznámen s afxext.h, jsem přemýšlel, co je s ním dělá to kompatibilní se systémem Windows NT4 ....

Aby však bylo možné odpovědět na původní otázku: „Můj výzkum do dnešního dne naznačuje, že je nemožné vytvořit aplikaci pro provádění systému Windows NT 4.0 pomocí Visual Studio (C ++, v tomto případě) 2005.“

Odpověď by měla být ano, zvláště v případě, že žádost byla původně napsána nebo běh na NT4! S afxext.h věci stranou, mělo by to být snadné YES.

Další věc, kterou jsem najít potíže s je volné přírodě, ve kterém jsou lidé vyhazovali termín NT. Udělená většina lidí myslí na ‚NT‘ jako Windows NT4, ale je to stále nejasné, protože ‚většina lidí‘ není rovno ‚všem lidem.‘

Ve skutečnosti se pojem ‚NT‘ se rovná řady NT. Řada NT je NT3, NT4, NT5 (2000, XP, 2003) a NT6 (Vista).

Win32 je subsystém, který cílíte C / C ++ kódu příliš. Takže nevidím důvod, proč bychom neměli být schopni cílovou tento NT4 platforma a subsystém nebo, pokud se jedná o cvičení platforma portování, odstranění závislostí MFC, že VC je možná impozantní.

Přidání afxext.h do mixu, to zní mi to jako vydání kompatibility subsystému. Je to součást MFC z mého výzkumu Google. Afxext.h jeví rozšíření MFC (Microsoft Foundation Class).

Můžete odebrat svou závislost na MFC? Jaký typ aplikací je to? (CLR, servis, GUI rozhraní?) Můžete převést projekt do projektu C ++ neřízeným v VC 8.0?

Doufejme, že někteří to pomůže dál.

Odpovězeno 18/09/2008 v 17:18
zdroj uživatelem

hlasů
-1

Předpokládá se, že je potřeba exe odkaz na statické knihovny.

Prosím, zkuste to "Properties Konfigurace", "General", "Použít MFC" na "Použít MFC v statické knihovny" "Vlastnosti konfigurace", "General", "Použití ATL" na "Static Link ATL"

"Vlastnosti konfigurace", "C \ C ++", "Code Generation", "Runtime Library" na "multi-threaded (\ MT)"

Test Platform Build Machine: Visual Studio 2005 na Window XP SP2 klientském počítači: Window XP SP2 (nainstalována žádná VS2005)

Odpovězeno 21/11/2008 v 00:04
zdroj uživatelem

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