当前位置: 首页 > 编程语言 > C#

使用c++-clibridge连接c++和c#代码分享

时间:2023-04-10 17:05:09 C#

使用c++/clibridge连接c++和c#代码我有一个这个使用nativec++dllmachinec++codeclientapplication。我正在研究将此代码与c#dll连接的可能性,因为它们更易于编写。我决定编写一个c++/cli桥接dll,它可以加载LoadLibrary并将调用传递给c#dll。客户端与dll的通信是让客户端传递一个指向接口对象的指针,然后dll通过接口对象与客户端进行通信。为了使用c#代码,我将这个对象包装在c++/cli桥接代码中。桥还应该使用__declspec(dllexport)公开几个函数并将这些调用传递给c#dll,因此它需要有一个指向将传递给它们的c#接口的指针。我想在gcroot包装器中使用c#对象,但问题是我在这两个dll之间产生了循环依赖。C#dll需要引用bridgedll才能使用wrapper类,bridgedll需要引用c#dll才能使用interface类。我知道我可以使用COM而不是使用gcroot包装c#对象,但我不想这样做。有没有解决的办法?只需在C++/CLI而不是C#中定义接口。这完全消除了对C#项目的依赖。我建议将C++/CLI项目视为包装器——不要在其中定义任何新接口。只需获取当前C++代码中的内容,并将其包装在“ref类”中,以便您可以从C#构造和调用它们。以上就是C#学习教程的全部内容:使用c++/clibridge连接c++和c#代码分享。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请右击联系管理员删除。如需转载请注明出处: