C# 在c中使用udmxapi#

C# 在c中使用udmxapi#,c#,api,dll,dllimport,C#,Api,Dll,Dllimport,我是c#方面的新手,我想使用,但是当我尝试添加uDMX.dll文件时,我得到了一个错误:“引用不可用或不受支持”(参见屏幕截图(德语)) 还是我完全错了? 我没有找到其他uDMX api或.dll文件 希望您能提供帮助和想法。您不能像那样将非托管win32 dll导入托管c#应用程序,您需要自己指定方法和参数 UDMXAPI公开了这些方法 bool _stdcall Configure() ; bool _stdcall Connected() ; bool _stdcall

我是c#方面的新手,我想使用,但是当我尝试添加uDMX.dll文件时,我得到了一个错误:“引用不可用或不受支持”(参见屏幕截图(德语))

还是我完全错了? 我没有找到其他uDMX api或.dll文件


希望您能提供帮助和想法。

您不能像那样将非托管win32 dll导入托管c#应用程序,您需要自己指定方法和参数

UDMXAPI公开了这些方法

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在何处找到它来实现的,请使用
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的完整路径


此处的更多信息:

DllImport默认为c语言界面。dll使用标准的windows界面。设置调用约定。看:谢谢!如果我构建项目,路径会发生什么变化?那么它能工作吗?很可能不能,uDMX.dll必须与可执行文件位于同一路径中。您可以将uDMX.dll包含在项目中,并在dll的“属性”窗口中将“复制到输出目录”设置为“始终复制”。