C++ cli C+中的链接错误+/CLI应用程序链接静态C++/CLI库

C++ cli C+中的链接错误+/CLI应用程序链接静态C++/CLI库,c++-cli,static-libraries,C++ Cli,Static Libraries,我有一个静态C++/CLI库,其中定义了以下类: ObjectWrapper.h: 公共引用类CObjectWrapper:System::Object { 公众: CObjectWrapper(CObject&wrappedObject); 显式算子CObject*(); 私人: CObject&m_WrappedObject; }; ObjectWrapper.cpp: #包括“stdafx.h” #包括“BasicObjectWrapper.h” CObjectWrapper::CObj

我有一个静态C++/CLI库,其中定义了以下类:

ObjectWrapper.h:

公共引用类CObjectWrapper:System::Object { 公众: CObjectWrapper(CObject&wrappedObject); 显式算子CObject*(); 私人: CObject&m_WrappedObject; }; ObjectWrapper.cpp:

#包括“stdafx.h”
#包括“BasicObjectWrapper.h”
CObjectWrapper::CObjectWrapper(CObject和wrappedObject)
:WrappedObject(WrappedObject)
{ }
CObjectWrapper::运算符CObject*()
{
返回和包装对象;
}
我有一个链接到静态库的C++/CLI应用程序。链接中出现以下错误:

错误3错误LNK2020:未解析的令牌(06000007)
CObjectWrapper::.ctor
KCBrowserInEcrinView.obj

错误4错误LNK2020:未解析的令牌(06000005)
CObjectWrapper::.ctor
KCBrowserLibD9.lib

错误5错误LNK2020:未解析的令牌(06000008)
CObjectWrapper::op_Implicit
KCBrowserInEcrinView.obj

错误6错误LNK2020:未解析的令牌(06000006)
CObjectWrapper::op_Implicit
KCBrowserLibD9.lib

我通过将实现(以前位于.cpp文件中)移动到.h文件解决了这个问题。我不明白为什么


如果有人能提供任何解释,我将不胜感激。

链接器不支持带有托管代码的静态链接库。等价物是一个组件。一个DLL,链接在运行时发生。@Hans谢谢你的回答。我肯定错过了一些东西,因为与静态库的链接是有效的,就像我在消息末尾描述的技巧一样。你是说,代码来自头文件,而不是库。这和将所有源代码文件放在一个项目中是一样的。另一个问题。我在同一个库中有另一个类
ref类CObjectFactory:someNamespace::IObjectFactory
,它定义了
虚拟对象^Create()
。实现在.cpp文件中。与CObjectWrapper对象相反,此方法不存在链接问题。原因是什么?