在vb6 dll的c#中进行函数调用的问题 [英] problem in making function call in c# of vb6 dll
本文介绍了在vb6 dll的c#中进行函数调用的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在vb6中有一个dll,我用它来调用c#(vs2008)这样的
添加参考
i have a dll in vb6 which i use to call in c#(vs2008) like this
add reference
PrjMainO.ClsMainClass ClsSAGMainO = new PrjMainO.ClsMainClass();
object myobj = new object();
bool x = false;
string strvalue= ClsSAGMainO.InitProdNew("myAppname", "Logger.Log", 2014, ref str, ref x);
现在我想以这种方式调用函数
Now i want to call the function in this manner
object objrval = new object();
objrval = 0;
object[] oparam = new object[] { "myAppname", "Logger.Log", 2014 };
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("PrjMainO.ClsMainClass"));
objrval= objJRO.GetType().InvokeMember("InitProdNew",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oparam);
string strvalue= Convert.ToString(objrval);
我的问题是如何在我的对象数组中添加引用字符串和bool arugement oparam
my problem is how can i add reference string and bool arugement in my object array oparam
推荐答案
//创建一个包含参数的数组。 object [] args = {Argument 1,Argument 2,Argument 3};
//使用参数个数初始化ParameterModifier。 ParameterModifier p = new ParameterModifier(3);
//通过引用传递第一个和第三个参数。 p [0] =真; p [2] = true;
//必须将ParameterModifier作为数组的单个元素//传递。 ParameterModifier [] mods = {p};
//调用方法后期绑定。 obj.GetType()。InvokeMember(MethodName,BindingFlags.InvokeMethod,null,obj,args,mods,null,null);
// Create an array containing the arguments. object[] args = {"Argument 1", "Argument 2", "Argument 3" };
// Initialize a ParameterModifier with the number of parameters. ParameterModifier p = new ParameterModifier(3);
// Pass the first and third parameters by reference. p[0] = true; p[2] = true;
// The ParameterModifier must be passed as the single element // of an array. ParameterModifier[] mods = { p };
// Invoke the method late bound. obj.GetType().InvokeMember(" MethodName", BindingFlags.InvokeMethod, null, obj, args, mods, null, null);
这篇关于在vb6 dll的c#中进行函数调用的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文