Использование С++ библиотеки - C#
Формулировка задачи:
Добрый вечер.
Как создать экземпляр класса из библиотеки на плюсах в шарпе ?
C# компилятор говорит, что ClassesLibrary.Test недоступен из-за его уровня защиты, и я его конечно понимаю. Есть способы ? Спасибо.
Test.h
Test.cpp
Program.cs
Если метод глобальный, то проблемы нету. Использую его вот так:
namespace ClassesLibrary { class Test { public: __declspec(dllexport) void Method(); }; }
#include <iostream> #include "Test.h" namespace ClassesLibrary { __declspec(dllexport) void Test::Method() { const int SIZE_ARRAY = 80; int array[SIZE_ARRAY]; for (int i = 0; i < SIZE_ARRAY; ++i) { array[i] = i; std::cout << array[i] << std::endl; } } }
using ClassesLibrary; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Test test = new Test(); // ошибка ClassesLibrary.Test недоступен из-за его уровня защиты Console.Read(); return; } } }
extern "C" { __declspec(dllexport) void Method() { } }
[DllImport("ClassesLibrary.dll")] public static extern void Method();
Решение задачи: «Использование С++ библиотеки»
textual
Листинг программы
[DllImport(@"TestDll.dll", EntryPoint= "?Method@@QAEXH@Z")] public static extern void Method();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д