我應(yīng)該快有一年工作經(jīng)驗,雖然畢業(yè)才沒有幾天。 一點都不傷感,因為沒有感覺,一直都在工作。
我的工作前段時間主要給寫IDL接口(下個月開始投向GIS開發(fā)),主要是AUTOCAD的接口,我公司用teigha的庫。
不得不說代碼寫的真的漂亮,幫助文檔也寫的很好。
IDL 資料本身就很少,IDL 接口資料就幾乎就一本老外的書籍,而且版本比較老了,所以難度還是有一點的。
我現(xiàn)在對IDL接口應(yīng)該是比較熟練,如果你遇到一些問題,可以問我,maybe我是知道的。
好了,說一下正題。
在IDL中大量使用關(guān)鍵字,所以我們在開發(fā)IDL接口當(dāng)中用到關(guān)鍵字也是非常多的。
我就不分析關(guān)鍵字的原理了,因為快要下班了。
最新版關(guān)鍵字用法和以前老版本不一樣所以需要注意。
例子代碼在幫助文檔有。
現(xiàn)在我覺一個例子
現(xiàn)在我們定義關(guān)鍵字的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 。
如果沒有按照這樣順序聲明你就使用關(guān)鍵字就會出現(xiàn)不能分配關(guān)鍵字。
因為這個必須 按照 in LEXICAL order (詞法順序來弄)。
你會覺得這個非常好笑,但卻是是這樣的,這個在idl help 里面是沒有說明的。
這個是我在分析export.h 發(fā)現(xiàn)問題解決方法。
我就簡單說到這里吧。
如果你想知道IDL 怎么在結(jié)構(gòu)體里面?zhèn)鬟f IDL_VPTR 或者 怎么返回動態(tài)的數(shù)據(jù) 或者 === 或者 一些DWG的東西也可以找我哦。
其實我想說我擅長網(wǎng)絡(luò)開發(fā)行不呢!!!!!
My QQ 群:274301756
速度下班,我IT 但我從來不加班。。。
FeedBack:
# re: IDL接口或許你會遇到一個挺無語的地方------》關(guān)鍵字
2015-08-24 14:26 | 張星星
你好老師, 我在做hdf的讀取和校正,我在用c#調(diào)用idl時,要傳hdf的路徑進(jìn)pro時。出現(xiàn)這個錯誤: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");
//讀取數(shù)據(jù)
this.axIDLDrawWidget1.ExecuteStr("data = read_image('" + @"D:\DownLoad\fushejiaozheng.img" + "', /true)");
//設(shè)置當(dāng)前顯示窗體
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"); 回復(fù) 更多評論
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");
//讀取數(shù)據(jù)
this.axIDLDrawWidget1.ExecuteStr("data = read_image('" + @"D:\DownLoad\fushejiaozheng.img" + "', /true)");
//設(shè)置當(dāng)前顯示窗體
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"); 回復(fù) 更多評論
| 只有注冊用戶登錄后才能發(fā)表評論。 | ||
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
|
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
|---|---|---|---|---|---|---|---|---|---|
| 26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
| 30 | 31 | 1 | 2 | 3 | 4 | 5 | |||
常用鏈接
留言簿(4)
隨筆檔案(25)
- 2013年12月 (3)
- 2013年11月 (3)
- 2013年7月 (2)
- 2013年6月 (2)
- 2013年5月 (7)
- 2013年4月 (1)
- 2012年8月 (1)
- 2012年6月 (1)
- 2012年5月 (4)
- 2012年4月 (1)
搜索
最新評論

- 1.?re: IDL接口或許你會遇到一個挺無語的地方------》關(guān)鍵字
- 評論內(nèi)容較長,點擊標(biāo)題查看
- --小魚兒
- 2.?re: IDL接口或許你會遇到一個挺無語的地方------》關(guān)鍵字
- 評論內(nèi)容較長,點擊標(biāo)題查看
- --張星星
- 3.?re: 你真的懂select嗎??[未登錄]
- 寫的很棒誒
- --Charles
- 4.?re: c#對excel 圖表操作
- 評論內(nèi)容較長,點擊標(biāo)題查看
- --HappyCoding
- 5.?re: 今目標(biāo)簽退軟件(方便一些人吧)
-
不能。。。@匿名
- --小魚兒
