gpt4 book ai didi

c++ - 围绕静态库的托管 C++ 包装器

转载 作者:行者123 更新时间:2023-11-28 08:10:37 25 4
gpt4 key购买 nike

我正在使用 Visual Studio、.Net 和 Windows。

我正在为静态库编写一个包装器。我需要帮助的问题是错误消息:

LINK : fatal error LNK1104: cannot open file 'Unmanaged.lib'

“Unmanaged”是我的项目中的一个类,但它不是项目的名称。

我创建了一个 C++ CLR 类库项目。我在其中创建了一个托管类和一个非托管类。非托管类调用静态库。托管类使用非托管类。编译器和链接器似乎正在尝试为非托管类创建一个库,但这不是应该发生的事情。

我可以在托管类库项目中有一个非托管类(仅由托管类使用)吗?我假设是这样,但如果我错了,那么我将节省时间来了解我正在尝试做的事情是行不通的。

最佳答案

我刚刚开始第一次编写托管代码,并且花了很长时间弄清楚如何使用我的非托管类库。但我想出了一种方法来做到这一点。是的,您可以在同一个库中拥有托管和非托管类。在我的例子中,一个复杂的问题是我的非托管代码只能在 VS2008 中编译,而我需要放入的托管代码只能在 VS2010 中编译。所以这就是我所做的:

  1. 像往常一样使用 VS2008 将我的非托管代码构建到静态库中。这会生成 MyUnmanagedClasses.lib

  2. 在 VS 2010 中,在我要使用非托管代码的(托管)项目上右键单击/属性

  3. 选择链接器/输入

  4. 在第一个框“Additional Dependencies”中,添加MyUnmanagedClasses.lib

  5. 选择链接器/常规

  6. 在“Additional Library Directories”框中,添加MyUnmanagedClasses.lib所在的目录

  7. 像往常一样使用非托管类!

注意:不要将非托管项目本身添加到您的解决方案中——这是我首先尝试的,但没有成功;就像我上面所说的那样链接到库中。

关于c++ - 围绕静态库的托管 C++ 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9191664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com