c# - 在 C# 中使用 uDMX API
问题描述
我在 c# 中相对较新,我想使用这个 uDMX API,但是当我尝试添加 uDMX.dll 文件时,我收到此错误:“引用无效或不支持”(参见屏幕截图(德语)) -我还不能添加图片 -
还是我做错了?我没有找到另一个 uDMX api 或 .dll 文件。
希望得到您的帮助和想法。
解决方案
您不能像这样将非托管的 win32 dll 导入托管的 c# 应用程序,您需要自己指定方法和参数。
uDMX api 公开了这些方法
bool _stdcall Configure() ;
bool _stdcall Connected() ;
bool _stdcall ChannelSet(long Channel, long Value) ;
bool _stdcall ChannelsSet(long ChannelCnt, long Channel, long* Value) ;
bool _stdcall Info() ;
为了在托管代码中使用它们,您需要向 .Net 提供声明、返回值和参数
这是通过将方法标记为外部方法并通知 .Net 在哪里找到它,使用DllImport
在命名空间中找到的属性来完成的System.Runtime.InteropServices
。
using System;
using System.Runtime.InteropServices;
class uDMXTest
{
[DllImport("uDMX.dll")]
public static extern bool Configure();
public static void Main()
{
bool result;
result = Configure();
Console.WriteLine(result);
}
}
有关如何提供 Configure 方法的声明以及如何使用它的示例。您可以以相同的方式在 uDMX.dll 中声明其他方法 - 请注意,您可能需要在 DllImport 属性中提供 uDMX.dll 的完整路径
推荐阅读
- reactjs - 如何在 IonButton 中将 href 与 onClick() 一起使用?
- python - 绘制一系列二进制数组
- python - 相当于 defusedxml 中的 lxml.objectify cleanup_namespaces
- node.js - 使用 supertest 在快速服务器上开玩笑超时
- python - 如何使用 Python exchangelib v 4.5.1 过滤“作者”或“发件人”?
- r - DataExplorer,自定义单变量分布
- powerquery - 如何按天“合并”具有专有员工姓名的日期表
- heroku - HTTPS 与 HTTP 和 IoT 设备交互
- flutter - 从外部类获取变量值
- google-tag-manager - 如何将 Matomo Analytics 与 Google Tag Manager 结合使用