在Windows 7 Pro 32位中生成.tlb文件

时间:2010-05-28 09:32:00

标签: c# c++ dll typelib

我有一个C ++ DLL,用于导入在C#项目中生成的.tlb文件。 C ++ DLL是一个包装DLL,包含调用相应C#函数的函数。

当我在我构建项目的计算机上调用C ++函数时,一切正常。但是当我将DLL和生成的tlb复制到具有相同版本的Windows并安装了程序并且我调用C ++函数的另一台计算机时,它会因COM错误而中断。但是,在重新编译新计算机上的项目后,一切都会再次运行。

我已经检查了两个项目的“在所有计算机上工作”,但这种情况一直在发生。我还需要做什么才能让DLL在所有计算机上运行?

1 个答案:

答案 0 :(得分:2)

你得到的HRESULT对于诊断这一点至关重要。强迫猜测:你在那台机器上运行Regasm.exe了吗?需要创建必要的注册表项,以便COM可以找到服务器。在IDE中构建时它是自动的。