微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何设计包装类以使用C ++应用程序以使用C#DLL?

如何解决如何设计包装类以使用C ++应用程序以使用C#DLL?

我遵循以下教程https://www.red-gate.com/simple-talk/dotnet/net-development/creating-ccli-wrapper/,使用包装程序类从C#.NET框架控制台应用程序创建C ++静态库的实例。在本教程中,Managedobject.h文件为从非托管到托管的包装器类创建模板。我将如何创建一个从托管到非托管的模板-如果不可能,那么任何创建包装类的链接都可以从C#DLL转换为C ++应用程序使用!

解决方法

就像您提到的链接一样,似乎唯一的方法是创建3个项目。

首先,创建一个C#类库项目并创建一些公共库,例如:

Commands.cs:

using System;
public static class Commands
{
    public static void PrintMsg() => Console.WriteLine("Hello");
}

然后,创建一个C ++ / CLI项目(包装项目)。 在包装项目中,创建一些函数以使用您的类并导出它们(我不确定是否需要extern "C",但我会使用它)。

wrapper.cpp:

extern "C" __declspec(dllexport) void printMsg()
{
    Commands::PrintMsg();
}

在您的C ++非托管项目中,引用包装器项目并导入函数(并使用它们)。

main.cpp:

extern "C" __declspec(dllimport) void printMsg();

int main()
{
    printMsg();
    return 0;
}

输出:您好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。