1.关于在开发环境下COM组件的(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))

开发环境下,COM组件注册的文件 不一定是你自己现在程序调用的根文件夹下的COM组件程序。

注意,COM组件的注册时在注册表中进行的注册,也就是说组件信息是存放在regedit中的,注册该COM组件不一定能够覆盖该原有COM组件,可能需要先注销后注册。

比如你的程序叫A.dll,在文件夹A/Release下,你现在要把这个COM组件移植到另外一个项目的B/Relese下,这个时候你修改了A.dll可能就会导致注册的内容和你实际上调用的DLL不统一。当然了实际上要考虑这种情况是很容易考虑到的,所以不过过多阐述

2.在CLR语言下可能报错 未能加载文件或程序集“Interop.xxx 的问题

这个问题很有意思,因为同样是在引用中调用了这个COM组件,但是在使用指定函数的时候却显示这个文件未能加载,检查了一下引用,发现是CLR这个语言会生成一个Interop文件,用于做C++ .net的桥接,也就是这个Interop文件,但是在整体程序中这个Interop文件并不会跟随程序复制移动,也就是说这个Interop文件还需要从工程文件夹中复制到你的目标文件夹中....这个比较恶搞,可能需要注意一下