AEIDL开发问题锦集
Posted 流浪若相惜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AEIDL开发问题锦集相关的知识,希望对你有一定的参考价值。
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
更新中。。。
以上是关于AEIDL开发问题锦集的主要内容,如果未能解决你的问题,请参考以下文章