运行 C# 项目时无法加载 DLL

Unable to load DLL when running the C# project

提问人:Joel L 提问时间:11/15/2023 更新时间:11/15/2023 访问量:33

问:

我正在尝试开发一个简单的 CppSharp 项目。 头文件的实现如下:

class Sample 
{
public:
    int a;
    int b;
    Sample(int a, int b){
        this->a=a;
        this->b=b;
    };
};

ILibrary 接口中 Setup 函数的实现如下所示:

public void Setup(Driver driver)
{
    //throw new NotImplementedException(); 
    var options = driver.Options;
    options.GeneratorKind = GeneratorKind.CSharp;
    options.OutputDir = @"D:\Project\Cppsharp\Sample\output";
    var module = options.AddModule("CppClass");
    module.IncludeDirs.Add(@"D:\Project\Cppsharp\Sample\include");
    module.Headers.Add("Sample.h");
}

在执行

ConsoleDriver.Run(new CppClass()),

在指定的文件夹中生成两个名为 CppClass.cs 和 CppClass-symbols.cpp 的文件。文件 CppClass.cs 和 CppClass-symbols.cpp 将复制到 C# 项目中,并使用 Sample 对象实例化

CppClass.Sample sample = new CppClass.Sample(1,2)

但是,在运行 C# 项目时,会出现“无法加载 DLL'CppClass' 或其依赖项之一”的错误消息。您能否就我可能省略的步骤提出建议?

C# C++ DLL 导入 cppsharp

评论

0赞 Cem Polat 11/15/2023
您应该导出带有 __declspec 的 Sample 类。E.g.class __declspec(dllexport) 示例
0赞 Adesoji Alu 11/15/2023
确保 dll 已构建且可用,将 Dll 放在正确的位置,检查是否缺少依赖项您是否使用了正确的编译器设置?

答: 暂无答案