在vb6 dll的c#中进行函数调用的问题 [英] problem in making function call in c# of vb6 dll

查看:74
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆