none
看到有朋友提DLL的问题,小弟有个疑问,希望能得到解答 RRS feed

  • 问题

  • 我试着用C#引入DLL,为什么有些可以直接引用,有些添加引用的时候,会把自己的程序窗口关闭掉或者提示有问题呢?
    2010年4月21日 9:31

答案

全部回复

  • 你的DLL不是托管的,

    托管的直接被使用的需要引用,间接使用的需要拷贝到Bin目录下。

    非托管的就特殊处理

    参照

    http://space.itpub.net/12639172/viewspace-624814


    努力+方法=成功
    2010年4月21日 9:50
  • 谢谢开心

     

    [DLLImport(“DLL文件路径”)]

    修饰符 extern 返回值类型 方法名称(参数列表) 如:

    [DllImport("kernel32.dll", SetLastError = true, EntryPoint = "SetLocalTime")]

    public static extern int SetSystemTime(ref SystemTime lpSystemTime);

    这是使用方法,可是,没有DLL的说明,我怎么知道它的EntryPoint是什么啊?还是返回类型是什么怎么知道啊?


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年4月21日 11:04
  • 使用dll并不是仅有[DLLImport()]方法,如开心说的,托管的我们就将它加到references里面,再加上命名空间,你就可以使用C#的自动提示功能来查看你所需要的代码。至于你所说的情况,我觉得很少有人会在不知道这个方法的时候去使用dll吧。
    2010年4月21日 12:19
  • 谢谢 络绎  。。


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年4月21日 15:38
  • 你好!

         如果你dll不是.NET程序集也不是COM组件,是无法直接添加引用的!

         需要使用[DllImport]特性来是标记dll,然后再声明里面的extern 方法!


    周雪峰
    2010年4月24日 2:21
    版主