Construir para o Windows NT 4.0 usando o Visual Studio 2005?

votos
17

Um aplicativo MFC que eu estou tentando migrar usos afxext.h, o que provoca _AFXDLLa se definir, o que faz com que este erro se eu definir /MT:

Por favor, use a opção / MD para _AFXDLL constrói

Minha pesquisa até agora indica que é impossível construir uma aplicação para execução no Windows NT 4.0 usando o Visual Studio (C ++, neste caso) 2005.

Isso é realmente verdade? Há alguma solução alternativa disponível?

Publicado 03/08/2008 em 03:48
fonte usuário
Em outras línguas...                            


5 respostas

votos
8

Não, há muitas aplicações construídas com VS2005 que têm de suportar o Windows XP, 2000, NT, toda a pilha. A questão é que (por padrão) VS2005 quer usar bibliotecas / exportações não estão presentes no NT.

Veja esta discussão para algum fundo.

Em seguida, começar a limitar suas dependências via macros de pré-processamento, e evitando APIs que não são suportados no NT.

Respondeu 03/08/2008 em 17:54
fonte usuário

votos
4

Para se livrar do erro _AFXDLL, você já tentou mudar as configurações para usar MFC como uma biblioteca estática em vez de uma DLL? Isto é semelhante ao que você já está fazendo para mudar as bibliotecas de tempo de execução para estático em vez de DLL.

Respondeu 23/08/2008 em 02:16
fonte usuário

votos
3

A solução é corrigir o DLL multi-threaded. Instruções simples . Pequeno resumo:

Faz o transporte 8.0 C Runtime Library DLL (Msvcr80.dll) não suporta NT 4.0 SP6 por uma razão e uma única razão: alguém na Microsoft acrescentou uma chamada de função para GetLongPathNameWo qual não existe no kernel32.dll no NT 4.0.

CRTLIB.C Na linha 577, existe uma chamada para GetLongPathNameW. simplesmente substituí-lo com: ret = 0; usar apenas esta compilação de Msvcr80.dll no NT 4.0.

Uma vez que você tem aqueles que trabalham, chegando com uma solução mais genérica deve ser trivial.

Respondeu 14/10/2008 em 13:32
fonte usuário

votos
1

Embora eu não estou familiarizado com AFXEXT.H, eu estou querendo saber o que aconteceu com ele torna incompatível com o Windows NT4 ....

No entanto, para responder à pergunta original: "Minha pesquisa até agora indica que é impossível construir uma aplicação para execução no Windows NT 4.0 usando o Visual Studio (C ++, neste caso) de 2005."

A resposta deve ser sim, especialmente se a aplicação foi originalmente escrito ou em execução no NT4! Com a coisa AFXEXT.H lado, este deve ser um SIM fácil.

A outra coisa que eu estou encontrando problemas com a natureza solta em que as pessoas estão jogando fora o termo NT. Concedidos maioria das pessoas pensa 'NT' como o Windows NT4, mas ainda é ambígua, porque 'a maioria das pessoas' não é igual a 'todas as pessoas.'

Na realidade, o termo 'NT' é igual à série NT. A série NT é NT3, NT4, NT5 (2000, XP, 2003) e NT6 (Vista).

Win32 é um subsistema que você direcionar o seu C / código C ++ também. Então eu vejo nenhuma razão para que um não deve ser alvo capazes esta plataforma NT4 & subsistema ou, se esta é uma plataforma portar exercício, remover as dependências MFC que VC é possivelmente imponente.

Adicionando o AFXEXT.H à mistura, que soa para mim como um problema de compatibilidade do subsistema. É parte do MFC a partir de minha pesquisa Google. O AFXEXT.H parece ser as extensões de MFC (Microsoft Foundation Classes).

você pode remover sua dependência do MFC? Que tipo de aplicação é isso? (CLR, serviço, interface gráfica?) Você pode converter projeto para um projeto de C ++ não gerenciado no VC 8.0?

Esperemos que alguns dos isso irá ajudá-lo.

Respondeu 18/09/2008 em 17:18
fonte usuário

votos
-1

A ideia é que o exe é necessária para conectar-se a biblioteca estática.

Por favor, tente este "Propriedades de configuração", "Geral", "Uso de MFC" para "Use MFC em uma biblioteca estática" "Propriedades de configuração", "Geral", "Uso de ATL" para "vínculo estático para ATL"

"Propriedades de configuração", "C \ C ++", "Geração de Código", "Runtime Library" para "multi-threaded (\ MT)"

Teste plataforma de construção da máquina: Visual Studio 2005 no Windows XP SP2 Máquina Cliente: Windows XP SP2 (sem VS2005 instalado)

Respondeu 21/11/2008 em 00:04
fonte usuário

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