У меня есть устаревшая управляемая c ++ dll, и мне нужно вызвать некоторую функцию, которая возвращает управляемый тип.
Для dllexports без управляемых типов это легко, я просто определяю свою статическую функцию c (++) в заголовке следующим образом:
extern "C"
{
__declspec(dllexport) int __cdecl InitSystem();
}
Но теперь статическая функция c (++) должна возвращать управляемый тип, и здесь у меня возникла проблема. Если я попытаюсь (например):
extern "C"
{
__declspec(dllexport) System::Collections::Generic::List<System::String^>^ __cdecl InitSystem();
}
Я получаю ошибку компилятора (для определения функции требуется подпись __clrcall).
Поскольку DLL не является сборкой (я думаю), я немного растерялся, как экспортировать простой вызов функции с использованием параметров .net / clr. Это, вероятно, просто, и я просто смотрю в неправильном направлении?