问题描述
我们的项目结构是,
native.dll
:-其中包含用c编写的纯本机代码\c ++。
此native.dll使用* def文件公开一些功能。
native.dll
:- This contains pure native code written in c\c++.This native.dll exposes some functions using *def file.
包装器库(使用.Net Framework v4编译的wrapper.dll。 0)
:-
为了使用 native.dll
的功能,需要使用 Wrapper lib(wrapper。 dll)
使用:clr\oldsyntax $ c $用
C ++ \CLI
编写c>。该包装器具有所有
代码,分别是互操作性
和封送处理
。
Wrapper Library(wrapper.dll compiled with .Net framework v4.0)
:-In order to use functionality of native.dll
, a Wrapper lib(wrapper.dll)
is written in C++\CLI
using :clr\oldsyntax
. This wrapper has allcode of Interoperability
and Marshalling
.
Application(Console App v4.0)
直接使用 wrapper.dll
来使用$ b提供的功能$ b由 native.dll
创建。
Application(Console App v4.0)
directly uses wrapper.dll
to use functionality providedby native.dll
.
现在,该项目需要在 .Net Core 中运行。这意味着我们将拥有一个
.Net Core应用程序
,该应用程序将 reference wrapper.dll
请参考
native.dll
。
Now this project needs to run in .Net Core. This means we will have an.Net Core application
that will reference wrapper.dll
that in turn will refernative.dll
.
我知道这将无法直接工作。但是问题是 .Net Core(CoreCLR)是否支持
C ++ \CLI(clr\oldsyntax)运行时环境 ?
I know this will not directly work. But the issue is whether .Net Core(CoreCLR) supportsC++\CLI (clr\oldsyntax) runtime environment ?
如果否,该应用程序可能有什么解决方案?
推荐答案
据我所知,有。
您可以(应该)提供C API。 和和)。
You can (should) provide a C API. Mono e. g. supports P/Invoke and .NET Core also supports P/Invoke (see also this Stack overflow question and this DllMap related ticket).
这篇关于.Net Core中的C ++ / CLI支持的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!