我有一个托管DLL,我想在我正在修改的遗留应用程序中使用,到目前为止我采取的步骤是......几乎遵循本指南的T: How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in Visual Studio 2005
所以,我为DLL创建了一个强名称,生成了.tlb文件,将#import转换为我的C ++代码,请注意,哦,很酷,当我'时,intellisense甚至可以看到类(和指向类的指针)我正在调用它,但在编译之后我收到了这个链接器错误:
Test.tlb : fatal error LNK1136: invalid or corrupt file.
可能是我的C ++项目设置错误,最初我收到"fatal error LNK1181: Cannot open input file 'Test.tlb' "
,直到我把它移到包含我的解决方案/项目的目录。
有谁知道可能导致这种情况的原因?
答案 0 :(得分:1)
是的,您的项目设置错误。您好像已将.tlb文件添加到链接器的Additional Dependencies设置中。这不正确,它不包含任何可链接的代码。它只包含只有#import指令才能理解的格式的声明。
从链接器设置中删除test.tlb。