我的第三方dll中有一个C ++类。
如果我调用Assembly.LoadFrom(),VS会抛出一个未处理的异常,因为模块中没有包含清单。
我可以使用DllImport调用全局函数来获取某个类的实例。
如何调用其中一个成员函数?
答案 0 :(得分:2)
使用C ++ / CLI创建一个包装器DLL,公开C ++函数
例如:
//class in the 3rd party dll
class NativeClass
{
public:
int NativeMethod(int a)
{
return 1;
}
};
//wrapper for the NativeClass
class ref RefClass
{
NativeClass * m_pNative;
public:
RefClass():m_pNative(NULL)
{
m_pNative = new NativeClass();
}
int WrapperForNativeMethod(int a)
{
return m_pNative->NativeMethod(a);
}
~RefClass()
{
this->!RefClass();
}
//Finalizer
!RefClass()
{
delete m_pNative;
m_pNative = NULL;
}
};
答案 1 :(得分:1)