INFO: Bibliotecas de tipos para o Office podem alterar com nova versão

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

224925
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sumário
Produtos do Microsoft Office poderão variar de uma versão para a seguinte. Normalmente, a biblioteca de tipos para um produto do Office terão as mesmas funções que estavam presentes na versão anterior do produto, mas algumas funções podem ter adições ao número de argumentos. Por conseguinte, se utilizar classes de moldagem gerado pelo ClassWizard para uma biblioteca de objectos Office com o código escrito com uma versão antiga da biblioteca de objectos, poderá receber o seguinte erro de compilação:
Erro C2660: (função): função não tem parâmetros (n)
Mais Informação
Para ilustrar, uma tal função mudou é o método Microsoft Word 2000 adicionar o objecto de documentos. Se tiver utilizado o ClassWizard para gerar wrappers de classe para as funções na biblioteca de tipos Microsoft Word 2000 e utilizar o código que funcionavam com o Microsoft Word 97, receberá o erro de compilação descrito anteriormente. A seguinte tabela descreve como pode corrigir este problema. Note que embora caso ilustrado se aplica ao código que automatiza especificamente o Word, as mesmas informações podem ser aplicadas a outras aplicações do Microsoft Office.

Com a biblioteca de tipo de Word 97, pode utilizar o seguinte código para automatizar o Word e iniciar um novo documento:
   _Application oApp;   Documents oDocs;   _Document oDoc;   COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),               vtTrue((short)TRUE),               vtFalse((short)FALSE);   // Create an instance of Word   if (!oApp.CreateDispatch("Word.Application"))    {      AfxMessageBox("Word failed to start!");      return;   } 	   // Add a new document and make Word visible   oDocs = oApp.GetDocuments();   oDoc = oDocs.Add(vtOptional,vtOptional);   oApp.SetVisible(TRUE);				
se tentar executar este código de biblioteca de tipos da Word 2000, receberá o erro de compilação C2660 "'Adicionar': função não tem 2 parâmetros" para a seguinte linha de código:
     oDoc = oDocs.Add(vtOptional,vtOptional);				
para corrigir este problema, efectue os seguintes passos.
  1. Vá para o separador Exibir classe da janela da Área de trabalho do Project .
  2. Na lista de classes para a área de trabalho, faça duplo clique a classe de documentos para apresentar os respectivos membros.
  3. Localize a função Adicionar membros e verá que é esperado quatro argumentos. O código é apenas passar dois argumentos, assim, receber o erro de compilação.
  4. Consulte a ajuda do Visual Basic no Microsoft Word e localize o tópico para o adicionar método do objecto documentos determinar o tipo de dados para estes argumentos e/ou para determinar se os argumentos são opcionais. Neste caso, ambos os argumentos novos são opcionais.
  5. Regressar ao projecto e modifique a linha de código para ler infractor:
       oDoc = Docs.Add(vtOptional,vtOptional,vtOptional,vtOptional);					
  6. Recompile o projecto. Agora deverá compilar sem o erro.

Automatizar várias versões das aplicações do Office

Se pretender escrever código MFC que irá automatizar várias versões de uma aplicação do Microsoft Office, deverá utilizar o ClassWizard para gerar classes de moldagem a partir da biblioteca de tipos da versão mais antiga. Por exemplo, se desejar que o cliente de automatização para suportar o Microsoft Word 97 e 2000, utilize a biblioteca de tipo de Word 97 para as classes de moldagem. Do mesmo modo, se pretender que o cliente de automatização para suportar o Microsoft 2000 e 2002, utilize o tipo Word 2000 biblioteca para as classes de moldagem.
Referências
Para mais informações sobre a automatização do Office, visite o site de suporte do Microsoft Office Development em:

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 224925 - Última Revisão: 02/23/2014 16:08:11 - Revisão: 5.4

  • Microsoft Excel 2000 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Foundation Class Library 4.2
  • kbnosurvey kbarchive kbmt kbautomation kbinfo KB224925 KbMtpt
Esta informação foi útil?