C# Функции DllExport не отображаются в таблице экспорта DLL после компиляции - PullRequest
0 голосов
/ 27 мая 2020

У меня есть 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 или есть другой подходящий обходной путь / решение этой проблемы?

...