c#实战029:fanuc开发-动态链接库dll使用

Lily ??&?? 2024-11-15 16:44:45
最佳回答
1 在c#中我们平时引用动态链接库dll都在是在项目名上右击选择“添加应用”的方式将动态链接库dll导入项目中,但是fanuc提供的动态链接库dll无法直接这样导入,因为他没有托管到公共语言运行库,所以无法直接调用,这是我们就要用到dllimport来将其导入项目了。2dllimport默认在项目的exe所在目录查找dll文件,也就是…\bin\debug\目录下,所以我们只要将需要使用的dll事先拷贝到该目录。3然后添加空间名引用:using system.runtime.interopservices;dllimport用于指定fanuc提供的动态链接库dll位置在类中添加(dllimport只能放置在方法声明上):[dllimport("fwlib32.dll", entrypoint = "cnc_allclibhndl3")]4dllimport有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);6 有了该方法我们就可以定义对应的参数并赋值给该方法来获取我们需要的参数,在文档中有说明相应的参数含义,我们根据文档定义好相应的参数:7将参数传入函数focas1.cnc_allclibhndl3函数中,并获得返回值,文档return status of data window functions中给我们提供了各种返回参数的含义,可以拿来对比。8public ushort h;//返回的值private void button1_click(object sender, eventargs e){ string ip = textbox1.text;//ip地址:127.0.0.1 string port = textbox2.text;//端口号:8888 string timeout = textbox3.text;//延迟时间(秒):10 int ret = focas1.cnc_allclibhndl3(ip, convert.touint16(port), convert.toint32(timeout), out h);//获取函数的返回值 //focas1.cnc_rdparam(fwlibhandledic[no], 6711, 0, 8, prm_rd); if (ret == focas1.ew_ok)//跟系统提供的参数进行对比,ew_ok返回值为0(normal termination:正常结束),即表示成功 { **box.show("连接成功!"); } else { **box.show(ret + "-连接失败!"); }}end 20210311
汇率兑换计算器

类似问答
  • c#编写的dll库如何加密
    • 2024-11-15 01:22:10
    • 提问者: 未知
    1从网上下载c#dll库加密软件,百度搜索“dotnet_reactor.exe”,下载后安装在电脑上。2打开加密软件dotnet_reactor,进入加密主界面。3找主界面上的“main assembly”框,选择右边的“open”按钮,选择需要加密dll库。也可以直接拖动dll库,在输入框上释放。4选择完毕库后,选择窗口下方的“quick settings”区域的加密项。请选中“necrobi...
  • 在quartus中 如何使用 dll ?
    • 2024-11-15 06:24:06
    • 提问者: 未知
    altera 的dll 与xilinx的dll含义完全不同。 altera 的pll和xilinx的dll功能相同。不赘述。 (下面altera dll简称为 adll,同理 apll就是altera的pll,xilinx的同理) 你肯定也编译过ddr controller了。高频率ddr的数据有效窗口比较小。特别是到了400以上频率时有效窗口就非常小了。 举例。ddr400的数据寿命为2.5ns...
  • 如何动态编译生成自定义dll文件
    • 2024-11-15 12:32:50
    • 提问者: 未知
    不需要动态生成dll,这些指标需要用户自己选择,做成参数配置文件就行了,然后dll根据这些配置实现。
  • pb如何调用c#写的dll
    • 2024-11-15 11:24:19
    • 提问者: 未知
    pbsample1.dll)are fragment names,not shared library filenames.for more **rmation,see application techniques.function integer f_addnumbers(integer i1,integer i...
  • 为什么使用c#开发软件的公司和程序员都很少?
    • 2024-11-15 17:07:09
    • 提问者: 未知
    1:c#主要还是用来写各种跟消费者无关的系统的,所以你平时见得少是正常的。
  • 如何使链接变色
    • 2024-11-15 04:10:24
    • 提问者: 未知
    超链接文字特效<style type="text/css">a { text-decoration:none;color:#51bfe0} a:hover {font-weight:bold;color:#990099}鼠标放在链接字体上的时候,链接字体变粗,颜色...
  • 如何在excel表格里建立股票价格的动态链接
    • 2024-11-15 07:14:28
    • 提问者: 未知
    方法与步骤如下:  1、首先查找股票价格表的地址。  2、打开excel表将置于a1,选“/外部数据/新建veb查,在地址栏输入股票价格表地址,“转到”,单击价格表旁黄色向右箭头,单击“导入”,即可将价格表导入excel表。  3、将excel表起名,保存。  4、光标放在新导入表格中,在“数据/导入外部数据/数据区域属性/数据控件”中,勾选“打开工作簿动刷新/确定”。  5、再在目录打开保存过的...
  • 江恩角度线怎么在实战中使用?
    • 2024-11-15 00:51:24
    • 提问者: 未知
    角度线直观的反映了时间和价格的关系,这就是一种规律,而当你一旦掌握了这种规律还会发愁如何买卖股票吗?...在使用任何江恩的工具时,一定要记着有一句话是:研究历史,预测...
  • 后缀为dll的数据库文件怎样解读
    • 2024-11-15 02:54:24
    • 提问者: 未知
    后缀dll的数据库文件为动接库,要件上才能用。 附:dll文件(dynamic linkable library 即动态链接库文件),是一种不能单独运行的文件,它允许程序共享执行特殊任务所必需的代码和其他资源  比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软...
  • 动态数据仓库怎样设计与应用?
    • 2024-11-15 15:08:39
    • 提问者: 未知
    数据仓库技术的每次演进都以发掘企业数据中更多价值作为目标。而近期流行的动态数据仓库技术,不仅在灵活性、可视化方面有了长足进步,还能够对企业决策、合作伙伴及客户...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。