AE、IDL开发问题锦集

    xiaoxiao2025-02-26  20

    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

    更新中。。。

    转载请注明原文地址: https://ju.6miu.com/read-1296652.html
    最新回复(0)