我有一个项目,该项目使用C ++/CLI实施GUI和一些背景处理来与传感器交谈。我已经有所有的工作,我们用来传达传感器位于.dll中的许多通信内容。问题在于,我想将库组合到主要可执行文件中,以免担心分发.dlls。

我有一个演示项目,使用.lib可以正常工作,但是当我尝试切换Mani Code主体以产生.lib而不是.dll时,我会收到以下错误:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

有点谷歌搜索 建议当您没有应用MSIL开关时,就会发生这种情况,但是库肯定在图书馆项目中。

我在演示项目和真实的事情中都有托管和不受管理的代码的混合,因此我真的很努力地看到这里的问题。

任何建议都会非常感激!

有帮助吗?

解决方案

我猜想有点,但我怀疑“ mytool”项目的“ mylib”项目是其“参考”之一(“项目”菜单>>属性>>属性>>常见属性>>参考)。

将Mylib项目的类型更改为LIB而不是DLL时,您需要从项目参考中删除“ mylib”。然后,您更新解决方案的项目依赖项(“项目”菜单>>“项目依赖关系...”),以便MyTool取决于Mylib。

其他提示

我也遇到了这个。失败的原因是因为我正在将我的本地/托管C ++ DLL汇编为Target .NET 4.0。我#using的dll是.net 2.0 dll。因此,即使路径和文件名称完美排列,它也是失败的。在这种情况下,错误消息绝对没有任何帮助。我通过将独立DLL更新为.NET 4.0来解决它。因此,两个组件都使用相同的.NET框架。

如果要链接到混合模式(托管/本机)DLL,则可能会遇到此错误。即使项目之一没有使用CLR,您也不应该使用CLR。但是无论如何,如果是这种情况,请尝试从项目|属性| common属性|参考中删除参考,然后重新添加它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top