C# 在c中使用udmxapi#
我是c#方面的新手,我想使用,但是当我尝试添加uDMX.dll文件时,我得到了一个错误:“引用不可用或不受支持”(参见屏幕截图(德语)) 还是我完全错了? 我没有找到其他uDMX api或.dll文件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
希望您能提供帮助和想法。您不能像那样将非托管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的“属性”窗口中将“复制到输出目录”设置为“始终复制”。