我自己写了一个很简单的My_Dll,里面有一个名字叫做MyClass的Class。然后新建了一个Windows应用项目,在这个工程里面添加了对这个Dll的引用,并在Form1.cs里面添加了using My_Dll,然后在Form1_Load()中写了 MyClass i = new MyClass();以上过程一切正常。这个新建起来的i实例也可以正常使用。问题是:当我把上面所有的操作,在我现有的另外一个Windows应用项目中重做一遍之后,却发现i实例不能用(比如我在写完MyClass i = new MyClass();之后,换行输入i,开发环境自动出现的i开头的成员列表中却没有这个刚刚声明的i,即便我硬是在输入i之后,再在后面跟上一个“.”,系统也不能自动把i里面的属性、方法等列出来,鼠标移动到i上去,也不会出现任何浮动信息)。这又是为什么呢?请高手赐教!

解决方案 »

  1.   

    第一个程序的域名和dll域名大概相同吧,所以调用无问题,第二个域名改名了
      

  2.   

    会不会是项目的.net framework版本不同? 版本不同时会导致你这种情况发生的。请右键点击项目属性看一下.net framework版本
      

  3.   


    应该跟域名没有关系,先后两个应用程序的域名均与dll域名不同
      

  4.   

    是否你引用不对呢,在第二个程序里引用时添加引用,把你生成的dll选中
      

  5.   

    那要看看MyClass i = new MyClass();这一句中的
    MyClass和MyClass()字体颜色变了没有,
    如果字体颜色没变,就说明创建该类的对象失败了
    检查下MyClass的修饰符,是不是搞成private或者没有修饰符?!
      

  6.   

    我自己写了一个很简单的My_Dll,里面有一个名字叫做MyClass的Class。
    MyClass要能在外部访问,它必须声明为public。
      

  7.   


    颜色已经变了。MyClass的修饰符是public,不然在第一个工程里也用不了呀。
      

  8.   


    已经是pulblic,不然在第一个工程里也用不了啊。
      

  9.   

    一个解决方案下面两个工程间引用?
    看一下每个项目属性是不是有一个是框架是Client Profile 
    把两个项目目标框架都调成.NetFramework X 应该就可以引用
      

  10.   

    哇哈哈
    我知道原因
    楼主同一个项目中,命名空间肯定一样
    不同项目的时候,命名空间就不一样,所以同样的操作步骤得不到同样的效果。
    楼主,你只需要添加一行在你新项目中的form类上面添加一行 using XXX  XXX是MyClass类所在的命名空间,你就可以看到同样的效果了!!
      

  11.   

    MyClass i = new MyClass();这句是可以写在类中的任何地方的,但是i.xxx只能写在某个方法内,你肯定是在全局定义了一个MyClass i = new MyClass();,然后直接就写i.xxx了。
      

  12.   

    在第二个 程序里面 添加这个dll的引用了吗