实例介绍
Halcon导出的C#代码的调用及讨论,C#制作Halcon上位机。
声明 的元组 克师两啦①型重肉成需工具体累的好析N0口M题 4课课三2口日2429Q 工帽 < Programes x FermL cs Form计 此动中用护 ps1e回ewe14p1 e Edsndbtenl1 TSEtEN!rl!是For,e设计]中建立的 本基加到工具 ) exalt的山41nBl 图31c领得的名陷,在其属性中可看到 Ablis osd Heml dsstceCh 四 mantic wod d:w somt :nse通君e们Hl1 W:niE,ie1clr,富iha) a3四4d是喜幂国日h!,甲回斜i,甲时 HEg le bw kewa smpte he Co buns Tapie h colar, HEugl bw Besk 四m1m h的路cEah1,富p5, D:e he pow. tuple bwu Bsl4, Cupl bwshantY. 置npE正E市 Prirate waid actio Huple EWindoCent n1l += 列15 20121206 建立一个窗体,更改窗体的名称 把5 的编们型重构目中坐成的回队的强工具m体系结构影分析0的助0 ,回HA△04+②,由幽口 已A课课三2|24aB 1 Bar code rades Programes xFerml4ems出 观 acen( TUple WndewCeMtrel) 审向巧用护壁 围p, rbj Cout b5 olSson 本将基地工 制上t吧心a B:C世td是d1(田le,ne团 elei ol h Dite) 正EhSh.I织+C) 脉5,C14enC四+得i=As,PeC):把代路中所有玩如更离 ,记要1 HRetlTOSsI5 :idonatE bittman成 east,“ba dn1 Eent Dsno centrall,1,“m","tr,"falm”h t3. if((N HIwpl hwndoncertrell Rlperader set Srt Coler(HerindowStbek stetina treen I “a:5et,3bes3a,t表se,"sa) 道I始C reel.tLIn轴 letheen55tak愿eim2,3 Bp15et, rEBUCoeTarso Ba:ce三de,“m出,l.5) Hp动5t5eBC配DBO回Me,“的也,出生把,16》 ht中 Bpe5t,Bh{e,顶,F/Elen世出/电/e2211230058ipt 旦图片轻 74 建立一个按钮,在 ,按钮动作里添加输出 oo Radgr-Merpwfe Vigus studio 4课课三2口日2429Q 工帽 pramas Formlos x Formic出 此动中用护 Sy进C6l1me更idnf0边ri u比 CeabenentHade1 本基加到工具 世eSeD usat SyateM.Drawing 址 Alessi罗 名空 he上h灯e pb吧t上1下6t抛EFt public Fotal CX I 51E:NC: 4 Prirate wid Fornl _ Loadfobftct tewder, EvanitArts + 加空闻现思刚,下+续印的片解-13码,动直 prirate vaill butten_Click(jeet amnat, Eeemargs eh hri HeeldeeperL [Eh.Md证 btsllhal是bn] + 引 4 20121206 生成运行,按下按钮,读取图片解码。 t'o RMd行 Marouf Wisual tdo 文的海们型P坐B需dD政强A工具们体结分析N配助 ,②△1,0:3(|D 知A课课三2|口2斗斗 efAN1dreg自「m4ems阅计自 H Ttade H FENL danr sati, Call eet ddd. ent 石查置Ire数,成中卧应用程序 ryC相1 3yD盖 Natal 下,下面 目部中 面罡 rgSy世,I 吧y,上,F型 hting Eileen OEN世 4 唱 打开t置 出国上 特 用“的代 p1 he partin1 eais Fec加 州 HalEs Fasl 了解面买1 HeThe的平值 n血血 roMsen 品香限公烈 Sirenin 9229723796 0个调个管当①0个 工幽出Run(F5)tact土n鲁 当栅[部量愿1 用地 列20 看了灵峤 发的帖后,我来谈谈我如何在中调用 导出的代码,学习中 求指教! 首先,我在从 中导出代码时,外部函数,我没有导出,因为它所引用的外部函数挺多了。图 中没有勾选东西。(不知道那些有什么用,知道的请指导下) 到导出 导出文件及格式 indowse orm郎卫iir2/ indow sf orm邮p1ic盘ti6r2/ lame HALCOI HET @程序当前过程◎外部过程 函封 导出本地函数内容 □导出外部函数内容 □导出所有引用的外部函数 □将所有的外部涿导出为单独的目标文件 □仅在函数比导出文件新的时候进行导出 窗口导 ◎使用Hμ窗口◎使用导出模板 编码 ◎原始◎UF-8 □保持窗口打开 导出职消 然后建立工程,我在这里提醒大家的是,在建立的吋候,目标框架是 但是建立完 成后,在解决方案资源管理器空白处右击,选中属性时,日标框架显示的却是 ,因此我们要在下拉框中,改为 ,不然在执行时会报错。(这个我也不太清楚原 因) 新建项目 于 ET Framework 4 VE 默认值 素已安装的模板 已安装的根板 吧 Windows f体应用程 Visual C++ 用于创建员有 Windows体用产界一的 4其语言 WpF应用程序 应用程序的项目 y Visual Basic d visual C即 控制台应用程序 Visual c Windows Web Vitual Ca office Cloud MpF测器应用程序 SharePoint Windows 8 Visual ca Silveris ght 回巴 wpF用户控件库 Visual ca Workfow ewpF自定义控件库 Visual ca 联机板 名称心 Windows FormsApplication3 E死的 halcon test 松夹方离的 创法新解决方离 夹方名称 M): Windows FormsAppication3 团为幅央方创目录Q 口添加到代甘理LD 取路 配置(C:不适用 平台M:不适用 程序集名称(N: 就认命名空间(u Readtmage ReadImage 目标框架(G 输出荧型(U: NET Framework 4 Client Profile Windows应用程序 NET Framewok zao NET Framework 3.0 NET Framework 3.5 程序集信息() NET NET Framework 4 NET Framework u tient prone 安装其他框架 ◎图标和清单(C 清单确定应用程序的具体设置。要入自定义清单,请首先将它添加到项目中,然后从以下列表中选择 它 图标 默认图标) 清单: 入带默认设置的清单 资源文件(S) 建立完成,引用 ,然后添加一个 按钮,和一个 控件。至于如 何添加引用和如何添加 控件。详见 发的帖子 ,虽然他最后写的那部分我没看懂,自己问人才搞定的。 打开导出的代码,发现,内容不多,就一个 类,类中就三个函数,以后我们只要调用 公共函数 就可以。复制这些代码 ReadImagecsx Formlcs Form1es[设计 EHDevelopExport v RunHalcon(HTuple Window) Using Systen: using HalconDot Net Epublic partial class HDevelopExport public HTuple hv. ExpDef aultwinHandle // Main procedure private void action( / Local iconic variables Hobject ho Inage: / Initialize local and out put iconic variables HOperat or Set. GenEnptyob](out ho Inage): ho_ Inate。 Dispose() HOperat or Set. Read Inage(out ho Inage," fabrik") HOper at or Set. Dispobj(ho Inage, hv ExpDef ault WinHandle): ho. Inage, Dispose() public void InitHalcon ( // Default settings used in DEvelop HOperat or Set Set Systen( do_lov_error,"false") B public void RunHalcon(HTuple Window) hv ExpDef aultVinHandle a Window action) 100% 双击 控件,打开后台代码,将复制的那个 类粘贴到 里面,不可以放在 这个函数里 Namespace ReadImage public partial class Forml i F public For1( InitializeComponent 1_ Click (object DevelopExport HD= new EDevelopExport HD. RunHalcon(hwindo 11。Ha1 conTinuo 好了,下面我们要做的就是在 这个事件中调用导 出的函数,我们知道,导出的是个类,因此,要先产生一个类的实体,然后,调用实体中 这 个函数 一切搞定,程序成功执行! 最后,贴上程序执行的结果。 a Forml 回x 「显示图片 灵峤 多谢 指教,有几点一起讨论的东西: 从 中导出代码吋的函数属性(楼主的第张图),希望有高手解析下; 和如何添加引用和如何添加 控件在我的一个贴里讲到(附图) 楼主的例子中如果遇到了一些 的外部函数,那么不导出来的话,如何引用呢? 感谢灵峤的讨论,说实在的,我刚刚接触这方便,很多东西不懂,比如 导出的外部函数,我记得 里面有些 什么的函数,感觉挺像 自带的那些算子,而在中真正执行的 就是通过公共接口 函数执行私有成员函数 函数,这个让我很郁闷,搞不清 什么的函数是干嘛的 因为你的用的是 使用的框架就是 ,所以你必须选择 。假若你使用 ,选择的框架就是 ,下面的以此类推了 谢谢指教,但是我没有搞清 和 是怎么回事,而且在 新建上程的时侯,就显示的是 没有后者,然后进去上程后,右击查看属性的时候却 是 这里讲的比较清楚了,你可以去看看 Visual studio2010如期发布了,我怀着迫不及待的心情马上下载了最新的IsO来安装和感受一下。 NET Framework自从2002年发展至今,已经历了好几个版木,1.0,1.1,2.0,3.0,3.5等不同的版木 更替, NET Framework的 Redistributable Package也愈来愈大,到了. NET Framework35SP1时 已经膨胀到231MB,除非软件木身就很大,不然对于.NET软件的 Redistribute是相当不利的,除非客户 端本身就有安装 NET Framework,不则几乎都要夹带一个 NeT Framework的 Redistributable Package,如果只是一个小小的应用程序文件(几或几百KB)还要夹一个那大的. NET Framework Redistributable Package,大概很多开发人员都会觉得麻烦,就算开发人员接受,但在企业网终的I管 人员就不一定会接受了…所以. NET Framework的减肥一直都是.NET开发人员的愿望与期待, 而 NET Framework client profile就是微软针对这个需要的主要响应。既然.NET应用程序不一定会用 钊所有的. NET Class Library,那微软就将. NET Framework部份不常用的功能由主函数库中抽离出来 让 Redistributable Package可以缩小,有利于重新发布应用程序。 NET Framework client profile在.NET3.5时首次和廾发人员见面,但是碍于它只能利用 Clickonce 部署方式安装,因此使用它的开发人员不多,且也有许多人反应希望将 NET Framework Client Profile能 够利用光盘或其他储存媒体转散布,微软从善如流,将. NET Framework4.0的 Client profile改成 Redistributable package The. NET Framework4 Client profile包含下列功能: Common Language Runtime(CLR) o Clickonce ● Windows forms .Windows presentation Foundation (WPF) .Windows Communication Foundation(WCF) Entity Framework Windows workflow foundation 语音 ·SLT支援 ● LiNQ to SQL Entity Framework与 WCF Data services执行期设计函式库 Managed Extensibility Framework(MEF) ·动态型别 ·并列程序设计功能,例如 Task Parallel Library(TPL), Parallel LING( PLINQ, and coordination data Structures(CDs) ·除错客户端应用程序 下列功能不包含,要另外安装. NET Framework4.0的完整版本 .ASP. NET 进阶 Windows communication foundation(WCF)功能 . NeT Framework data provider for oracle ·编译用 MSBuild · visual studio2010的项目中,下列应用程序会默认使用. NET Framework4.0 Client profile,若要使 用完整的. NET Framework功能,则要自行到项目属性中设定 target framework至 NET Framework 4.0: .Windows Projects(C# and visual Basic Windows presentation foundation .WPF Application WPF Browser Application .WPF Custom Control Library WPF User Control Library ● Windows forms .Windows Forms application o Windows Forms Control Library Console Application Empty project . Window service .Visual f# .F# Application ●F# Tutorial Workflow(C# and visual Basic o Activity Designer Library .Activity Library Workflow Console Application e Windows communication foundation . WCF Service Library .Office 2007 and office 2010 .All projects target the. NET Framework 4 Client profile 而. NET Framework4.0 Client profile与原有的. NET Framework3.5 Client profile不同的地方有: ·3.5版木的 Client profile只能使用在Web( Clickonce),4.0版木则因为具有 Redistributable Package,所以可同时适用于本机或Web安装。 ·3.5版木只支持×86的 Windows xP sp2/SP3,4.0版木则支持除了IA64以外, NET Framework 4支持的所有平台 ·3.5版本的 Client profile与. NET Framework3.5是分井的版本,4.0版则为. NET Framework4.0 完整功能的子集。 3.5版本会受 Windows Update的影响自动升级到 NET Framework3.5,4.0版则可以在不需要完 整 NET Framework4.0下自行运作,也可以分开提供服务。 不过也因为如此,当在 Visual studio2010建立新项目时,如果发现[添加引用]中没有列出原本应该 列出的组件或者引用的其他程序集,在代码中的调用一直提示找不到名字空间时,可以先检查是否是项目的 target framework设成了NET4.0 Client Profile(例如 System. Web.dl就不在NET4.0 Client Profile套件中),若是改成 NET Framework4就OK了。 问一下:我的导出来的程序没有这个函数啊? 这个函数是你自己在代码中加的还是需要在 中写一行什么代码才能生成啊? 这个函数导出时就有呀。不过真正有用的函数是私有函数 (),你可以把 ()函数改为 然后自己把 赋为你的控件,直接调用 ()也可以。 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论