我有一个旧的托管 c++ dll,我需要调用一些返回托管类型的函数。
对于没有托管类型的 dllexport,这很容易,我只需在如下标头中定义我的静态 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 参数导出简单的函数调用。这可能很简单,我只是在寻找错误的方向?