将托管类对象传递给c ++ dll

时间:2016-03-08 12:17:31

标签: c++ managed

我有一个dll,其中有一些托管类。我需要从.exe设置托管类的属性值并将其传递给dll。但是dllexport函数不接受托管类作为参数。还有其他办法吗?

1 个答案:

答案 0 :(得分:-1)

如果你的.dll是“普通”dll(不是某些COM类或.NET程序集),则不能公开类。但是你可以暴露像

这样的东西
void* CreateInstance(int param1, const char* param2);
int DoSomeMegaWork(void* instance, const int* paramZ);

实施将是     void * CreateInstance(param1,param2)     {         YourClass * instance = new YourClass(param1);         //好吧,无论何时         instance.DoSomeWork(参数2);         返回实例;     }

int DoSomeMegaWork(void* _instance, const int* paramZ)
{
    YoutClass* instance = (YourClass*) _instance;
    return instance.DoSomeMegaWork(paramZ);
}

不要忘记在同一个.dll

中销毁实例