本机 VC 中的托管 DLL++ 6 应用

发布于 2024-11-29 10:46:02 字数 500 浏览 0 评论 0原文

我有一个托管 DLL,我想在我正在修改的遗留应用程序中使用它,到目前为止我采取的步骤是......几乎遵循本指南: 如何从 Visual Studio.NET 或 Visual Studio 2005 中的本机 Visual C++ 代码调用托管 DLL

因此,我为 DLL 创建了一个强名称,生成了 .tlb 文件,将其 #import 到我的 C++ 代码中,请注意,哦酷,当我调用它,但编译后我收到此链接器错误:

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

可能是我的 C++ 项目设置错误,最初我收到“致命错误 LNK1181:无法打开输入文件'Test.tlb'”直到我将其移至包含我的解决方案/项目的目录。

有谁知道可能是什么原因造成的?

I have a managed DLL that I want to use in a legacy application I'm modifying, so far the steps I have taken are.. pretty much following this guide to a T:
How to call a managed DLL from native Visual C++ code in Visual Studio.NET or in Visual Studio 2005

So, I created a strong name for the DLL, generated the .tlb file, #import it into my C++ code, notice that, oh cool, the intellisense can even see the classes (and pointers to classes) when I'm calling it, but after compiling it I recieve this linker error:

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

It may be my C++ project is set up wrong, originally I recieved the "fatal error LNK1181: Cannot open input file 'Test.tlb' " until I moved it to the directory containing my solution/project.

Does anyone know what might be causing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

触ぅ动初心 2024-12-06 10:46:02

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

从链接器设置中删除 test.tlb。

Yes, your project setup is wrong. You seem to have added the .tlb file to the linker's Additional Dependencies setting. That's not correct, it doesn't contain any linkable code. It only contains declarations in a format that only the #import directive can understand.

Remove test.tlb from the linker settings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文