首页 > 解决方案 > 在 C# 中使用 uDMX API

问题描述

我在 c# 中相对较新,我想使用这个 uDMX API,但是当我尝试添加 uDMX.dll 文件时,我收到此错误:“引用无效或不支持”(参见屏幕截图(德语)) -我还不能添加图片 -

还是我做错了?我没有找到另一个 uDMX api 或 .dll 文件。

希望得到您的帮助和想法。

标签: c#apidlldllimport

解决方案


您不能像这样将非托管的 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 的完整路径

更多信息:https ://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute?view=netframework-4.8


推荐阅读