从非托管C#DLL返回列表/数组

问题描述 投票:0回答:1

我有不受管理的C#DLL:

[DllExport(ExportName = "GetStudentsList", CallingConvention = CallingConvention.StdCall)]
static public List<StudentsStruct>GetStudentsList() {  return List<StudentsStruct>;   }


[DllExport(ExportName = "maxElement", CallingConvention = CallingConvention.StdCall)]
static public int maxElement(int a, int b) { return c; }

我想从该函数返回List<StudentsStruct>

而且我想在C ++应用程序中运行以上功能:

using GetStudentsListFn = List<StudentsStruct> (__stdcall *) (void);
GetStudentsListFn  GetStudentsList = reinterpret_cast<GetStudentsListFn> (GetProcAddress(mod, "GetStudentsList"));
List<StudentsStruct> myList = GetStudentsList();

using MaxElementFn = int(__stdcall *) (int a, int b);
MaxElementFn maxElement = reinterpret_cast<MaxElementFn> (GetProcAddress(mod, "maxElement"));
std::printf("max: %d\n", maxElement(1, 2));

MaxElement()函数可以正常工作,因为它返回一个int。但是我想从C#返回“ StudentsStruct”的列表/数组到C ++。

c# c++ arraylist dll unmanagedexports
1个回答
0
投票
和C ++代码:
© www.soinside.com 2019 - 2024. All rights reserved.