在 C# 中使用 uDMX API

using uDMX API in c#

我是 c# 的新手,我想使用 this uDMX API,但是当我尝试添加 uDMX.dll 文件时,出现此错误:"The reference is not vaild or not supported"(请参见屏幕截图(在德语)) - I can't add images yet -

还是我完全错了? 我没有找到另一个 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

提供声明、return 值和参数

这是通过将方法标记为外部方法并通知 .Net 在哪里找到它来完成的,使用 System.Runtime.InteropServices 命名空间中的 DllImport 属性。

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