LearningENVI&IDL分享 http://blog.sciencenet.cn/u/dongyanqing Learning ENVI&IDL

博文

C#与IDL混编时数组传递问题分析

已有 2977 次阅读 2015-8-29 12:02 |个人分类:IDL技术|系统分类:科研笔记

C#与IDL混编时数组传递问题分析
分类: 混合编程(idl与c#,python,vba)
日期: 2011年05月28日 星期六 1:50

原文地址: http://hi.baidu.com/dyqwrp/blog/item/687f98d88637a52d33fa1cf3.html

 
C#与IDL混编时数组传递问题分析
2011年05月28日 星期六 1:50

现在混编是一个趋势,也越来越流行了。IDL与其他语言的混编的技术已经比较成熟,包括IDLDrawWidget或COM_IDL_Connect或输出助手等几种,在使用这些技术中要明确各自的优缺点以及适用的情形。

以IDLDrawWidget为例,对数组进行传递的方法有SetNamedArray和CopyNamedArray等。

在使用时注意下面的几句话(有点绕,难理解,正常,书稿中摘录,未包含前后语境):

这就导致了图片原本正确传递后显示花了,解决方法是用函数调整下,函数见:

FUNCTION CHANGEARRAYORDER, inArr
 ;
 oDims = SIZE(inArr,/dimension)
 oType = SIZE(inArr,/Type)
 nDims = SIZE(inArr,/N_dim)
 CASE nDims OF
   1:result = inArr
   2: BEGIN
     result = REFORM(inArr, oDims[1],oDims[0])
   END
   3: BEGIN
     result = REFORM(inArr,oDims[2],oDims[1],oDims[0])
   END
   ELSE: BEGIN
     cmdStr = 'result= Reform(inArr'
     FOR idx=nDims-1,0,-1 DO BEGIN
       cmdStr += ',oDims['+STRTRIM(iDx)+']'
     ENDFOR
     void = EXECUTE(cmdStr+')')
   END
 ENDCASE
 
 RETURN,result
END

 



http://blog.sciencenet.cn/blog-344887-916841.html

上一篇:IDL获取电脑当前IP的方法
下一篇:IDL技术博客里面源代码的说明

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-11-29 04:33

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部