我有一个使用第三方.NET dll的非托管C ++项目。它在一台机器上构建良好,但在另一台机器上不构建 - IDE无法找到类定义。
我运行RegAsm.exe TheLib.dll /codebase /tlb:TheLib.tlb
,两台计算机上的注册表项匹配。也就是说,即使IDE说TheLib.Function()
未定义,它也存在于两台机器的注册表中。
我可能做错了什么? (两台计算机上的源从同一个存储库中检出,并且没有未提交或未版本化的文件。)
答案 0 :(得分:1)
如果您没有从库中正确导出类或函数,有时会发生这种情况。即使代码在那里并且在链接时它编译得很好,它可能会省略定义或者实际上不会生成对函数的导出。因此,导入lib的其他项目将它们显示为未定义。
This article描述了从DLL导出类的好方法,值得一读,因为它可能与您的问题有关。