现在遇到这样的问题:
在环境 E1 下 Build 出 A.dll 系统运行OK
一段时间后, 环境 E1 经过若干更新升级到 E1', 现在忽然发现 A.dll 无法加载了,出现类不支持自动化的错误.在 E1 环境重新使用原来的源代码,二进制兼容 A.dll 编译出 A'.dll 类不支持自动化的错误消失了.我想 在编译 A 之前日 和 之后, A.dll一定发生了变化,而且肯定是接口的变化,我如何发现这个变化呢?
我是想有什么办法,可以用程序的方法扫描 A.dll 的接口信息表,并将之保存下来,如果一旦发现必需经过重新编译才行的话,可以扫描 编译前后的接口信息表,检查哪一个接口发生了变化,就可以定位到问题所在了,不然一个系统,成千上万个 Dll , 简直就跟地狱一样,无法定位到底是哪一个 Dll 发生了真正的接口变更
请问:有读取 Dll 接口信息的程序或 API 吗?

解决方案 »

  1.   

    你编译的时候,把DLL设置成二进制兼容,就不会出现升级问题。
      

  2.   

    用Microsoft Studio Tools中的OLE View,在该工具的View Typelib可以看到dll中的各种接口及GUID。
      

  3.   

    有的DLL是不公开的,很难看到详细的信息.
      

  4.   

    有相应的 API 可以将接口信息生成一个 XML 可描述文件吗?
      

  5.   

    同意VBToy,用Microsoft Studio Tools中的OLE View看看。
    像junki说的没见过,如果真是如此,那就难办了。
      

  6.   

    用TLI,具体的你搜一下以前的帖子吧
      

  7.   

    .TLB文件里保存的是函数接口,你用OLE View,可以看到
      

  8.   

    五星高手,帮我看看这个问题!谢谢
    http://community.csdn.net/Expert/topic/4624/4624901.xml?temp=.2473108