posts - 25,  comments - 36,  trackbacks - 0
我应该快有一年工作经验,虽然毕业才没有几天。 一点都不伤感,因为没有感觉,一直都在工作。
我的工作前段时间主要给写IDL接口(下个月开始投向GIS开发),主要是AUTOCAD的接口,我公司用teigha的库。
不得不说代码写的真的漂亮,帮助文档也写的很好。

IDL 资料本身就很少,IDL 接口资料就几乎就一本老外的书籍,而且版本比较老了,所以难度还是有一点的。
我现在对IDL接口应该是比较熟练,如果你遇到一些问题,可以问我,maybe我是知道的。

好了,说一下正题。
在IDL中大量使用关键字,所以我们在开发IDL接口当中用到关键字也是非常多的。

我就不分析关键字的原理了,因为快要下班了。
最新版关键字用法和以前老版本不一样所以需要注意。
例子代码在帮助文档有。

现在我觉一个例子
现在我们定义关键字的IDL_KW_PAR
static IDL_KW_PAR kw_pars[] = {
{“BLOCK”,IDL_TYP_STRING,1,0,(int*)IDL_KW_OFFSETOF(block_there),(char*)IDL_KW_OFFSETOF(Block)},
{"INDEX",IDL_TYP_LONG,1,0,(int*)IDL_KW_OFFSETOF(index_there),(char*) IDL_KW_OFFSETOF(index),
{NULL} 
};

这里就定义好了 IDL_KW_PAR.
注意一个问题,BLOCK 和 INDEX 定义顺序有讲求。
你必须要把BLOCK放到INDEX上面。
因为B < I 。
如果没有按照这样顺序声明你就使用关键字就会出现不能分配关键字。
因为这个必须 按照 in LEXICAL order (词法顺序来弄)。
你会觉得这个非常好笑,但却是是这样的,这个在idl help 里面是没有说明的。
这个是我在分析export.h 发现问题解决方法。


我就简单说到这里吧。

如果你想知道IDL 怎么在结构体里面传递 IDL_VPTR 或者 怎么返回动态的数据 或者  === 或者 一些DWG的东西也可以找我哦。
其实我想说我擅长网络开发行不呢!!!!!
My QQ 群:274301756
速度下班,我IT 但我从来不加班。。。
posted on 2013-06-25 17:34 小鱼儿 阅读(2545) 评论(2)  编辑 收藏 引用

FeedBack:
# re: IDL接口或许你会遇到一个挺无语的地方------》关键字
2015-08-24 14:26 | 张星星
你好老师, 我在做hdf的读取和校正,我在用c#调用idl时,要传hdf的路径进pro时。出现这个错误:IDL_M_KEYWORD_ILLEGAL:Keyword parameters not allowed in call。 不知道是什么原因,代码是这样的、:
textBox1.Text=fileDialog1.FileName;// fileDialog1.FileName显示选中文件的路径
object objStr = textBox1.Text;
this.axIDLDrawWidget1.CreateDrawWidget();
this.axIDLDrawWidget1.SetNamedData("modisname", objStr);
this.axIDLDrawWidget1.ExecuteStr(@".Compile radiation_correction.pro");
this.axIDLDrawWidget1.ExecuteStr("radiation_correction,modisname=modisname");
//读取数据
this.axIDLDrawWidget1.ExecuteStr("data = read_image('" + @"D:\DownLoad\fushejiaozheng.img" + "', /true)");
//设置当前显示窗体
this.axIDLDrawWidget1.ExecuteStr("widget_control, " + this.axIDLDrawWidget1.DrawId.ToString() + ", get_value=WinID");
this.axIDLDrawWidget1.ExecuteStr("wset, WinID");
//显示图像
this.axIDLDrawWidget1.ExecuteStr("tv, congrid(data, 1, 500, 350), /true");  回复  更多评论
  
# re: IDL接口或许你会遇到一个挺无语的地方------》关键字
2015-08-24 14:33 | 小鱼儿
@张星星
可能这个我帮助不到你了,因为好久没有弄这个,IDL早就忘记了。但感觉应该你的参数传入有问题了,可以ExecuteStr 一行一行的注释掉,然后定位哪一行,然后确定语法错误,先可以IDL控制命令输入参数看是否能够运行。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(4)

随笔档案(25)

搜索

  •  

最新评论

阅读排行榜

评论排行榜