2010-05-28 31 views
0

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

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

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

回答

2

您获得的HRESULT对于诊断这一点至关重要。被迫猜测:你是否在该机器上运行Regasm.exe?为了使COM能够找到服务器所需的注册表项。在IDE中构建时它是自动的。

+0

我会尽量多做一次。我明天通知你。感谢您的快速响应! – 2010-05-28 11:03:11

+0

关于HRESULT我不知道如何看到,因为我首先使用一个python项目来调用C++函数。我怎样才能看到HRESULT? – 2010-05-28 11:04:29

+0

如果您没有得到体面的诊断,则必须使用C++调试器。如果我的猜测是正确的,那么它明天不会失败。 – 2010-05-28 11:07:35

相关问题