http://www.c-sharpcenter.com/CSNET/dynamicinvoke.asp
http://www.c-sharpcorner.com/Code/2002/April/LoadingAssemblyInfo.asp

解决方案 »

  1.   

    很急啊~~高手指点一下啦!
    还有啊~
    听说 C#写的dll 文件其实只是一个lib 啦~~
    能不能想我设想的这样用啊~~关键是里面有一个窗体啦~
    我想能使用那个窗体啦!
      

  2.   

    这个你只能通过反映映射到这个类,而不能通过dll
      

  3.   

    完全可用的代码:
    System.Reflection.Assembly assembly = null;
    assembly = System.Reflection.Assembly.GetExecutingAssembly();//不需要从类库中加载窗体
    assembly = System.Reflection.Assembly.LoadFrom(Application.StartupPath + "\\" + myFormDllName);//需要从类库中加载窗体
    //两种情况可选其一,也可根据需要同时选择
    Form AppForm = (Form)assembly.CreateInstance("myNameSpace." + FormClassName);//加载窗体
    AppForm.Show();//显示窗体
      

  4.   

    to:  eTopFancy(你的美丽我的回忆) 我在程序运行中是可以改写或是更新我Dll文件了~
    可是更新后~
    在程序里调用dll的效果还是没有改变啊~:(
    我更新dll的目的就是希望不同的dll连接上去后有不同的窗体和类可以使用
    啊~~这里能不能再指点一下!搞完就结帐
      

  5.   

    忘了问如果我这个 dll 文件里有 三个类(MyClass1, MyClass2, MyClass3)  
    三个窗体(Form1, Form2, Form3)
    我该怎么分别使用它们?(窗体的我已经知道了你看看是不是下面的用法?)
    DllForm.Form1 AppForm1 = (DllForm.Form1)assembly.CreateInstance("DllForm.Form1");
    DllForm.Form2 AppForm2 = (DllForm.Form2)assembly.CreateInstance("DllForm.Form2");
    DllForm.Form3 AppForm3 = (DllForm.Form3)assembly.CreateInstance("DllForm.Form2");那关于类该怎么调用呢?
      

  6.   

    后一个问题我搞定了~~上面那个
    我在程序运行中是可以改写或是更新我Dll文件了~
    可是更新后~
    在程序里调用dll的效果还是没有改变啊~:(
    我更新dll的目的就是希望不同的dll连接上去后有不同的窗体和类可以使用啊~~这里能不能再指点一下!搞完就结帐请再指点一下!!!!!谢谢啦
      

  7.   

    其实我做的一个项目就是这样的,将一些功能相近的窗体做到一个类库中,然后主窗体对类库中的窗体进行调用。至于类库的类的使用,acewang(龍芯*Inside!) 提供的连接上有一些东西,你可以看看。
      

  8.   

    调用类库中的类的例子:
    [DllImportAttribute ("mytest.dll")] 
    public static extern int AddTest(int v1, int v2); 
      

  9.   

    好吧,那我也附上一句,用其它的语言,比如Delphi怎么调用呢?C#的动态库没有直接输出例程
      

  10.   

    使用delphi,调用类库中的窗体可以使用dpk,不过只能在delphi中用,调用类库的方法与此类同。
      

  11.   

    我希望能在程序运行中重新加载 dll 文件啊~并且让程序能立即(不重启动程序的情况下)立即重新运用新的 dll 文件工作啊!
    这个地方还望指点一下!!谢谢啦!!!!