C++/CLI Support in .Net Core

前端 未结 4 923
抹茶落季
抹茶落季 2020-12-08 10:16

Our project structure is like,

native.dll :- This contains pure native code written in c\\c++. This native.dll exposes some functions using *def file.<

相关标签:
4条回答
  • 2020-12-08 10:31

    .net Core team will only commit (now?) to supporting C++/CLI for Windows only.

    The intention was to deliver it for .net Core 3.0. While I haven't found explicit mention of it yet in the release notes, C++/CLI support was a prerequisite for delivering WPF (windows-only), which is now supported in .net Core 3.0.

    Support mixed-mode assemblies on Windows - #18013

    This issue (#18013) will track progress toward supporting loading and running mixed-mode assemblies on CoreCLR. The main goal is to provide support for WPF and other existing C++/CLI code on .NET Core. Some of the work will be dependent on updates to the MSVC compiler.

    The github issue (#659) mentioned above by @Tomas-Kubes, Will CoreCLR support C++/CLI crossplat? - #659, is about cross-platform C++/CLI.

    BTW, I am getting compiler warnings on "clr\oldsyntax" with VS2017/.net-4.7. So this compiler flag is already deprecated.

    UPDATE: This isn't coming till .Net Core 3.1

    0 讨论(0)
  • 2020-12-08 10:33

    whether .Net Core(CoreCLR) supports C++\CLI (clr\oldsyntax) runtime environment ?

    As far as I know there is no plan to support C++/CLI with .NET Core.

    If no, what can be the possible solutions to this application work ?

    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).

    0 讨论(0)
  • 2020-12-08 10:40

    Officially announced eventually... (next wish... support linux @ .Net 5 ^^)

    https://devblogs.microsoft.com/cppblog/the-future-of-cpp-cli-and-dotnet-core-3/

    C++/CLI will have full IDE support for targeting .NET Core 3.1 and higher. This support will include projects, IntelliSense, and mixed-mode debugging (IJW) on Windows. We don’t currently have plans for C++/CLI for targeting macOS or Linux. Additionally, compiling with “/clr:pure” and “/clr:safe” won’t be supported for .NET Core.

    The first public previews for C++/CLI are right around the corner. Visual Studio 2019 16.4 Preview 1 includes an updated compiler with “/clr:netcore”


    Updat: From replied of origin url: "We are still working on the IDE and MSBuild integration, so I can’t share a sample project quite yet. Once it’s available, likely with 16.4 Preview 2 or 3"

    (16.4 Preview1 cannot create C++/CLI with .NetCore project.)


    191015 16.4 Preview2 Released. I'v tried asp.net core 3.1 with c++/CLI dll, it works. (need set plateform to x64 both asp.net core and c++/CLI dll)

    0 讨论(0)
  • 2020-12-08 10:45

    Another potential solution (though obviously quite a difficult task) if you want to stick with C++ (i.e. expose an OO interface to .NET) might be to have a look at CppSharp from the mono project. It is able to expose native C++ code through an automatically generated C# wrapper. It supports Windows, Linux as well as OSX. However, I don't know if the generated code can be compiled to a .NET standard target (didn't try to). I can only suppose it would because the generated code does not use any fancy API (it is basically interop and marshalling code); and, by the way, it is also possible to customize the generation process (although, once again, probably not an easy task).

    0 讨论(0)
提交回复
热议问题