托管方式动态调用DLL,DLL的返回值是俩维的数组,可是Object是一维的咋办?
如题部分代码
string[,] Value;
Value=(string[,])Invoke("pit.dll", "pit.dll", "pd", "pt", new object[]{"12","23","34","45"});
Messagebox.Show(Value[0,0]);
通过pit.dll返回的是一个二维数组 string[,] Out;
调试的时候 Messagebox.show就不执行!应该是第二行那里出问题了!
哪位大侠知道该杂么做啊? --------------------编程问答-------------------- 这个就是大家熟悉的Invoke
private object Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName, object[] ObjArray_Parameter)
{
try{ // 载入程序集
Assembly MyAssembly=Assembly.LoadFrom(lpFileName);
Type[] type=MyAssembly.GetTypes();
foreach(Type t in type)
{// 查找要调用的命名空间及类
if(t.Namespace==Namespace&&t.Name==ClassName)
{// 查找要调用的方法并进行调用
MethodInfo m=t.GetMethod(lpProcName);
if(m!=null)
{
object o=Activator.CreateInstance(t);
return m.Invoke(o,ObjArray_Parameter);
}
else MessageBox.Show(" 装载出错 !");
}
}
}//try
catch(System.NullReferenceException e)
{
MessageBox.Show(e.Message);
}//catch
return (object)0;
}// Invoke --------------------编程问答-------------------- 有人会吗?
这个该杂么变通呢?
补充:.NET技术 , C#