2011-08-13 29 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

相關問題