2011-08-13 30 views
0

我有一个托管的DLL,我想在我正在修改的遗留应用程序中使用,到目前为止,我所采取的步骤是......几乎遵循本指南T: How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in Visual Studio 2005本地VC++ 6中的托管DLL应用程序

因此,我为DLL创建了一个强名称,生成了.tlb文件,#将它导入到我的C++代码中,注意到,哦,很酷,intellisense甚至可以在我看到类(和指向类的指针) “M调用它,但它编译后我收到这个连接错误:

Test.tlb : fatal error LNK1136: invalid or corrupt file. 

这可能是我的C++项目设置错了,原来我收到个Ë"fatal error LNK1181: Cannot open input file 'Test.tlb' ",直到我把它移到包含我的解决方案/项目的目录。

有谁知道可能会导致什么呢?

+0

VC++ 6从1998年,第一个.NET版本是在2002年做了我不知道这是可以做到... – user786653

+0

TLB是COM,虽然,这两种语言中立和早于VC6。您今天可以编写.Net COM代码,它将在1996年与代码_compiled_一起使用! – MSalters

回答

1

是的,你的项目设置是错误的。您似乎已将.tlb文件添加到链接程序的“附加依赖项”设置中。这是不正确的,它不包含任何可链接的代码。它只包含只有#import指令可以理解的格式的声明。从连接器设置

删除test.tlb。

+0

就是这样。谢谢 ! – kogh

相关问题