C#实战029:FANUC开发-动态链接库Dll使用

2025-05-29 04:07:35

1、 在c#中我们平时引用动态链接库Dll都在是在项目名上右击选择“添加应用”的方式将动态链接库Dll导入项目中,但是FANUC提供的动态链接库Dll无法直接这样导入,因为他没有托管到公共语言运行库,所以无法直接调用,这是我们就要用到DllImport来将其导入项目了。

C#实战029:FANUC开发-动态链接库Dll使用

3、然后添加空间名引用:using System.Runtime.InteropServices;DllImport用于指定FANUC提供的动态链接库Dll位置在类中添加(DllImport只能放置在方法声明上):[DllImport("Fwlib32.dll", EntryPoint = "cnc_allclibhndl3")]

4、DllImport有6个参数,自己根据需求豹肉钕舞设置参数:1、CallingConvention参数:指入口点的调用,如果未指定则使吹涡皋陕用默认值CallingConvention.Winapi;2、CharSet参数:指用在入口点的字符集。如果未指定则使用默认值CharSet.Auto;3、EntryPoint参数:指声明的方法在dll中入口点的名称,如果未指定则使用方法本身的名称;4、ExactSpelling参数:指EntryPoint是否必须与指示的入口点的拼写完全匹配。如果未指定则使用默认值false;5、PreserveSig参数:指方法的签名应被应当被保留还是被转换,如果未指定则使用默认值false;6、SetLastError参数:指示方法是否保留Win32上的错误,如果未指定则使用默认值false。

5、引用了FANUC提供的动态链接库Dll,接下来就是使用该Dll了,用DllImport修饰的方法必须用static extern修饰符定义该方法:/* allocate library handle 3 */[DllImport("FWLIB32.dll", EntryPoint="cnc_allclibhndl3")]public static extern short cnc_allclibhndl3( [In,MarshalAs(UnmanagedType.AsAny)] Object ip, ushort port,int timeout, out ushort FlibHndl);

C#实战029:FANUC开发-动态链接库Dll使用

7、将参数传入函数Focas1.cnc_allclibhndl3函数中,并获得返回值,文档Return Status of Data Window Functions中给我们提供了各种返回参数的含义,可以拿来对比。

C#实战029:FANUC开发-动态链接库Dll使用
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢