【发布时间】:2010-12-28 13:32:06
【问题描述】:
我有一个旧的托管 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 参数导出简单的函数调用。这可能很简单,我只是在寻找错误的方向?
【问题讨论】:
标签: dll managed-c++ dllexport