Импорт DLL на C++ в проект на C#. Возвратить массив символов

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Появилась нужда написать динамическую библиотеку с набором функций для последующего прикручивания к проекту на C#. Одна из экспортируемых функций должна возвращать массив символов (или строку). Из-за нехватки знаний и опыта подобная задача совершенно мне не по силам. Файл либы:
extern "C" __declspec(dllexport) char* __cdecl  getData()
{
    char *data;
        ...
    return data;
}
Файл проекта:
[DllImport(
     @".../DllLibrary.dll", 
     EntryPoint = "SegmentRectangle", 
     CharSet = CharSet.Ansi, 
     CallingConvention = CallingConvention.Cdecl
)]
 
static extern string getData();
 
static void Main(string[] args)
{
    string str = getData();
    Console.WriteLine(str);
}
В данном случае str ничего не присваивается. Перепробовал кучу способов, но безрезультатно.

Решение задачи: «Импорт DLL на C++ в проект на C#. Возвратить массив символов»

textual
Листинг программы
 extern "C" __declspec(dllexport) char*  __cdecl SegmentRectangle()
{
    return "segment into rectangle";
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5