У меня есть C# библиотека, которую я экспортирую как расширение для программы на C ++. Я использую пакет unmanagedexports для экспорта функций.
Обновление вопроса:
Итак, изначально я подумал, что мне нужен файл .def для сопровождения моей C# dll, когда он импортировался приложением C ++ однако после комментария Мартина кажется, что моя dll вообще не имеет экспортируемых функций. Я предполагаю это после того, как инструменты MakeDef и DLL Export Viewer показали, что dll не имеет экспорта.
Код, который я использую, приведен ниже:
using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using RGiesecke.DllExport;
namespace TestExtension
{
public class TestClass
{
public static AppDomain TestDomain;
[DllExport("TestFunc")]
public static void TestFunc(ExtensionClient client, [MarshalAs(UnmanagedType.LPStr)] string args)
{
client.Print("TestOutput");
}
}
}
Остальная часть исходного вопроса:
Программа I загружаю их, говорит, что в документации нужен файл .def. Я понимаю, что этот файл создан программами на C ++ и документирует экспортируемые функции dll. Мой проект C# создает файл .pdb, который, как я понимаю, делает то же самое, но он не в удобочитаемом формате, и простое изменение расширения на .def, похоже, не сработало.
Итак, мой вопрос: могу ли я создать файл .def для моей C# dll или есть другой подходящий обходной путь / решение этой проблемы?