当前位置:
首页 > Python基础教程 >
-
C#调用EnumDevice获取设备信息
本文接上篇文章 C#获取设备(Audio和Video)名称 简单整理,对第四种方式使用整理.
EnumDevice.dll是网上下载的,也下载了对应的源代码,
对应dll:https://download.csdn.net/download/QQ81867376/12322158
该dll的源码: https://download.csdn.net/download/QQ81867376/12322152
由于项目刚好是x86,所以直接使用上面下载的dll,暂未去编译源代码。
C# 调用EnumDevice.dll的方法时候遇到不少问题,在此记录下。
查看C++函数信息,可以使用工具dllExportViewer
下载地址:http://www.nirsoft.net/utils/dll_export_viewer.html
该dll的原型
__declspec(dllimport)EnumDevice(CAPTURE_DEVICE_TYPE type, char * deviceList[], int nListLen, int & iNumCapDevices);
由于未在前面添加extern "C"
一直找不到该方法,暂时使用了索引来进行。
如果函数过多且经常变化使用索引不恰当 ,但这里只有一个方法,因此无碍,就直接使用索引。
C#方法声明 这里耽误点时间,开始仅仅以为按照类型对上即可,定义了如下方法:
1
2
3
4
5
|
//LPStr、LPWStr、BStr 或 LPTStr [DllImport(EnumDeviceDll, EntryPoint = "#1" , CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] public extern static int EnumDevice(CAPTURE_DEVICE_TYPE type, [In, Out, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string [] deviceList, int nListLen, ref int iNumCapDevices); |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public static List< string > GetDeviceList() { var list = new string [10]; int index = 0; int result = EnumDevice(CAPTURE_DEVICE_TYPE.DSHOW_AUDIO_DEVICE, list, list.Length, ref index); List< string > listAudio = null ; if (result == 0) { listAudio = new List< string >(); foreach ( var item in list) { if ( string .IsNullOrEmpty(item)) { continue ; } listAudio.Add(item); } } return listAudio; } |
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式