Partilhar via


Alterações de produto: O Visual C++ .NET 2003

Observação:

Alguns recursos mencionados neste tópico talvez ainda não existir no versão corrente do Visual C++.Para obter mais informações, consulte Alterações no Visual C++ 2005 e edições anteriores.

Microsoft Visual C++ .NET 2003 oferece vários aprimoramentos e vários recursos novos:

  • O compilador Visual C++, linguagem e vinculador

  • Bibliotecas Visual C++

  • Ambiente de Desenvolvimento

  • Designer de Formulários do Windows para extensões gerenciadas para C++

  • Modelo de projeto compilação automação

O compilador Visual C++, linguagem e vinculador

O compilador a seguir, vinculador, outras ferramentas de construção e recursos de linguagem do Visual C++ são novidades para Visual C++ .NET 2003.

Compilador

  • Informações sobre como executar um gerenciado Extensions para C++ aplicativo criado com compilador a versão corrente em uma versão anterior do tempo de execução.

  • Foi adicionada uma explicação passo a passo, mostrando como portar um aplicativo nativo existente para usar o gerenciado Extensions para C++: Demonstra Passo a passo: Portar um aplicativo C++ nativo existente para interopere com o .NET estrutura Components

  • Agora você pode criar um delegado em um método de um tipo de valor.

  • Conformidade do compilador com o padrão C++ foi avançado significativamente para o Visual C++ .NET 2003.

  • /arch opção do compilador é adicionada.

  • /Gf é desaprovada e será removido na próxima versão do Visual C++.

  • / G7opção do compilador é adicionada.

  • The /GS opção do compilador foi avançado para ajudar a proteger as variáveis locais de saturações de buffer direto.

  • The /noBoolopção do compilador foi removida.Agora, o compilador permite bool apareça somente sistema autônomo uma palavra-chave (e não um identificador) em um arquivo de código-fonte Visual C++.

  • O longo longo tipo agora está disponível sistema autônomo um typedef de __int64. Observe que não existe ainda suporte a longa longo no CRT.

  • The /Zm Agora opção do compilador Especifica o limite de alocação de memória de cabeçalho pré-compilado.

  • _InterlockedCompareExchange Agora intrínseca documentados.

  • _InterlockedDecrement Agora intrínseca documentados.

  • _InterlockedExchange Agora intrínseca documentados.

  • _InterlockedExchangeAdd Agora intrínseca documentados.

  • _InterlockedIncrement Agora intrínseca documentados.

  • _ReadWriteBarrier adicionado intrínseca.

Atributos do Visual C++

  • implementa atributo agora está documentado.

Vinculador

As opções do vinculador a seguir foram adicionadas:

  • /ASSEMBLYDEBUG

  • / ASSEMBLYLINKRESOURCE

  • / DELAYSIGN

  • / KEYFILE

  • /KEYCONTAINER

  • / SAFESEH

Pré-processador

  • O símbolo _STATIC_CPPLIB agora está documentado para uso com /MD.

  • O símbolo _CPPLIB_VER agora está documentado.

  • The #import diretiva agora tem os seguintes atributos documentados:

    • auto_search

    • auto_rename

    • no_search_namespace

    • rename_search_namespace

    • tlbid

MASM

The .SAFESEH opção ml.exe diretiva e /safeseh foram adicionados.

Bibliotecas Visual C++

Antigo iostream biblioteca

A Biblioteca iostream antiga foi removida do Visual C++ nesta versão.Use a biblioteca C++ padrão para programação iostream.

Biblioteca de time de execução do c

  • A documentação do C em tempo de execução biblioteca agora inclui informações para equivalentes no .NET estrutura.

  • _get_heap_handle foi adicionado.

  • A macro _CRTDBG_CHECK_DEFAULT_DF, usada em _CrtSetDbgFlag Agora é definido como zero, o que significa que nenhuma verificação de heap é feita por padrão.

  • swprintf Agora é compatível com o ISO C padrão (C++).

  • vswprintf agora tem um formulário somente C++ que permite que você especifique o número máximo de caracteres para armazenar.

  • Para várias das funções multibyte, sistema autônomo a _mbsset, a CRT não foi sempre detectando inválidas seqüências de caracteres multibyte, onde um byte inicial deve ser seguido por um valor nulo byte final. A CRT agora tem mais verificações de caracteres multibyte inválidos, onde um byte inicial é seguido por um byte nulo trilha.

  • _set_purecall_handler foi adicionado.

  • Anteriormente, quando um processo de carregar uma DLL referenciados estaticamente da biblioteca CRT, ponto flutuante de precisão deve ser inicializada a 53 bits.No Visual C++ .NET 2003, ponto flutuante de precisão não foi inicializada neste cenário.Isso pode causar uma alterar significativa em alguns aplicativos existentes que dependia do CRT inicializar ponto flutuante de precisão.

  • A CRT agora tem float e double formulários para todas as funções de matemática.Essas novas funções são apenas podem ser chamadas do Visual C++.

Biblioteca C++ padrão

Em versões anteriores, entrada e saída de caracteres para um fluxo podem resultaram em caractere ou unsigned short valores que estão sendo armazenados se wchar_t não foi definido sistema autônomo um tipo nativo. Agora, um unsigned short sempre é tratado sistema autônomo um caractere.

No Visual C++ .NET 2003, os membros do <hash_map> e arquivos de cabeçalho <hash_set> não estão no namespace std, mas em vez disso, foram movidos para o namespace stdext.

A biblioteca C++ padrão foi atualizada para usufruir o suporte de compilador Visual C++ avançado para o C++ padrão.Por exemplo, a implementação da biblioteca C++ padrão de entrega no Visual C++ agora faz usar de especialização de modelo parcial.

ATL

  • No Visual Studio .NET 2003, o compilador MIDL tem uma configuração padrão de / robusto, que faz com que os projetos em execução no Windows NT 4 pare de responder.

Para alterar o sinalizar de compilador MIDL para /no_robust

  1. clicar com o botão direito do mouse em seu projeto e no menu de atalho, clique em Propriedades.

    The Propriedades do projeto caixa de diálogo é exibida.

  2. No painel esquerdo, clicar MIDLe, em seguida, selecionar Linha de comando.

  3. Digite /no_robust in the Opções adicionais caixa de texto.

  • A ATL string conversão de macro USES_CONVERSION foi substituído por USES_CONVERSION_EX.Ele tentará alocar espaço na pilha.Se não houver nenhuma sala disponível na pilha, ele tentará a heap.Se não houver nenhuma sala na pilha, ela retornará NULO.USES_CONVERSION_EX tem um parâmetro extra (limite) que você pode usar: Se a solicitação for maior do que o dimensionar de limite, a macro irão para o heap diretamente.

  • _alloca Ele foi substituído pelo _atl_safe_alloca.

  • A classe Classe CSocketAddr foi adicionado para fornecer protocolo independentes métodos para lidar com endereços IPv6 e IPv4.

  • Ao criar um projeto que produz um executável, o ATL adiciona automaticamente entre aspas o nome do caminho criado em time de execução com o MÓDULO % parâmetro do script de registrador.Não o nome do caminho para incluir as aspas, use o novo % MODULE_RAW % parâmetro em vez disso.

    Ao criar um projeto que produz uma DLL, ATL não adicionará aspas para o nome do caminho se MÓDULO % or % MODULE_RAW % é usado.

MFC

  • Mapas de conexão não são compactados quando um ponto de conexão é excluído; em vez disso, o ponto de conexão excluído é substituído com um nulo.Portanto, você deve verificar para nulo ao usar CConnectionPoint::GetConnections ou CConnectionPoint::GetNextConnection.

  • As seguintes funções agora podem lançar exceções: CSimpleString::FreeExtra, CSimpleString::GetAt, [] CSimpleString::operador, CSimpleString::ReleaseBuffer, CSimpleString::ReleaseBufferSetLength, CStrBuf::SetLength, and some CTime::CTime construtores.

  • Os comportamentos de AfxIsValidAddress e AfxIsValidString foram alteradas. Em compilações de depurar não, as duas funções testam apenas um argumento que não seja nula.

  • CHeaderCtrl::GetOrderArray não tem um padrão segundo parâmetro; -1 não é um valor válido para o segundo parâmetro.

  • CAsyncSocket possui novos membros compatível com IPv6: GetPeerNameEx, GetSockNameEx, ReceiveFromEx, e SendToEx.

ATL e MFC

  • The CImage classe agora mantém o registro do número de objetos criados. Sempre que a contagem chega a 0, a função GdiplusShutdown é chamado automaticamente para versão recursos utilizados pelo GDI +.Isso impede que recursos não estão sendo liberado quando CImage os objetos são criados por uma DLL.

  • O MFC CString classe foi reescrita sistema autônomo uma classe de modelo CStringT. Isso permite que você use CString em projetos ATL sem criar links no maior biblioteca estática do MFC ou DLL.

    Observação:

    Esta versão corrige o problema descrito no artigo da Base de dados de Conhecimento, "PRB: Vinculando erros ao importar CString -Derivadas de classes "(Q309801).Você encontrará artigos da Base de dados de Conhecimento no CD-ROM Biblioteca MSDN ou em http://suporte.Microsoft.com/padrão.aspx.Se você encontrou erros do vinculador ao exportar um CString-derivado de classe de uma extensão do MFC DLL em Visual C++ .NET 2002 e aplique a solução descrita neste artigo, você deve remover o código para solucionar esse problema, porque o problema foi corrigido no Visual C++ .NET 2003.

  • CStrBufT e CSimpleStringT agora tem um parâmetro de modelo adicional que informa se CString deve ser usada da DLL do MFC. Use typedef encontrado no CStringT ou CSimpleStringT classe de atlsimplstr.h (em vez de typedef global).

Servidor ATL

  • Em um serviço Web XML criado com o servidor ATL, a ação padrão é validar parâmetros de SOAP depois que eles são lidos.Para desativar a validação, defina a macro _ATL_SOAP_NO_PARAMETER_VALIDATIONS.

  • Agora pode SPROXY.EXE processo um arquivo .discomap ou um arquivo .wsdl.Especifique o novo /wsdl Quando você usa um arquivo .wsdl sistema autônomo a entrada de opção:

    sproxy /wsdl <input_location>
    

    em que <input_location> é o caminho do arquivo .wsdl para usar.

    SPROXY.EXE agora pode processar um arquivo resultados.discomap:

    sproxy results.discomap
    

    Observe que o arquivo .discomap contém um link para uma cópia local do arquivo .wsdl e também usa uma cópia local do arquivo de esquema.

Ambiente de Desenvolvimento

Observação:

Alguns recursos mencionados neste tópico talvez ainda não existir no versão corrente do Visual C++.F ou para obter mais informações, consulte Alterações no Visual C++ 2005 e edições anteriores.

Quando você abre um projeto Visual C++ do Visual Studio .NET no Visual C++ .NET 2003, o arquivo de projeto antigo será renomeado e será criado um novo arquivo de projeto para o ambiente do Visual C++ .NET 2003.

O formato de um arquivo .vcproj agora está documentado.

Os seguintes novos recursos estiver no ambiente de desenvolvimento:

  • (WebDeployPath) $, $ (WebDeployRoot), $ (ParentName), $ (RootNameSpace), $ (SafeParentName) e $(SafeInputName) macros foram adicionadas.

  • Agora é possível criar um projeto sem criar qualquer um dos projetos projetos dependentes.

gerenciado Extensions para C++ projeto Templates

Esta versão inclui vários novos modelos de projeto que você pode usar para criar aplicativos em gerenciado Extensions para C++:

  • Biblioteca de controles do Windows (. NET)

  • Windows Forms aplicativo (. NET)

  • Serviço do Windows (. NET)

Além disso, os modelos para projetos gerenciado no Visual C++ .NET 2002, foram renomeados para esta versão:

  • Aplicativo de C++ gerenciado agora é chamado de Aplicativo de console (. NET)

  • biblioteca de classes do C++ gerenciado agora é chamado de biblioteca de classes (. NET)

  • Projeto vazio de C++ gerenciado agora é chamado de Projeto vazio (. NET)

  • serviço Web do C++ gerenciado agora é chamado de serviço Web do ASP.NET

Designer de Formulários do Windows para extensões gerenciadas para C++

Com a adição de Designer de Formulários do Windows para esta versão, Visual C++ apresenta uma solução de método RAD para a criação de seus aplicativos Windows Forms no gerenciado Extensions para C++.

Esse recurso inclui suporte completo do Gerenciador de Servidores, que permite arrastar e soltar, ou recortar e colar, controles e componentes diretamente em seu aplicativo Windows Forms e caixa de ferramentas.Além disso, você pode com com facilidade manipular as propriedades de seus controles e componentes por meio de propriedade grade.

Modelo de projeto compilação automação

O Visual C++ .NET oferece novas páginas de propriedade e um número de novos objetos, bem sistema autônomo novas propriedades e métodos para objetos existentes que aperfeiçoam o modelo de compilação do projeto.

Novas páginas de propriedade

Recursos gerenciado página de propriedades

Ferramenta de gerador de dados XML página de propriedades

Página propriedade wrapper gerenciado

Auxiliar gerenciado página de propriedades de conteúdo adicional

Novos objetos

VCALinkTool Objeto

VCActiveXReference Objeto

VCAssemblyReference Objeto

VCAuxiliaryManagedWrapperGeneratorTool Objeto

VCManagedResourceCompilerTool Objeto

VCManagedWrapperGeneratorTool Objeto

VCPrimaryInteropTool Objeto

VCProjectReference Objeto

VCReference Objeto

VCReferences Coleção

VCReferenceConfiguration Objeto

VCXMLDataGeneratorTool Objeto

Membros novos ou alterados para objetos existentes

Vários novas ou atualizadas propriedades e métodos foram adicionados a objetos existentes.Observe que sistema autônomo alterações podem abranger várias coisas, sistema autônomo uma assinatura atualizada ou a adição de novos membros.

Objeto

Membro novo ou alterado

VCCLCompilerTool Objeto

Propriedade de EnableEnhancedInstructionSet

 

Propriedade de ToolKind

VCLinkerTool Objeto

Propriedade de FixedBaseAddress

 

Propriedade de ToolKind

VCLibrarianTool Objeto

Propriedade de ToolKind

VCCustomBuildTool Objeto

Propriedade de ToolKind

VCMidlTool Objeto

Propriedade de ToolKind

VCResourceCompilerTool Objeto

Propriedade de ToolKind

VCPreBuildEventTool Objeto

Propriedade de ToolKind

VCPreLinkEventTool Objeto

Propriedade de ToolKind

VCPostBuildEventTool Objeto

Propriedade de ToolKind

VCBscMakeTool Objeto

Propriedade de ToolKind

VCNMakeTool Objeto

Propriedade de ToolKind

VCWebServiceProxyGeneratorTool Objeto

Namespace Propriedade (VCProjectEngine)

 

Referências Propriedade

 

Propriedade de ToolKind

VCWebDeploymentTool Objeto

Propriedade de ToolKind

VCProject Objeto

AddAssemblyReference Método

 

AddActiveXReference Método

 

AddProjectReference Método

 

CanAddAssemblyReference Método

 

CanAddActiveXReference Método

 

CanAddProjectReference Método

 

Propriedade de Object

 

Referências Propriedade

 

Propriedade de ReferencesConsumableByDesigners

 

RemoveReference Método

 

Propriedade de RootNamespace

 

Propriedade de VCReferences

VCFile Objeto

AddFile Método

 

CanAddFile Método

 

FileType Propriedade

 

Itens Propriedade

 

Propriedade de Object

 

RemoveFile Método

VCFilter Objeto

Propriedade de Object

VCConfiguration Objeto

Propriedade de FullReferencesPath

 

Propriedade de ReferencesPath

 

Propriedade de ReferenceTools

 

Propriedade de SatelliteDLLs

 

StopBuild Método

 

Propriedade de StyleSheets

VCStyleSheet Objeto

Propriedade de FullReferencesPath

 

Propriedade de ReferencesPath

 

Propriedade de ReferenceTools

 

Propriedade de StyleSheetDirectory

 

Propriedade de StyleSheetName

VCFileConfiguration Objeto

Propriedade de ProjectConfiguration

 

Compilar Método

 

Propriedade de OutputUpToDate

VCProjectEngine Objeto

Propriedade de ShowEnvironmentInBuildLog

Consulte também

Outros recursos

Alterações de produto no Visual C++ versões