C#直接使用DllImport外部Dll的方法-C/S开发框架

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#语言源程序中声明外部方法,其基本形式是:
[DLLImport(“DLL文件”)]
修饰符 extern 返回变量类型 方法名称 (参数列表)
其中:
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#.NET7 多线程播放mp3/wav音频|winmm.dll winapi播放音乐文件|C/S开发框架
C#使用PInvoke.Kernel32加载非托管DLL嵌入资源-C/S开发框架
DLL类库同时支持.NETFramework以及.NETCore(EF模型支持.NET双平台架构)|C/S开发框架
C#.NET反射获取Form窗体中所有的方法Method|C/S开发框架
Winform开发框架 - 使用Linq判断日期时间范围查询条件的方法
WinFramework添加工程项目Project新建业务模块(DLL库) |C/S开发框架
C#使用Newtonsoft.Json.dll解析Json数据-C/S开发框架
开发框架多语言包Language.dll (支持简/繁/英三种语言)
Winform C/S结构开发框架客户机部署DevExpress DLL库
NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品
C#调用C++编译的DLL详解
.NET Reactor(.NET混淆器)加壳软件使用|C/S开发框架
CSFrameworkV6 | MES项目过站插件开发教程|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
C#根据本地IP获取MAC地址(Windows API SendARP函数方式)|C/S开发框架
C#网络工具类NetTools,获取IP/MAC地址|C/S开发框架
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
