信息: 为 Office 类型库可能会更改与新版本

文章翻译 文章翻译
文章编号: 224925 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

概要

Microsoft Office 产品将从一个版本更改为下一步。 通常,Office 产品的类型库将具有相同的功能在早期的产品版本中存在的但某些功能可能需要添加的参数数目的内容。因此,如果您具有对对象库的早期版本编写的代码用于 Office 对象库使用类向导生成的包装类则可能会收到以下编译错误:
错误 C2660: (函数): 函数不采用 (n) 参数

更多信息

为了说明,已更改的一个此类函数是文档对象的 Microsoft Word 2000 Add 方法。如果已经用在类向导生成在 Microsoft Word 2000 类型库中的函数的类包装,并且您使用的 Microsoft Word 97 的有效代码,您将收到前面所述的编译错误。下面介绍如何更正此问题。请注意尽管这种情况说明适用于,特别是可以自动 Word 代码,可以将相同的信息应用于其他 Microsoft Office 应用程序。

在 Word 97 类库您可以使用下面的代码以使 Word 自动运行并启动一个新文档:
   _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);
				
如果试图对 Word 2000 类型库中运行此代码,您将收到编译错误 C2660"添加: 函数不采用 2 参数"为下面的代码行:
     oDoc = oDocs.Add(vtOptional,vtOptional);
				
要更正此问题,您可以执行以下步骤。
  1. 转到 项目工作环境 窗口的 ClassView 选项卡。
  2. 在您的工作区的 列表中双击要显示其成员的 文档 类别。
  3. 查找 添加成员 函数,您将看到需要四个参数。您的代码只将两个参数传递,因此您收到编译错误。
  4. 在 Microsoft Word 中的 Visual Basic 帮助,请参阅并找到该主题的添加方法的文档对象以确定哪种类型的数据,这些参数的使用和/或确定参数是否可选。在本例中这两个新的参数是可选的。
  5. 返回到您的项目并修改有问题要读取的代码行:
       oDoc = Docs.Add(vtOptional,vtOptional,vtOptional,vtOptional);
    					
  6. 重新编译这个项目。它现在应该在不使用错误的情况下进行编译。

自动执行 Office 应用程序的多个版本

如果打算编写 MFC 代码,将自动执行 Microsoft Office 应用程序的多个版本,您应使用此类向导从最早版本的类型库生成包装类。例如对于如果需要自动化客户端以支持 Microsoft Word 97 和 2000年使用为包装类的 Word 97 类型库。同样,您是否自动化客户端以支持 Microsoft 2000 和 2002年用于 Word 2000 类型库包装类。

参考

有关 Office 自动化的详细信息,请访问 Office 开发支持网站,网址:
http://support.microsoft.com/ofd

属性

文章编号: 224925 - 最后修改: 2014年2月23日 - 修订: 5.4
这篇文章中的信息适用于:
  • Microsoft Excel 2000 标准版
  • Microsoft Word 2002 标准版
  • Microsoft Excel 2002 标准版
  • Microsoft PowerPoint 2002 标准版
  • Microsoft Access 2002 标准版
  • Microsoft Word 2000 标准版
  • Microsoft PowerPoint 2000 标准版
  • Microsoft Access 2000 标准版
  • Microsoft Foundation Class Library 4.2
关键字:?
kbnosurvey kbarchive kbmt kbautomation kbinfo KB224925 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 224925
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com