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

标签 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;
}

显示错误

Error LNK2019 unresolved external symbol "bool __cdecl Check(void)" (?Check@@YA_NXZ) referenced in function _main

1 unresolved externals

最佳答案

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

关于c# - 从非托管 C/C++ 代码调用 C# .NET 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55256406/

相关文章:

c++ - GetQueuedCompletionStatusEx() 不返回 per-OVERLAPPED 错误代码

c# - SSIS 使用条件拆分或脚本拆分平面文件中的行

c# - 此命名空间需要什么 NuGet?

c# - 尝试在字符串中查找单个字符的更快方法是什么?

c# - 来自一个页面的多个 AJAX 请求的 ASP.NET MVC HTML.AntiForgeryToken()

c# - 带有 Masstransit 发布的中间件

C++虚拟克隆方法,异常继承

c++ - 有关新 Windows 10 错误 : ERROR_CLOUD_FILE_ACCESS_DENIED 的信息

c++ - 如何释放在 C++ 中加载的 DotNet 程序集

c# - 在 Dynamic CRM Online 中使用 SpreadsheetGear 2012 库