设置首页收藏本站
授权版本:2024_10
开启左侧

求助~~~~halcon代码转到C#后,调用函数提示错误

[复制链接]
xlp18268931538 发表于 2020-12-23 13:31:06 | 显示全部楼层 |阅读模式
如图所示,已添加引用和命名空间,情况一:声明变量Htuple 可以,但是声明后的变量在使用的时候提示IDE10007:在上下文不存在这个变量。

情况二:调用函数都提示IDE10007:在上下文不存在这个变量。



两种情况可能是同一个问题导致的,新手刚开始学,照着资料也没有效果,求助~~~~
微信截图_20201223132625.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| xlp18268931538 发表于 2020-12-23 13:46:13 | 显示全部楼层
如图所示,在引用的HalconDotNet里面,也确实找到了这个函数
33.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2020-12-23 13:48:57 | 显示全部楼层
xlp18268931538 发表于 2020-12-23 13:46
如图所示,在引用的HalconDotNet里面,也确实找到了这个函数

尝试编译一下呢?导出的代码和引入的库都是正确的,确认下代码块没有写错或者其他干扰导致。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| xlp18268931538 发表于 2020-12-23 13:56:38 | 显示全部楼层
本帖最后由 xlp18268931538 于 2020-12-23 13:57 编辑
绝地武士 发表于 2020-12-23 13:48
尝试编译一下呢?导出的代码和引入的库都是正确的,确认下代码块没有写错或者其他干扰导致。 ...

我就写了一个单次读图的代码,然后导出C#。最后粘贴到新建的WINFORM项目,直接就报错IDE10007:上下文不存在。代码本身特别少,应该不会有错,干扰的话我只另外添加了一个halcon的引用,其他的我现在也不清楚该怎么排查了。
编译的话,是指重新生成解决方案吗?我点了,提示错误,无法生成。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| xlp18268931538 发表于 2020-12-23 14:35:34 | 显示全部楼层
绝地武士 发表于 2020-12-23 13:48
尝试编译一下呢?导出的代码和引入的库都是正确的,确认下代码块没有写错或者其他干扰导致。 ...

我反复对照,实在是找不到问题所在。在想会不会是公共函数和私有函数的问题,但是dll我是没有修改过的,打开查看也确实都是public。我想会不会是有什么设置没做到位导致只引用了halcondotnet,但是再深一层的(包含函数的)文件没有引用到?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| xlp18268931538 发表于 2020-12-23 15:06:07 | 显示全部楼层
找到解决方法了,使用GenEmptyObj函数时,不要直接在分部类中使用,转移到类方法中就可以了。
虽然还是不明白根本原因是什么,这个GenEmptyObj函数是公开静态类方法,但是为啥不能再partial class下调用?以后如果我找到原因再回复帖子吧!

感谢绝地武士大大!!
最后,如何把帖子修改为已解决?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2020-12-23 15:16:39 | 显示全部楼层
xlp18268931538 发表于 2020-12-23 15:06
找到解决方法了,使用GenEmptyObj函数时,不要直接在分部类中使用,转移到类方法中就可以了。
虽然还是不明 ...

是属于静态方法,但是是属于HOperatorSet类,使用也是用HOperatorSet.GenEmptyObj(out ho_Image);这样的方式,不知道楼主整体代码如何写的。同时partial class修饰的是winform这种界面样式和逻辑代码分成两个文件使用,最后编译会合并到一起,和这里的SDK部分没有一点关系。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| xlp18268931538 发表于 2020-12-23 15:40:56 | 显示全部楼层
Criss 发表于 2020-12-23 15:16
是属于静态方法,但是是属于HOperatorSet类,使用也是用HOperatorSet.GenEmptyObj(out ho_Image);这样的 ...

好的谢谢!感觉有一点点明白了。之前出错的时候也是用类名调用的,应该是你说的“partial class修饰的是winform这种界面样式和逻辑代码分成两个文件使用”导致的吧
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表