文章编号: 258942 - 最后修改: 2005年7月11日 - 修订: 2.3

错误: Browseh 进程内 COM 示例那样 Not 公开入口点

本页

展开全部 | 关闭全部

症状

生成和平台 SDK 中注册 Browseh 示例,当您尝试运行该示例中包含在 Microsoft Visual Basic 客户端应用程序后可能无法看到任何结果。 当您尝试从另一个与 OLEVIEW,如的客户端创建 Browseh COM 组件时您可能会收到以下错误消息:

Microsoft Windows 4.0 NT
CoGetClassObject 失败。 未注册的类。 REGDB_E_CLASSNOTREG (¥ 80040154)
Microsoft Windows 2000
CoGetClassObject 失败。 在 DLL CO_E_ERRORINDLL (¥ 800401f9) 中的错误

原因

因如何当前生成该示例,Browseh COM 进程内服务器从不导出任何函数。 一个至少必须导出 DllGetClassObjectDllCanUnloadNow 函数。 该示例有 Browseh.def 文件但不会导出这些函数。 此外,生成文件忽略 Browseh.def 链接语句中。

解决方案

要解决此问题,执行以下步骤:
  1. Browseh.def 文件中使用下面的代码替换的导出节:
    EXPORTS        
    	DllGetClassObject  PRIVATE
    	DllCanUnloadNow  PRIVATE
    					
  2. 在生成文件,将以下代码添加到链接行
    /DEF:browseh.def
    						
    以便使链接线显示,如下所示:
    LINK = $(link)
    LINKFLAGS = $(linkdebug) $(guilflags) -dll -entry:_DllMainCRTStartup$(DLLENTRY) /DEF:browseh.def\ 
    					
  3. 重新生成该示例。

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中有 bug。

更多信息

重现行为的步骤

  1. 按照示例说明生成并注册该示例。

    注意: Browseh.dll 的文件不是 self-registering 的 DLL,所以使用 Browseh.reg 文件注册 Browseh.dll。 请确保更新到 Browseh.dll、 Browseh.tlb,和 MyDisp.tlb Browseh.reg 中正确的路径。
  2. 在 Microsoft Visual Basic,打开加载示例的客户端项目将 VB.vbp 文件。
  3. 按 F5 键运行 Visual Basic 客户端。
  4. 单击 选择类型库
  5. 选择类型库 对话框中单击任意类型库文件,然后单击 确定。 请注意没有任何反应。 简单的 Visual Basic 客户端捕获引发,但不执行任何操作在错误处理程序中的错误。
  6. 若要验证 DllGetClassObjectDllCanUnloadNow 不导出从 Browseh.dll,您可以使用工具 (如 Dumpbin.exe。 在命令提示符键入以下行,从 Browseh.dll 文件夹:
    dumpbin browseh.dll /exports
    导出函数的列表显示,但不包括 DllGetClassObjectDllCanUnloadNow

这篇文章中的信息适用于:
  • Microsoft Platform Software Development Kit-January 2000 Edition
关键字:?
kbmt kbbug kbpending KB258942 KbMtzh
机器翻译机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 258942? (http://support.microsoft.com/kb/258942/en-us/ )
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
 

文章翻译