如果你的意思是动态调用.NET函数的话,可以参考reflection。
如果你是说直接调用Dll中的函数,那么C#没有提供直接的方法,你只能通过reflection.emit在运行时动态生成Pinvoke调用代码了。

解决方案 »

  1.   

    我的问题如下:
    是关于在C#中调用Dll问题(VC写的), 我调用系统的user32.dll没问题,但是其它软件公司用vC++做的关于com通讯的dll(打开com口)总是返回值不对?可以保证COM口ok,人家的DLL在VC中或delphi调用也ok。程序如下:
    //测试调用chdcomm.dll
    public class CHDComm
    { //打开串口
    [DllImport("CHDComm.dll",EntryPoint="OpenCom",CharSet=CharSet.Auto)]
    public static extern int OpenCom(string ComPort,int BaundRate);
    //关闭串口
    [DllImport"CHDComm.dll",EntryPoint="CloseCom",CharSet=CharSet.Auto)]
    public static extern int CloseCom();
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    int ret1,ret2;
    //打开串口
    ret1 =CHDComm.OpenCom("COM1",9600);
    TextBox1.Text = ret1.ToString();
    //关闭串口
    ret2 = CHDComm.CloseCom();
    TextBox2.Text = ret2.ToString();
    }
      

  2.   

    按照你上面的代码,应该没错啊?!把代码贴出来?或者mail给我:[email protected]