我的第三方dll中有一个C类.
如果我调用Assembly.LoadFrom(),则VS会引发未处理的异常,因为模块中没有清单.
我可以使用DllImport调用全局函数来获取某个类的实例.
然后如何调用其成员函数之一?
解决方法:
使用暴露C函数的C/C++LI创建包装DLL
例如:
//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;
}
};