Visual Studio 2005 kullanarak Windows NT 4.0 için inşa?

oy
17

Ben kullanımlarını geçirmek çalışıyorum Bir MFC uygulaması afxext.hneden olur, _AFXDLLben ayarlarsanız bu hataya neden kurulum desteği almak için, /MT:

_AFXDLL kurar için / MD anahtarını kullanın

Bugüne kadar Araştırmalarım (durumda C ++) Visual Studio kullanarak Windows NT 4.0 üzerinde yürütülmesi için bir uygulama 2005 inşa etmek imkansız olduğunu gösterir.

Bu gerçekten doğru mu? Herhangi bir geçici çözüm mevcut mu?

Oluştur 03/08/2008 saat 03:48
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
8

Hayır, Windows XP, 2000, NT, tüm yığın desteklemek zorunda VS2005 ile inşa birçok uygulama mevcuttur. Sorun (varsayılan olarak) VS2005 kütüphaneleri / NT üzerinde bulunmayan ihracatını kullanmak istemesi.

Bkz Konuyu bazı arka plan için.

Sonra önişlemci makroları aracılığıyla bağımlılıkları sınırlayıcı ve NT desteklenmemektedir API'leri kaçınarak başlayın.

Cevap 03/08/2008 saat 17:54
kaynak kullanıcı

oy
4

_AFXDLL hata kurtulmak için ayarlarda değişen statik lib yerine DLL olarak MFC kullanmaya çalıştı mı? Bu zaten yerine DLL statik için çalışma zamanı kütüphanelerini değişen ne yaptığınızı benzer.

Cevap 23/08/2008 saat 02:16
kaynak kullanıcı

oy
3

Geçici çözüm çok kanallı DLL düzeltmek etmektir. Basit talimatlar . Kısa özet:

Microsoft'ta birileri bir işlev çağrısı ekledi: nakliye 8.0 C Runtime Library DLL (msvcr80.dll) bir nedeni ve sadece bir nedenden dolayı NT 4.0 SP6 desteklemediği GetLongPathNameWNT 4.0 üzerinde kernel32.dll yok.

Hat 577 üzerinde CRTLIB.C, bir çağrı var GetLongPathNameW. basitçe ile değiştirin: ret = 0; Yalnızca NT 4.0 üzerinde Msvcr80.Dll bu yapı kullanır.

O çalışma edindikten sonra, daha genel bir çözüm ile geliyor Önemsiz olmalıdır.

Cevap 14/10/2008 saat 13:32
kaynak kullanıcı

oy
1

Ben afxext.h aşina değilim, ancak bu konuda neyi Windows NT4 ile uyumsuz yapar merak ediyorum ....

Ancak, orijinal soruyu cevaplamak için: "Bugüne kadar Araştırmalarım Visual Studio kullanarak, Windows NT 4.0 üzerinde yürütülmesi için bir uygulama oluşturmak imkansız olduğunu gösterir (C ++, bu durumda) 2005."

Cevap başvurunuz ilk yazılı veya NT4 üzerinde çalışıyordu özellikle evet olmalı! kenara afxext.h şeyle, bu kolay bir EVET olmalıdır.

Ben sorun bulma am başka şey insanlar NT terimini dışarı atma edildiği gevşek doğasıdır. Verilen çoğu insan Windows NT4 olarak 'NT' düşünmek ancak 'çoğu insanın eşit değildir çünkü hala belirsiz olduğunu 'tüm insanlar.'

Gerçekte terimi NT 'NT serisi eşittir. NT serisi NT3, NT4, NT5 (2000, XP, 2003) ve NT6 (Vista) 'dir.

Win32 siz de C / C ++ kodu hedef bir alt sistemdir. Bu platform taşıma excercise Yani eğer ben, kimse bu NT4 platformu ve alt sistem veya mümkün hedef olmamalı hiçbir neden göremiyorum, VC muhtemelen heybetli olan MFC bağımlılıkları kaldırın.

karışıma afxext.h ekleme, bir alt sistem uyumluluğu sorunu gibi bana geliyor. Benim hakkında araştırma MFC bir parçası. afxext.h MFC (Microsoft Foundation Class) uzantıları olduğu anlaşılıyor.

MFC ilgili bağımlılığınızı kaldırabilir miyim? Bu uygulamanın türü nedir? (CLR, hizmet, GUI arabirimi?) VC 8.0 yönetilmeyen C ++ projeye projeyi dönüştürebilir miyim?

Umarım bu bazı size birlikte yardımcı olacaktır.

Cevap 18/09/2008 saat 17:18
kaynak kullanıcı

oy
-1

Fikir exe statik kütüphaneye bağlamak için gerekli olmasıdır.

deneyin bu "Yapılandırma Özellikleri", "Genel", "MFC Kullanımı" için "Statik Kitaplığı'nda Kullanım MFC" "Yapılandırma Özellikleri", "" için "Statik Bağlantı ATL Genel "" ATL Kullanımı"

"Yapılandırma Özellikleri", "C \ C ++", "Kod Üretimi", "Runtime Library" den "Çok Dişli (\ MT)"

Deney Platformu Oluşturma Makinesi: Pencere XP SP2 İstemci Makinesine Visual Studio 2005: Windows XP SP2 (yüklü VS2005)

Cevap 21/11/2008 saat 00:04
kaynak kullanıcı

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