Я пытаюсь сделать что-то похожее на this :
Я работаю на Windows, но я собираюсь сделать так, чтобы мой код работал на Linux позже (поэтому я работаю с cygwinи clion для C ++).VS2017 для компиляции C # для приложения .NET Core с обычным компилятором C #.Моя проблема заключается в получении этой ошибки в Visual Studio:
"Программа '[19944] dotnet.exe' вышла с кодом -1073741819 (0xc0000005)« Нарушение прав доступа »."
Вот мой файл cmake (сгенерированный с помощью clion):
cmake_minimum_required(VERSION 3.10) project(callFromCsharp)
set(CMAKE_CXX_STANDARD 14)
add_library(callFromCsharp SHARED library.cpp)
Вот мой код C ++ в library.cpp:
#include <cstdint>
extern "C" __declspec(dllexport) int32_t Test(){
return 10;
}
Это мой вызов cmake, сгенерированныйclion
C: \ Users \ Daant.CLion2018.1 \ system \ cygwin_cmake \ bin \ cmake.exe --build / cygdrive / c / Users / Daant / CLionProjects / callFromCsharp / cmake-build-release --target callFromCsharp - -j 6
Вот мой код C #:
class Program
{
[DllImport("cygcallFromCsharp.dll", EntryPoint = "Test", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern Int32 Test();
[STAThread]
static void Main()
{
var res = Test();
Console.WriteLine($"Done! {res}");
Console.ReadLine();
}
}
Как решить эту проблему?Я просто хочу вызвать метод C ++ без ошибок или исключений.