我有一个dll,其中有一些托管类。我需要从.exe设置托管类的属性值并将其传递给dll。但是dllexport函数不接受托管类作为参数。还有其他办法吗?
答案 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
中销毁实例