Alterações de produto: O Visual C++ .NET 2002
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 O que há de novo no Visual C++. |
Microsoft Visual C++ .NET 2002 possui muitos novos recursos e melhorias:
Gerenciado de código e direcionamento do .NET estrutura
Programação atribuída
O compilador Visual C++, vinculador e Visual C++ linguagem
Ambiente de Desenvolvimento
recurso Editores
Bibliotecas
Redistribuição de um aplicativo e implantação
Exemplos do Visual C++ .NET
Gerenciado de código e direcionamento do .NET estrutura
O Visual C++ apresenta duas maneiras de escrever código gerenciado.Ambos são projetados para facilitar a programação do COM e para permitir que seus programas para acessar sistema autônomo serviços fornecidos pelo .NET common language tempo de execução, sistema autônomo lixo coleção e interoperabilidade de linguagem.
gerenciado Extensions para C++ Usando essas extensões, você pode continuar a escrever código C++ em programas existentes.
Translation from VPE for Csharp Visual Translation from VPE for Csharp é uma nova linguagem de programação é simples, segurança de tipos e orientada a objeto.Uma evolução do C e C++, translation from VPE for Csharp é destinada aos desenvolvedores criar novos aplicativos do .NET estrutura.
Programação atribuída
Atributos são projetados para fornecer um método rápido e eficiente para simplificar COM programação no Visual C++.Atributos como palavras-chave C++, são usados em seus arquivos de código-fonte e interpretados pelo compilador.Atributos podem modificar o comportamento do seu código existente e até mesmo inserir código de estrutura adicionais para a realização de tarefas básicas, sistema autônomo implementar um controle ActiveX, criando uma fábrica de classes ou formatação de um comando de banco de dados.Você pode aplicar atributos a praticamente qualquer objeto de Visual C++, sistema autônomo classes, membros de dados e funções de membro, ou pode inserir atributos no seu código-fonte sistema autônomo instruções autônomas.
O Visual C++ Ajuda inclui orientações de atributos que abrangem vários aspectos da programação atribuída.
O compilador Visual C++, vinculador e Visual C++ linguagem
O compilador a seguir, vinculador, outras ferramentas de construção e recursos de linguagem do Visual C++ são novidades para Visual C++ .NET.Há também uma atualização para a biblioteca C++ padrão.
Compilador
Problemas de conformidade padrão no Visual C++.
/AI opção do compilador.
/clr opção do compilador.
/FU opção do compilador.
/Fx opção do compilador.
/GHopção do compilador .
/Giopção do compilador foi removida do compilador; o compilador do Visual C++ não mais oferece compilação incremental./Gi será silenciosamente ignorado pelo compilador.
/GDopção do compilador foi removida do compilador.
/GL opção do compilador.
/GS opção do compilador.
Novas palavras-chave associadas ao gerenciado Extensions para C++.
/ Qlfist agora está documentada.
/O1 e /O2 usar agora /GF em vez de /Gf.
/Ox, /O1, e /O2 usar agora / Ob2 em vez de / Ob1.
/RTC opção do compilador.
/showIncludes opção do compilador.
/w agora opção do compilador permite que você especificar o comportamento de avisos específicos.
/Wall opção do compilador agora permite que você ative todos os avisos, incluindo avisos são desabilitados por padrão.
/WL opção do compilador.
/Wp64 opção do compilador.
/Y-opção do compilador.
/Zc:forScope opção do compilador.
/Zc:wchar_t opção do compilador.
Uma lista de avisos são desativados por padrão.
Expressões booleanas agora são do tipo bool, não BOOL.
Vinculador
/ ALLOWBIND opção de vinculador .
/ ASSEMBLYMODULEopção de vinculador .
/ ASSEMBLYRESOURCEopção de vinculador .
/ COMENTÁRIOopção de vinculador agora está obsoleto.Use o comentário pragma.
O utilitário CVPACK é removido.
/ DEBUGTYPEopção de vinculador foi removida.Símbolo de suporte no formato COFF é removido; símbolos agora devem ser colocados em arquivos .pdb.
/ GPSIZEopção de vinculador foi removida.O vinculador agora determina o local ideal para variáveis communal (itens de dados global não inicializados) com base na presença de GP realocações relativas aos dados.
/ IDLOUTopção de vinculador .
/ IGNOREIDLopção de vinculador .
/ LINK50COMPAT foi removido.Bibliotecas de importação criadas com Visual C++ .NET são compatível com o Visual C++ 6.0.
/ LTCG opção de vinculador .
/MAPINFO:FIXUPS foi removido.
/ MIDLopção de vinculador .
/ NOASSEMBLYopção de vinculador .
/ PDB: NENHUMopção de vinculador foi removida.Não há mais suporte para as informações de depurar em .exe.
/ PDBSTRIPPEDopção de vinculador .
/ PDBTYPEopção de vinculador foi removida.Depurar informações serão colocadas em um arquivo .pdb único.
The OU O analisaropção de vinculador foi removida.Se você estiver usando um gerador de analisar de terceiros que precisa de OU O analisar, em vez disso, você deve usar / FIXA: NÃO.Nesta versão, o vinculador ainda aceitará OU O analisar sistema autônomo sinônimo de / FIXA: NÃO.
O criador de perfil de fonte, um utilitário de vinculador, é removido.
/ TLBIDopção de vinculador .
/ TLBOUTopção de vinculador .
/ TSAWAREopção de vinculador .
/ AVISARopção de vinculador foi removida.
DUMPBIN
/ CLRHEADER opção.
/ IMPORTAÇÕESopção de para o utilitário DUMPBIN obtém um parâmetro opcional que permite que você importa vídeo de uma DLL especificada.
/ PDBPATH opção.
/ RAWDATA parâmetros são renomeados, mas a sintaxe das versões anteriores ainda é válida.
/ UNWINDINFO opção.
O Visual C++ linguagem
_AddressOfReturnAddress palavra-chave está documentada agora.
__alignof palavra-chave.
Agora há suporte para tipos de retorno covariant.
__declspec(alinhar) palavra-chave.
__declspec(preterido) palavra-chave.
__declspec(noinline) palavra-chave.
**__declspec(selectany)**palavra-chave agora oferece suporte a objetos alocados dinamicamente (inicializados por um construtor de objetos).
__event palavra-chave.
The para demonstrativo em /Ze foi modificada para cumprir os mais de perto o comportamento padrão.
__if_exists e __if_not_exists palavras-chave.
__interface palavra-chave.
Agora há suporte para os blocos de tentativas de função.
__m64 tipo de dados.
__m128 tipo de dados.
__m128d tipo de dados.
__m128i tipo de dados.
Intrinsics MMX, SSE e SSE2.
__super palavra-chave.
template palavra-chave agora permite que os parâmetros de modelo.
**throw(...)**sintaxe de .
__assume intrínseco do compilador.
__debugbreak intrínseco do compilador.
__noop intrínseco do compilador.
Substituições explícitas.
Limite de níveis de parênteses aninhados em uma única expressão agora é 256.
_ReturnAddresspalavra-chave agora está documentada.
__sealed palavra-chave.
__w64 palavra-chave.
wchar_t Agora é um tipo de dados nativo.
Novas palavras-chave associadas ao gerenciado Extensions para C++.
Pré-processador
está de acordo com pragma.
__COUNTER__ macro predefinida.
substituída pragma.
__FUNCDNAME__ macro predefinida.
__FUNCSIG__ macro predefinida.
__FUNCTION__ macro predefinida.
#import diretiva:
Agora você pode especificar as bibliotecas de tipos, ProgID or libid.
A seguir são novos atributos no #import diretiva:
embedded_idl
no_dual_interfaces
no_smartpointers
_MANAGED diretiva de pré-processador.
gerenciado and não gerenciado pragmas.
pack pragma agora tem um Mostrar opção para exibir o valor corrente do empacotar.
pop_macro agora está documentada.
push_macro agora está documentada.
runtime_checks pragma.
seção pragma.
# using diretiva.
_WCHAR_T_DEFINED diretiva de pré-processador.
Ambiente de Desenvolvimento
Os seguintes recursos de ambiente de desenvolvimento e as alterações são novidades para Visual C++ .NET.
Modo de exibição de classe foi estendido.
Excluindo arquivos ao dependência verificação (novo procedimento).
A janela Propriedades fornece uma grade personalizável para visualizar e modificar propriedades de objetos em seu projeto.
Páginas de propriedades do projeto permitem que você especifique compilação configurações para projetos.
Assistentes agora são criados no HTML e JScript, com suporte a arquivos de texto, para que os assistentes personalizados mais flexível e extensível.
WizardBar e ClassWizard foram removidos.
Personalizar o processo de compilação é um novo evento de pré-compilação.
O novo Assistente de banco de dados foi removido do Visual C++ .NET.
Exportar um makefile NMAKE não está mais disponível.Opções de linha de comando do devenv uso para construir um projeto Visual C++ do command line.
Esse uso os projetos Visual C++ 6.0**/Gf** e que são importados para a nova versão terá suas /Gf opções convertidas /GF.
recurso Editores
imagem Barra de ferramentas editor e o seletor de opção
Barra de ferramentas da Editor imagem foi chamada a barra de ferramentas de gráficos no Visual C++ 6.0.Enquanto os botões da barra de ferramentas são essencialmente as mesmas (ferramentas para desenho, pintura, inserindo texto, apagar e manipular modos de exibição), a apresentação da barra de ferramentas e o comportamento foi alterado um pouco.
No Visual C++ 6.0, a barra de ferramentas gráfico estava inicialmente uma janela ancorada no lado esquerdo do espaço de trabalho e apareceu no seletor de opções sistema autônomo uma caixa dentro da barra de ferramentas.No Visual C++. NET, a barra de ferramentas do Editor imagem aparece na parte superior da área de trabalho.No seletor de opção agora aparece na extremidade direita da barra de ferramentas do Editor de imagens sistema autônomo um botão com uma seta suspensa.O ícone do Option seletor botão altera dependendo da ferramenta que você selecionou.
A caixa de diálogo de ferramenta no imagem Editor barra do texto
O comportamento da caixa de diálogo Ferramenta de texto foi alterado do Visual C++ 6.0 para Visual Studio. NET.
Ação |
Resultam em Visual C++ 6.0 |
Resultar no Visual Studio .NET |
---|---|---|
Pressione ENTER |
Inserido nova linha no texto. |
Sai a ferramenta texto e confirma as alterações. |
clicar no Fechar botão |
Encerrado na ferramenta texto e as alterações confirmadas. |
Sai a ferramenta texto e confirma as alterações. |
Pressione ESC |
Encerrado na ferramenta texto e as alterações confirmadas. |
A ferramenta texto sai e descarta as alterações. |
Pressione deslocar + ENTER |
(Não aplicável) |
Insere uma nova linha no texto. |
Pressione CTRL + ENTER |
(Não aplicável) |
Insere uma nova linha no texto. |
Essas alterações tornam texto com a ferramenta se comportam mais como caixas de diálogo padrão e as outras ferramentas do editor de imagens.
Bibliotecas
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 O que há de novo no Visual C++. |
As seguintes bibliotecas incluídas no Visual C++ .NET estão novos ou alteraram.
Active Template Library (ATL)
As configurações padrão para projetos ATL foram alteradas.
Mais tópicos de referência para métodos ATL contêm exemplos de código.
Suporte a coleções e enumeradores: ICollectionOnSTLImpl, IEnumOnSTLImpl, CComEnumImpl, CComEnumOnSTL, CComEnum
Uma nova classe, CImage, que fornece suporte a bitmap avançado, incluindo a capacidade de carregar e salvar imagens JPEG, GIF, BMP, e formatos formato PNG (formato formato PNG).
Novas classes para o gerenciamento de arrays, listas e árvores: CAtlArray, CAtlList, CAtlMap, CRBMap, e CRBMultiMap.
Novas macros de conversão de seqüência de caracteres e classes.
Classes de utilitários: CAdapt
Hospedagem de controles ActiveX: IAxWinAmbientDispatch, IAxWinHostWindow, CAxWindow2
Aprimoramentos para CComBSTR e CComVariant
Novas macros: OBJECT_ENTRY_AUTO e OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO
Criação do objeto simplificada: CComCoClass::CreateInstance
Melhor suporte à depuração: _ATL_DEBUG_INTERFACES
Suporte a registro REG_MULTI_SZ valores: CRegKey
Novas classes de segurança: CAcl, CDacl, CSacl, CSecurityAttributes, CSecurityDesc, CSid, CTokenGroups e CTokenPrivileges.
Novas classes de gerenciamento de array: CSimpleArray, CSimpleMap, CComSafeArray, CComSafeArrayBound.
Uma classe de objeto de moeda: CComCurrency.
As seguintes macros ATL devem ser consideradas obsoletas: atlTraceFlags, ATLTrace, BEGIN_OBJECT_MAP, OBJECT_ENTRY, END_OBJECT_MAP.
Vários métodos ATL foram substituídos.
A funcionalidade de CComModule tiver sido distribuído em várias classes novas.
Servidor ATL
servidor ATL é um conjunto de classes C++ nativo que permite aos desenvolvedores criar aplicativos da Web, serviços XML da Web e outros aplicativos de servidor.Muitas classes também podem ser usadas em aplicativos cliente ou componentes.
Biblioteca de time de execução do c
Erro em time de execução verifica funções
The novo operador pode lançar uma exceção ou retornar zero, se falhar a alocação de memória.
Recuperar de estouros de pilha com _resetstkoflw
Novas funções para permitir datas além do ano 2038:
_ctime64
_wfindnext64
_gmtime64
_wstat64
_wctime64
_fstat64
_localtime64
_time64
_findfirst64
_ftime64
_mktime64
_utime64
_wfindfirst64
_futime64
_stat64
_wutime64
_findnext64
Configurar verificações de heap de depurar com _CrtSetDbgFlag.
Determinar os tipos de bloco e subblock _CrtReportBlockType
Constantes matemáticas
Novas funções de caractere largos:
_cwprintf
_putwch
_putws
_wtof
New __int64 versões funções de cadeia de caracteres:
_strtoi64
_strtoui64
_wctoi64
_wcstoui64
Novas versões Unicode de funções do console:
_getwch
_ungetwch
cgetws
_getwche
_cwscanf
Novas funções de seqüência de caracteres que calculam o número de caracteres necessários para imprimir dados formatados:
_scprintf
_scwprintf
_vscprintf
_vscwprintf
_snscanf
_snwscanf
Funções de alinhamento de dados.
_set_security_error_handler, para registrar um manipulador de erro de segurança.
Porque a temporização da versão do C99, esta versão do Visual C++ não está em conformidade com esse padrão.
Novas funções de troca de byte: _byteswap_uint64, _byteswap_ulong, _byteswap_ushort.
_set_SSE2_enable Para usar as instruções SSE2.
_CrtSetReportHook2.
Biblioteca Microsoft Foundation classe (MFC)
Tópicos de referência para MFC contêm centenas de novos exemplos de código.
Estático convertendo e mapas de mensagem do MFC inicial com o Visual C++. NET, MFC fornece mais rígido tipo de verificação de tipos de retorno e parâmetro de funções de manipulador de mensagens.Esse novo comportamento notifica o desenvolvedor de problemas potenciais por sinalizar manipuladores de mensagens potencialmente não seguras com uma mensagem de erro.MFC agora utiliza conversões estáticas para ON_MESSAGE, ON_REGISTERED_MESSAGE, ON_THREAD_MESSAGE e ON_REGISTERED_THREAD_MESSAGE.
Por exemplo, no passado, um desenvolvedor poderia usar uma função de membro retornado void em vez de LRESULT ON_MESSAGE ou ON_REGISTERED_MESSAGE e compilar sem erros. Com o Visual C++. NET, o potencial miscast é detectado e sinalizado sistema autônomo um erro.O desenvolvedor pode corrigir o problema potencial, substituindo o tipo de retorno (com LRESULT) e recompilar.
Componente de edição DHTML: CHtmlEditCtrl, CHtmlEditView, CHtmlEditDoc
Caixas de diálogo DHTML: CDHtmlDialog, CMultiPageDHtmlDialog
Suporte ISAPI para análise de argumento lista: CHttpArg, CHttpArgList
Suporte para controles sem janelas: COleControlSite[COleControlContainer, e COccManager.
Suporte Avançado para o uso de Ajuda em HTML em um aplicativo MFC.
Folha de propriedades de impressão do Windows 2000: CPrintDialogEx.
Suporte DAO: O Visual C++ MFC aplicativo assistente e DLL de MFC aplicativo assistente não suportam projetos de banco de dados DAO.Você ainda pode adicionar classes derivadas de DAO usando o Assistente para adicionar classe.A Microsoft recomenda o uso do OLE DB ou ODBC para novos projetos C++ nativo.Você deve usar o DAO somente na manutenção de aplicativos existentes.
TRACE0, TRACE1, TRACE2, e TRACE3 agora são considerados obsoleto; use ATLTRACE2. RASTREAMENTO agora tem a mesma funcionalidade que ATLTRACE2.
Ao selecionar uma fonte da caixa de diálogo, use fontes MS Shell Dlg, não MS Sans Serif ou Helv.Versões anteriores do MFC poderiam substituir automaticamente MS Sans Serif ou Helv por DEFAULT_GUI_FONT ou a fonte do sistema, mas MFC não faz isso.
Suporte Avançado para recursos localizados em DLLs satélite.
Modelos de BD OLE DB
Os seguintes OLE DB modelos são fornecidos no Visual C++:
Novas classes de consumidor: CDataConnection, CDynamicAccessor, CDynamicParameterAccessor, CDynamicStringAccessor, CDynamicStringAccessorA, CDynamicStringAccessorW, CStreamRowset, CXMLAccessor.
Novas macros de consumidor: NOME_COLUNA * macros para vinculação de uma coluna específica no banco de dados por nome e BLOB * macros para vincular objetos binário grandes (BLOB).
Novas classes de provedor: IDBSchemaRowsetImpl, IErrorRecordsImpl, IRowsetChangeImpl, IRowsetCreatorImpl, IRowsetNotifyCP, IRowsetNotifyImpl, IRowsetLocateImpl, IRowsetUpdateImpl.
Novos tipos de dados de 64 bit
Métodos em várias classes de modelos OLE DB tem sido alterados para usar os novos tipos de dados de 64 bit em vez dos antigos de 32 bit.A documentação foi atualizada para refletir essas alterações.No caso de discrepâncias entre a documentação e os arquivos de cabeçalho (atldb.h atldbcli.h e atldbsch.h), os arquivos de cabeçalho contêm os tipos de parâmetro mais corrente.
Classes compartilhadas
Várias classes novas e revisadas agora podem ser usada em qualquer programa do Visual C++.
Biblioteca C++ padrão
A biblioteca C++ padrão foi atualizada:
Classe hash_map
Classe hash_set
Suporte a tratamento de exceção opcional.
Formatação (leitura) de código avançado.
Suporte avançado a DLL (passar objetos entre limites de processo).
Suporte de multithreading avançado.
Maior conformidade com o padrão.
Antigo iostream biblioteca
Para Visual C++, o uso da Biblioteca iostream antigo é obsoleto; você receberá um aviso toda vez que você usar uma função iostream.É possível que a Biblioteca iostream antigo será removida em uma versão subseqüente.
Redistribuição de um aplicativo e implantação
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 O que há de novo no Visual C++. |
Para redistribuir um aplicativo do Visual C++, você pode usar a implantação no Visual Studio, que lhe permite criar executáveis de instalação, empacotamento de arquivos e publicar sites da Web.
Se deseja usar a implantação do Visual Studio e você tiver um aplicativo de Visual C++ nativo (não gerenciado), você pode descobrir dependências do seu aplicativo e desenvolver seu próprio processo de instalação.
Exemplos do Visual C++ .NET
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 O que há de novo no Visual C++. |
O Visual C++ .NET inclui todas as novas Exemplos para as seguintes áreas:
Biblioteca de time de execução do c
Servidor ATL
Atributos
gerenciado Extensions para C++
MASM
Depuração
Assistente personalizado
Observação: Como a arquitetura de assistente foi alterada, os exemplos fornecidos anteriormente para assistentes personalizados foram retirados e novas amostras de assistente personalizada foi fornecidas.
Modelo de código
Modelo do projeto
Manipulação de eventos
Internacional
A Tailspin Toys aplicativo
Além disso, Visual C++ .NET inclui novas amostras para as seguintes áreas mais os exemplos fornecidos em versões anteriores:
MFC
ATL
Suporte a COM
Padrão modelo biblioteca (STL)