【问题标题】:Link errors - unresolved token/external symbol for unmanaged C++/CLI wrapper链接错误 - 非托管 C++/CLI 包装器的未解析令牌/外部符号
【发布时间】:2014-11-16 07:21:22
【问题描述】:

所以我有一个如下所示的包装器:

包装器.h

#pragma once
#include "Engine.h"

namespace Wrapper 
{
    public ref class EngineWrapper
    {
    public:
        EngineWrapper();
        virtual ~EngineWrapper();
    protected:
        !EngineWrapper();
    private:
        CEngine *m_engine;
    };
}

包装器.cpp

#include "stdafx.h"
#include "Wrapper.h"
using namespace Wrapper;

EngineWrapper::EngineWrapper()
{
    m_engine = new CEngine();
}

EngineWrapper::~EngineWrapper()
{
    if (m_engine)
    {
        delete m_engine;
        m_engine = NULL;
    }
}

EngineWrapper::!EngineWrapper()
{
    if (m_engine)
    {
        delete m_engine;
        m_engine = NULL;
    }
}

这是我的一些本机引擎代码(在另一个项目中):

引擎.h

class CEngine
{
    public:
        CEngine();
        virtual ~CEngine();

   // other stuff
}

Engine.cpp

CEngine::CEngine()
{
    // do stuff
}

CEngine::~CEngine()
{
   // do stuff
}

我的 Wrapper 项目是一个使用 /clr 编译的 C++/CLI 项目 我的引擎项目是一个原生 C++ 项目,它生成一个 .dll、.lib 和 .exp(通过查看此项目构建时的输出)

对于 Wrapper 项目,我已将本机 .lib 的位置添加到链接器输入中。

我的问题:我收到以下错误:

Error   126 error LNK2028: unresolved token (0A000380) "public: __thiscall
CEngine::CEngine(void)" (??0CEngine@@$$FQAE@XZ) referenced in function "public:
__clrcall Wrapper::EngineWrapper::EngineWrapper(void)" (
0EngineWrapper@Wrapper@@$$FQ$AAM@XZ)    C:\..\..\Wrapper.obj    Wrapper

Error   127 error LNK2019: unresolved external symbol "public: __thiscall
CEngine::CEngine(void)" (??0CEngine@@$$FQAE@XZ) referenced in function "public:
__clrcall Wrapper::EngineWrapper::EngineWrapper(void)" (
0EngineWrapper@Wrapper@@$$FQ$AAM@XZ)    C:\..\..\Wrapper.obj    Wrapper

我认为它正确地找到了库,为什么它不能识别本地 ctor?

【问题讨论】:

    标签: c++-cli wrapper linker-errors


    【解决方案1】:

    在原生 C++ 项目中导出 CEngine 类,详情查看URL

    【讨论】:

    • 哦,呵呵。是的,课程没有被导出。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多