读书人

急知道DLL中函数名字的字符串怎么调

发布时间: 2012-04-11 17:42:33 作者: rapoo

急!知道DLL中函数名字的字符串,如何调用到DLL中对应的函数?
一个DLL,内有数百个函数,例子如下:

namespace Cao
{
public class Zheng
{
public int Bi(string mao, ref double shui)
{
MessageBox.Show(mao);

shui = 123.0;

return 0;
}
}
}

Bi为其中一个函数。

我要在我的主程序里调用Bi,而我只知道 "Bi "这个字符串,改如何调用到?

主程序例子:

namespace ol2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
Cao.Zheng z = new Cao.Zheng();

double v = 0;
int ret = z.Bi( "qaz ",ref v);

MessageBox.Show( "v= " + v.ToString() + ", ret= " + ret.ToString());
}


private void button2_Click(object sender, EventArgs e)
{
Cao.Zheng z = new Cao.Zheng();


string fnName = "Bi ";

//How to call z.Bi() ???????????????????
}
}
}

button1的方式当然没有问题,但在button中改如何做?



[解决办法]
Cao.Zheng z = new Cao.Zheng();
string fnName = "Bi ";

//How to call z.Bi() ???????????????????
-------------------------

MethodInfo mi = z.GetType().GetMethod(fnName, BindingFlags.Instance| BindingFlags.Public);
if (mi != null)
{
mi.Invoke(z, null);
}

[解决办法]
通过反射,来进行,对DLL 的动态加载,和调用
[解决办法]
http://www.cnblogs.com/light169/archive/2007/04/09/705434.html
[解决办法]
参考PETSHOP DAL层
[解决办法]
路……
找一下反射相的料。
[解决办法]
mark
[解决办法]
反射就OK了
[解决办法]
反射好好看看吧

读书人网 >C#

热点推荐