从非托管C / C ++代码调用C#.NET方法

时间:2019-03-20 08:29:28

标签: c# c++ .net clr managed-c++

我需要在本地c ++中调用c#方法。我遵循了this指南,将其下载成功,但是在新版本的.net上尝试时无法复制。 这段代码的主要思想是以这种方式调用c#方法: C#.dll-> C ++ / CLI(托管c ++)-> c ++

C#

public static class ManagedClass
    {
        public static bool Check()
        {
            return true;
        }
    }

托管c ++

namespace ClassLibrary1 {

    public ref class DoWork
    {
    public: bool CheckCSharp()
    {
        return CSharp::ManagedClass::Check();
    }
    };
}
__declspec(dllexport) bool Check()
{
    ClassLibrary1::DoWork work;
    return work.CheckCSharp();
}

c ++

#include "ClassLibrary1.h"
_declspec(dllexport) bool Check();

int main()
{
    std::cout << Check();
    system("pause");
    return 0;
}

显示错误

  

错误LNK2019无法解析的外部符号“布尔__cdecl Check(void)”   _main函数中引用(?Check @@ YA_NXZ)

     

1个未解决的外部因素

1 个答案:

答案 0 :(得分:1)

enter image description here必须在指向.lib的链接器路径中写入