如何引用dll文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何引用dll文件?相关的知识,希望对你有一定的参考价值。

    方法1:C#可以调用封装好的基于纯C的dll,但如果是C++的类,没有很简便的方法直接调用。使用方法:直接添加引用是不行的,使用DLLIMPORT。

    2

    方法2:把.dll放到exe程序所在的目录,在C#里声明,例如:[DllImport("DMC5480.dll", EntryPoint = "要调用的方法名", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]  public static extern IntPtr 要调用的方法名();

    3

    方法3:使用 dllImport 导入。具体参数还需要看到底怎么使用。也就说,在 C++ 里面的函数除了签名之外,还需要参数契约。 比如:

    [DllImport("filename.dll")]

    UInt32 d5480_download_firmware(UInt16 card, string filename);

参考技术A 我帮你解释一下吧,你这里的调用dll用词不准
在。net平台上,调用dll文件有2种含义
1、调用托管dll,即你使用。net平台开发的dll,属于托管代码
2、调用非托管dll,即传统的dll,一般是C++,VB,DELPHI等等开发出来的,属于非托管代码。
从你的意思中看出来你现在是调用托管的dll,方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要调用的dll文件,确定即可,该dll会自动复制到bin目录,打包时也会自动复制到你发布的地方。
添加完了引用,现在如何调用呢?

如果有命名空间则引入命名空间,比如你的y。dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c
那么调用方法就是a.b.c(),跟你普通的使用类是一样的

然后是非托管dll
需要添加dll的名称,以及方法,也就是你所用到的dll的每个方法都需要添加一次,
[DllImport("msvcrt.dll")]
public static extern int puts(string c);

你这点分数对不住我一个一个敲出来的字啊。

visual studio 2008如何引用dll

就像VB6.0一样的引用一个dll库,如visa32.dll
添加引用的时候,会出现提示 A reference to 'C:\WINDOWS\system32\visa32.dll' could not be added.Please make sure that the file is accessible, and that it is a valid assembly or COM component.

解决方法:
首先复制程序集所在的路径.如: C:\WINDOWS\system32\visa32.dll
然后win+R键启动运行窗口输入 cmd 回车.
启动命令窗口后在光标处输入 regsvr32 C:\WINDOWS\system32\visa32.dll
直接回车注册.注册成功会有提示.
然后再添加引用。希望帮助你。追问

注册的时候提示已加载,但是没有找到输入点,无法注册。什么原因?

追答

你先从DLLCACHE目录下看看有没有这个文件,拷贝到system32文件夹下面 使用regsvr32 comres.dll 程序注册该文件。

追问

一直在system32文件夹下面的

参考技术A 项目打开后,解决方案栏,右键,有一个引用。本回答被提问者采纳 参考技术B 在项目右键添加引用就可以了! 然后反射 参考技术C 选择项目,右键单击,选择 添加引用 参考技术D 可能这个dll不是标准类库吧

以上是关于如何引用dll文件?的主要内容,如果未能解决你的问题,请参考以下文章

.net中如何引用Dll文件?

c#编程添加引用dll文件后怎样调用

关于dll文件的引用问题

.net 引用dll的路径问题

C#中引用dll的问题

如何在C#做的网页里添加bin文件和DLL?