AE、IDL开发问题锦集

1、没有注册类(异常来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))

如图1所示:
这里写图片描述
图1 没有注册类
其实,这个问题在AE开发时也碰到过,因为我们所调用AE的dll也好,还是调用的IDL中IDLDrawWidget也好,仔细想想其实都是从bin.x86下获取的,也就是说平台式x86.好了,再来看看我们现在的平台。
这里写图片描述
图2 平台
额,是ANY CPU。因此,我们需要将平台改为x86。

2、引用组件IDLDrawWidget时,没有出现

解决这个问题是组件没有注册,因此需要将组件进行注册一下就能查看到组件了。注册方式如下图所示:
这里写图片描述
图3 注册组件

3、IDL_M_UPRO_UNDEF:Attempt to call undefined procedure/function:’‘。**

相信这个问题有好多c#调用DL二次开发I的同学碰到过好多次。但是却无从下手,IDL程序没有问题,在IDL中运行正常。路径也是看了又看,pro文件在c#中路径确实是指定的位置。但是仍旧出现如图所示的问题。其实,说到底还是路径的问题,不是路径错误,是中文不识别问题。(悲催的我,整个解决方案都是中文名字,更不要说项目是中文名字了。)因此,c#调用IDL时不要出现中文路径,这才是关键所在。
这里写图片描述
图4 尝试调用未定义的过程或者函数
好了,这里多说一点关于如何更改解决方案及解决项目名字问题。我费了一上午终于总结了一下几点:
1、先备份,同志们,不要冲动!
2、将sln的aa名字修改bb,然后用记事本打开,将aa名字进行全部替换bb
3、将csproj名字由aa修改为bb
4、将suo名字由aa修改为bb(有的就改)
5、将项目名字cc,修改为dd,并打开一个类文件,然后ctrl+f,全部替换,选择整个项目。
ok,一般问题就这样解决了!(当然了,如果你程序中用了项目的固定路径,需要程序内部修改)

4、检索COM类工厂中CLSID的组件失败,原因错误:80040154
此问题是调用COM_IDL_Connect_Lib时出现的问题,我本想用x86_64的lib,结果就出现了下图所示的错误:
这里写图片描述
图5 COM_IDL_Connect_Lib
这个错误只需要将

     COM_IDL_connect_x86_64Lib.COM_IDL_connect_x86_64Class idlConnect = new COM_IDL_connect_x86_64Lib.COM_IDL_connect_x86_64Class();

改为:

 COM_IDL_connectLib.COM_IDL_connectClass idlConnect = new COM_IDL_connectLib.COM_IDL_connectClass();

就可以了(我的程序平台式x86,不知道x64的用x86_64是否可以,有兴趣的可以尝试一下)。

5、The specified language is not available in the language catalog.
Using the new API - Error Message: “The specified language is not available in the language catalog.”
Tuesday, February 25, 2014
PROBLEM:
You try to start ENVI 5.1 from the IDL 8.3 workbench by typing the command:
e=envi()
and you receive the following error message:
IDL> e=envi()
% Restored file: ENVI.
% Loaded DLM: HPGRAPHICS.
% Loaded DLM: XML.
The specified language is not available in the language catalog.
The available languages are:
eng
% Loaded DLM: PNG.

BACKGROUND:
This message occurs depending on your local language settings, in many cases if you have for example a German operating system, you will receive this message:
“The specified language is not available in the language catalog.”
To see and to change your language settings in ENVI, follow the next steps:

SOLUTION:
1) Open ENVI 5.1
2) Go to File > Preferences > Settings > Localization Settings (See Screenshot)
这里写图片描述
图6 language error
3) If you have in the language field something different then eng (e.g. “deu” like in the screenshot above > change it to“eng”
4) Make sure eng is set and click OK
5) This setting requires a restart of ENVI

6、IDL出现:% Restored file: ENVI. % Variable is undefined: ENVITASK.
出现类似的问题,可以解释为ENVI函数没有实际的意义,换句话说就是不识别ENVI函数。为了避免这种情况,我们应该在程序开头添加上这句代码:

 COMPILE_OPT IDL2

更新中。。。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值