首页 新闻 会员 周边

C#与IDL实时交互问题

0
悬赏园豆:50 [待解决问题]

          最近进行C#开发,需求是用IDL进行算法开发,C#进行应用层开发(用户界面等),通过最近查找资料和看IDL的帮助文档,目前已经实现了通过COM_IDL_connect_x86_64Class(64位的版本)进行sav文件的调用,但是现在的需求是,怎么能够在调用过程中,和算法交互,也就是能够获取算法的进度信息,而不是一直等到算法结束,这个对象提供了OnIDLNotify和OnIDLOutput两个事件,但是OnIDLOutput接收到所有的输出,好多无用信息,和编译环境自己输出的信息,因此考虑使用OnIDLNotify事件,但是这个事件从来没被触发过,尝试将在pro中创建IDLitTool对象,然后将在C#中构建的COM_IDL_connect_x86_64Class通过重新获取对象引用的方式添加到IDLitTool观察者集合中,然后通过IDLitTool的方法发送消息,但是调用运行,AddOnNotifyObserver方法直接报错,无法添加COM_IDL_connect_x86_64Class对象,然后尝试导出自定义的继承自IDLitComponent的类,利用NotifyBridge方法,但是多次尝试都导出失败,错误"this object could not be built",参考了好多帖子,如http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=66197&highlight=IDL%B5%BC%B3%F6COMhttp://bbs.esrichina-bj.cn/esri/viewthread.php?tid=80723&highlight=IDL%2BCom 但是错误依然无法解决,使用的环境Windows7 64位,ENVI4.7(64位),VS2010,然后使用XP(32位),ENVI4.7,VS2010,以及XP(32位),ENVI4.8,VS2010还是同样的错误,这直接导致导出Com组件失败,  

         求助大家:

         1,利用输出助手导出Com组件出现this object could not be built,具体怎么解决,网络上说的方法都试过了,还是不行,可以观察到调用VS编译器的控制台窗口,但是等到之后还是不行,利用Hello那个IDL帮助里面的例子和Samples文件夹下的例子都不行,         

         2,C#与IDL实时交互的问题,我这里的思路就是想利用OnIDLNotify这个事件,是否还有其他的方法,这样不导出自定义Com类也行?          注:带界面的Com组件没有尝试,因为项目的原因,这部分在服务端是没有界面的,测试的调用Sav文件功能正常,可以调用执行                   感谢大家这么长看完了,希望大家帮我解决这个纠结了好久的问题

雪一笑的主页 雪一笑 | 初学一级 | 园豆:154
提问于:2012-03-27 15:47
< >
分享
所有回答(1)
0

哥们你有IDL的开发环境吗?发我一个,az235@sina.com,谢谢了

az235 | 园豆:8483 (大侠五级) | 2012-03-27 22:45

ENVI4.7,直接用这个搜索下载就行了,这个安装包好几百M,就不给你发了

支持(0) 反对(0) 雪一笑 | 园豆:154 (初学一级) | 2012-03-28 13:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册