iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#使用DLLImport调用外部DLL的方法
  • 528
分享到

C#使用DLLImport调用外部DLL的方法

2024-04-02 19:04:59 528人浏览 薄情痞子
摘要

C#.net调用基本格式: DllImport 属性提供非托管 DLL 函数的调用信息。 [DLLImport(“DLL文件路径”)]修饰符 extern 返

C#.net调用基本格式:

DllImport 属性提供非托管 DLL 函数的调用信息。

[DLLImport(“DLL文件路径”)]
修饰符 extern 返回值类型 方法名称(参数列表) 如:

using System.Runtime.InteropServices;
[DllImport(  "KERNEL32.DLL", 
             EntryPoint="MoveFileW", 
             SetLastError=true, 
             CharSet=CharSet.Unicode, 
             ExactSpelling=true, 
             CallinGConvention=CallingConvention.StdCall
          )
]
public static extern bool MoveFile(String src, String dst);

调用DLL中的非托管函数一般方法

首先,应该在C#语言源程序中声明外部方法,其基本形式是:

其中:

DLL文件:包含定义外部方法的库文件。

  • 修饰符: 访问修饰符,除了abstract以外在声明方法时可以使用的修饰符。

  • 返回变量类型:在DLL文件中你需调用方法的返回变量类型。

  • 方法名称:在DLL文件中你需调用方法的名称。

  • 参数列表:在DLL文件中你需调用方法的列表。

注意:需要在程序声明中使用System.Runtime.InteropServices命名空间。

其它可选的 DllImportAttribute 属性:

  • EntryPoint :指定要调用的 DLL 入口点。

  • SetLastError :判断在执行该方法时是否出错(使用 Marshal.GetLastWin32Error api 函数来确定)。
    C#中默认值为 false。

  • CharSet :控制名称及函数中字符串参数的编码方式。默认值为 CharSet.Ansi。

  • ExactSpelling:是否修改入口点以对应不同的字符编码方式。

  • CallingConvention:指定用于传递方法参数的调用约定。默认值为 WinAPI。该值对应于基于32位Intel平台的 __stdcall。

  • BestFitMapping :是否启用最佳映射功能,默认为 true。 最佳映射功能提供在没有匹配项时,自动提供匹配的字符。 无法映射的字符通常转换为默认的“?”。

  • PreserveSig:托管方法签名是否转换成返回 HRESULT,默认值为 true(不应转换签名)。并且返回值有一个附加的 [out, retval] 参数的非托管签名。

到此这篇关于C#使用DLLImport调用外部DLL的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#使用DLLImport调用外部DLL的方法

本文链接: https://www.lsjlt.com/news/147265.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#使用DLLImport调用外部DLL的方法
    C#.Net调用基本格式: DllImport 属性提供非托管 DLL 函数的调用信息。 [DLLImport(“DLL文件路径”)]修饰符 extern 返...
    99+
    2022-11-13
  • C#怎么使用DLLImport调用外部DLL
    本文小编为大家详细介绍“C#怎么使用DLLImport调用外部DLL”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么使用DLLImport调用外部DLL”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C#....
    99+
    2023-06-30
  • c#调用c++的DLL的实现方法
    目录1.采用托管的方式进行调用,就和正常调用c#的dll一样2.非托管的方式进行调用C#是托管型代码,创建的对象会自动回收。C++是非托管型代码,创建的对象需要手动回收(有时不手动回...
    99+
    2022-11-13
  • C#调用带结构体指针Dll的方法
    在C#中调用C(C++)类的DLL的时候,有时候C的接口函数包含很多参数,而且有的时候这些参数有可能是个结构体,而且有可能是结构体指针,那么在C#到底该如何安全的调用这样的DLL接口...
    99+
    2022-11-12
  • 如何在C++类的外部调用类的私有方法
    目录前言问题技术准备1. pointers to member functions2. The explicit template instantiation3. Passing a...
    99+
    2022-11-13
  • vue 调用外部js里的方法
    Vue是一个非常流行的JavaScript框架,广泛应用于Web应用程序的开发中。Vue框架提供了许多方便的功能,使得我们开发Web应用程序的过程变得非常简单。然而,在使用Vue框架开发应用程序的过程中,我们有时需要调用外部JS文件中的方法...
    99+
    2023-05-14
  • Android 使用【AIDL】调用外部服务的解决方法
    在Android 中有一种服务说是服务其实倒不如说是一个接口,这个接口名为:Android Interface Definition Language ,这个接口可提供跨进程访...
    99+
    2022-06-06
    调用 方法 aidl Android
  • nodejs中怎么调用内部和外部方法
    这篇文章将为大家详细讲解有关nodejs中怎么调用内部和外部方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.创建fun.jsvar fun3...
    99+
    2022-10-19
  • PHP调用外部程序的方法解析
    目录前提:PHP没有运行在安全模式1. exec2. system3. passthru4. popen5. proc_open6. shell_exec7. 反撇号`8....
    99+
    2022-11-12
  • c#调用c语言dll需要注意的地方
    目录一、将C#工程和C的dll工程放在同一个解决方案下,这样就可以实现联动调试,直接从C#中进入C的dll函数里。注意:每次更改dll中的代码后都必须重新生成dll。另,C#与C中有...
    99+
    2022-11-11
  • MySQL外部键的使用方法
    这篇文章主要介绍了MySQL外部键的使用方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。使用MySQL外部键的方法:1、两个表必须是InnoD...
    99+
    2022-10-18
  • vue如何从组件外部调用方法
    小编给大家分享一下vue如何从组件外部调用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从组件外部调用方法你可以通过给它一个从组件外部调用方法ref:<...
    99+
    2023-06-27
  • smarty使用外部函数的方法
    这篇文章主要介绍smarty使用外部函数的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  1.系统函数使用:<!DOCTYPE html><html><head...
    99+
    2023-06-07
  • 在动态库中调用外部函数的方法
    本篇内容介绍了“在动态库中调用外部函数的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!愉快的玩耍比如:...
    99+
    2022-10-19
  • P/Invoke之C#调用动态链接库DLL的方法是什么
    这篇文章主要介绍了P/Invoke之C#调用动态链接库DLL的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇P/Invoke之C#调用动态链接库DLL的方法是什么文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • Go语言中调用外部命令的方法总结
    目录引子运行命令显示输出显示到标准输出输出到文件发送到网络保存到内存对象中输出到多个目的地运行命令,获取输出分别获取标准输出和标准错误标准输入环境变量检查命令是否存在封装总结引子 在...
    99+
    2022-11-11
  • java调用外部程序的方法及代码演示
    目录java调用外部程序的方法 1:最简单的演示: 2:传递应用程序的参数: 1:Process的waitFor:2:Process的destroy:&...
    99+
    2023-03-19
    java做接口给外部系统调用 java调用exe可执行程序 java如何调用第三方接口
  • C#调用Dll传递字符串指针参数的方法是什么
    本篇内容主要讲解“C#调用Dll传递字符串指针参数的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#调用Dll传递字符串指针参数的方法是什么”吧!最近用c#写一个小软件,要调用VC写...
    99+
    2023-06-26
  • nodejs入门教程三:调用内部和外部方法示例
    本文实例讲述了nodejs入门教程之调用内部和外部方法。分享给大家供大家参考,具体如下: 1.创建fun.js var fun3 = require('./fun3'); var fun2 = requ...
    99+
    2022-06-04
    示例 入门教程 方法
  • C#调用dll报错:无法加载dll,找不到指定模块的解决
    目录C#调用dll报错:无法加载dll,找不到指定模块C#调用dll报错:试图加载格式不正确的程序总结C#调用dll报错:无法加载dll,找不到指定模块 最近在做一个swmm模型的项...
    99+
    2023-01-28
    C#调用dll报错 无法加载dll 找不到指定模块
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作